2006-09-16 02:49:27 +04:00
/* parser auto-generated by pidl */
# include "includes.h"
2008-12-16 18:32:18 +03:00
# include "../librpc/gen_ndr/ndr_echo.h"
2006-09-16 02:49:27 +04:00
2008-09-17 17:07:24 +04:00
_PUBLIC_ enum ndr_err_code ndr_push_echo_info1 ( struct ndr_push * ndr , int ndr_flags , const struct echo_info1 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_push_align ( ndr , 1 ) ) ;
NDR_CHECK ( ndr_push_uint8 ( ndr , NDR_SCALARS , r - > v ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2008-09-17 17:07:24 +04:00
_PUBLIC_ enum ndr_err_code ndr_pull_echo_info1 ( struct ndr_pull * ndr , int ndr_flags , struct echo_info1 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_align ( ndr , 1 ) ) ;
NDR_CHECK ( ndr_pull_uint8 ( ndr , NDR_SCALARS , & r - > v ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_info1 ( struct ndr_print * ndr , const char * name , const struct echo_info1 * r )
{
ndr_print_struct ( ndr , name , " echo_info1 " ) ;
ndr - > depth + + ;
ndr_print_uint8 ( ndr , " v " , r - > v ) ;
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_info2 ( struct ndr_push * ndr , int ndr_flags , const struct echo_info2 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_push_align ( ndr , 2 ) ) ;
NDR_CHECK ( ndr_push_uint16 ( ndr , NDR_SCALARS , r - > v ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_info2 ( struct ndr_pull * ndr , int ndr_flags , struct echo_info2 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_align ( ndr , 2 ) ) ;
NDR_CHECK ( ndr_pull_uint16 ( ndr , NDR_SCALARS , & r - > v ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_info2 ( struct ndr_print * ndr , const char * name , const struct echo_info2 * r )
{
ndr_print_struct ( ndr , name , " echo_info2 " ) ;
ndr - > depth + + ;
ndr_print_uint16 ( ndr , " v " , r - > v ) ;
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_info3 ( struct ndr_push * ndr , int ndr_flags , const struct echo_info3 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_push_align ( ndr , 4 ) ) ;
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > v ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_info3 ( struct ndr_pull * ndr , int ndr_flags , struct echo_info3 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_align ( ndr , 4 ) ) ;
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , & r - > v ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_info3 ( struct ndr_print * ndr , const char * name , const struct echo_info3 * r )
{
ndr_print_struct ( ndr , name , " echo_info3 " ) ;
ndr - > depth + + ;
ndr_print_uint32 ( ndr , " v " , r - > v ) ;
ndr - > depth - - ;
}
2008-01-17 15:16:27 +03:00
static enum ndr_err_code ndr_push_STRUCT_echo_info4 ( struct ndr_push * ndr , int ndr_flags , const struct echo_info4 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_push_align ( ndr , 8 ) ) ;
NDR_CHECK ( ndr_push_hyper ( ndr , NDR_SCALARS , r - > v ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2008-01-17 15:16:27 +03:00
static enum ndr_err_code ndr_pull_STRUCT_echo_info4 ( struct ndr_pull * ndr , int ndr_flags , struct echo_info4 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_align ( ndr , 8 ) ) ;
NDR_CHECK ( ndr_pull_hyper ( ndr , NDR_SCALARS , & r - > v ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2008-01-17 15:16:27 +03:00
_PUBLIC_ void ndr_print_STRUCT_echo_info4 ( struct ndr_print * ndr , const char * name , const struct echo_info4 * r )
2006-09-16 02:49:27 +04:00
{
ndr_print_struct ( ndr , name , " echo_info4 " ) ;
ndr - > depth + + ;
ndr_print_hyper ( ndr , " v " , r - > v ) ;
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_info5 ( struct ndr_push * ndr , int ndr_flags , const struct echo_info5 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_push_align ( ndr , 8 ) ) ;
NDR_CHECK ( ndr_push_uint8 ( ndr , NDR_SCALARS , r - > v1 ) ) ;
NDR_CHECK ( ndr_push_hyper ( ndr , NDR_SCALARS , r - > v2 ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_info5 ( struct ndr_pull * ndr , int ndr_flags , struct echo_info5 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_align ( ndr , 8 ) ) ;
NDR_CHECK ( ndr_pull_uint8 ( ndr , NDR_SCALARS , & r - > v1 ) ) ;
NDR_CHECK ( ndr_pull_hyper ( ndr , NDR_SCALARS , & r - > v2 ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_info5 ( struct ndr_print * ndr , const char * name , const struct echo_info5 * r )
{
ndr_print_struct ( ndr , name , " echo_info5 " ) ;
ndr - > depth + + ;
ndr_print_uint8 ( ndr , " v1 " , r - > v1 ) ;
ndr_print_hyper ( ndr , " v2 " , r - > v2 ) ;
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_info6 ( struct ndr_push * ndr , int ndr_flags , const struct echo_info6 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_push_align ( ndr , 1 ) ) ;
NDR_CHECK ( ndr_push_uint8 ( ndr , NDR_SCALARS , r - > v1 ) ) ;
NDR_CHECK ( ndr_push_echo_info1 ( ndr , NDR_SCALARS , & r - > info1 ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_info6 ( struct ndr_pull * ndr , int ndr_flags , struct echo_info6 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_align ( ndr , 1 ) ) ;
NDR_CHECK ( ndr_pull_uint8 ( ndr , NDR_SCALARS , & r - > v1 ) ) ;
NDR_CHECK ( ndr_pull_echo_info1 ( ndr , NDR_SCALARS , & r - > info1 ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_info6 ( struct ndr_print * ndr , const char * name , const struct echo_info6 * r )
{
ndr_print_struct ( ndr , name , " echo_info6 " ) ;
ndr - > depth + + ;
ndr_print_uint8 ( ndr , " v1 " , r - > v1 ) ;
ndr_print_echo_info1 ( ndr , " info1 " , & r - > info1 ) ;
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_info7 ( struct ndr_push * ndr , int ndr_flags , const struct echo_info7 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_push_align ( ndr , 8 ) ) ;
NDR_CHECK ( ndr_push_uint8 ( ndr , NDR_SCALARS , r - > v1 ) ) ;
2008-01-17 15:16:27 +03:00
NDR_CHECK ( ndr_push_STRUCT_echo_info4 ( ndr , NDR_SCALARS , & r - > info4 ) ) ;
2006-09-16 02:49:27 +04:00
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_info7 ( struct ndr_pull * ndr , int ndr_flags , struct echo_info7 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_align ( ndr , 8 ) ) ;
NDR_CHECK ( ndr_pull_uint8 ( ndr , NDR_SCALARS , & r - > v1 ) ) ;
2008-01-17 15:16:27 +03:00
NDR_CHECK ( ndr_pull_STRUCT_echo_info4 ( ndr , NDR_SCALARS , & r - > info4 ) ) ;
2006-09-16 02:49:27 +04:00
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_info7 ( struct ndr_print * ndr , const char * name , const struct echo_info7 * r )
{
ndr_print_struct ( ndr , name , " echo_info7 " ) ;
ndr - > depth + + ;
ndr_print_uint8 ( ndr , " v1 " , r - > v1 ) ;
2008-01-17 15:16:27 +03:00
ndr_print_STRUCT_echo_info4 ( ndr , " info4 " , & r - > info4 ) ;
2006-09-16 02:49:27 +04:00
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_Info ( struct ndr_push * ndr , int ndr_flags , const union echo_Info * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
2007-02-27 20:17:16 +03:00
int level = ndr_push_get_switch_value ( ndr , r ) ;
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_uint16 ( ndr , NDR_SCALARS , level ) ) ;
switch ( level ) {
2008-02-11 11:15:30 +03:00
case 1 : {
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_info1 ( ndr , NDR_SCALARS , & r - > info1 ) ) ;
2008-02-11 11:15:30 +03:00
break ; }
2006-09-16 02:49:27 +04:00
2008-02-11 11:15:30 +03:00
case 2 : {
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_info2 ( ndr , NDR_SCALARS , & r - > info2 ) ) ;
2008-02-11 11:15:30 +03:00
break ; }
2006-09-16 02:49:27 +04:00
2008-02-11 11:15:30 +03:00
case 3 : {
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_info3 ( ndr , NDR_SCALARS , & r - > info3 ) ) ;
2008-02-11 11:15:30 +03:00
break ; }
2006-09-16 02:49:27 +04:00
2008-02-11 11:15:30 +03:00
case 4 : {
2008-01-17 15:16:27 +03:00
NDR_CHECK ( ndr_push_STRUCT_echo_info4 ( ndr , NDR_SCALARS , & r - > info4 ) ) ;
2008-02-11 11:15:30 +03:00
break ; }
2006-09-16 02:49:27 +04:00
2008-02-11 11:15:30 +03:00
case 5 : {
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_info5 ( ndr , NDR_SCALARS , & r - > info5 ) ) ;
2008-02-11 11:15:30 +03:00
break ; }
2006-09-16 02:49:27 +04:00
2008-02-11 11:15:30 +03:00
case 6 : {
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_info6 ( ndr , NDR_SCALARS , & r - > info6 ) ) ;
2008-02-11 11:15:30 +03:00
break ; }
2006-09-16 02:49:27 +04:00
2008-02-11 11:15:30 +03:00
case 7 : {
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_info7 ( ndr , NDR_SCALARS , & r - > info7 ) ) ;
2008-02-11 11:15:30 +03:00
break ; }
2006-09-16 02:49:27 +04:00
default :
return ndr_push_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u " , level ) ;
}
}
if ( ndr_flags & NDR_BUFFERS ) {
2007-02-27 20:17:16 +03:00
int level = ndr_push_get_switch_value ( ndr , r ) ;
2006-09-16 02:49:27 +04:00
switch ( level ) {
case 1 :
break ;
case 2 :
break ;
case 3 :
break ;
case 4 :
break ;
case 5 :
break ;
case 6 :
break ;
case 7 :
break ;
default :
return ndr_push_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u " , level ) ;
}
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_Info ( struct ndr_pull * ndr , int ndr_flags , union echo_Info * r )
2006-09-16 02:49:27 +04:00
{
int level ;
uint16_t _level ;
level = ndr_pull_get_switch_value ( ndr , r ) ;
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_uint16 ( ndr , NDR_SCALARS , & _level ) ) ;
if ( _level ! = level ) {
2007-02-27 20:17:16 +03:00
return ndr_pull_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u for r " , _level ) ;
2006-09-16 02:49:27 +04:00
}
switch ( level ) {
case 1 : {
NDR_CHECK ( ndr_pull_echo_info1 ( ndr , NDR_SCALARS , & r - > info1 ) ) ;
break ; }
case 2 : {
NDR_CHECK ( ndr_pull_echo_info2 ( ndr , NDR_SCALARS , & r - > info2 ) ) ;
break ; }
case 3 : {
NDR_CHECK ( ndr_pull_echo_info3 ( ndr , NDR_SCALARS , & r - > info3 ) ) ;
break ; }
case 4 : {
2008-01-17 15:16:27 +03:00
NDR_CHECK ( ndr_pull_STRUCT_echo_info4 ( ndr , NDR_SCALARS , & r - > info4 ) ) ;
2006-09-16 02:49:27 +04:00
break ; }
case 5 : {
NDR_CHECK ( ndr_pull_echo_info5 ( ndr , NDR_SCALARS , & r - > info5 ) ) ;
break ; }
case 6 : {
NDR_CHECK ( ndr_pull_echo_info6 ( ndr , NDR_SCALARS , & r - > info6 ) ) ;
break ; }
case 7 : {
NDR_CHECK ( ndr_pull_echo_info7 ( ndr , NDR_SCALARS , & r - > info7 ) ) ;
break ; }
default :
return ndr_pull_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u " , level ) ;
}
}
if ( ndr_flags & NDR_BUFFERS ) {
switch ( level ) {
case 1 :
break ;
case 2 :
break ;
case 3 :
break ;
case 4 :
break ;
case 5 :
break ;
case 6 :
break ;
case 7 :
break ;
default :
return ndr_pull_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u " , level ) ;
}
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_Info ( struct ndr_print * ndr , const char * name , const union echo_Info * r )
{
int level ;
level = ndr_print_get_switch_value ( ndr , r ) ;
ndr_print_union ( ndr , name , level , " echo_Info " ) ;
switch ( level ) {
case 1 :
ndr_print_echo_info1 ( ndr , " info1 " , & r - > info1 ) ;
break ;
case 2 :
ndr_print_echo_info2 ( ndr , " info2 " , & r - > info2 ) ;
break ;
case 3 :
ndr_print_echo_info3 ( ndr , " info3 " , & r - > info3 ) ;
break ;
case 4 :
2008-01-17 15:16:27 +03:00
ndr_print_STRUCT_echo_info4 ( ndr , " info4 " , & r - > info4 ) ;
2006-09-16 02:49:27 +04:00
break ;
case 5 :
ndr_print_echo_info5 ( ndr , " info5 " , & r - > info5 ) ;
break ;
case 6 :
ndr_print_echo_info6 ( ndr , " info6 " , & r - > info6 ) ;
break ;
case 7 :
ndr_print_echo_info7 ( ndr , " info7 " , & r - > info7 ) ;
break ;
default :
ndr_print_bad_level ( ndr , name , level ) ;
}
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_Enum1 ( struct ndr_push * ndr , int ndr_flags , enum echo_Enum1 r )
2006-09-16 02:49:27 +04:00
{
NDR_CHECK ( ndr_push_uint16 ( ndr , NDR_SCALARS , r ) ) ;
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_Enum1 ( struct ndr_pull * ndr , int ndr_flags , enum echo_Enum1 * r )
2006-09-16 02:49:27 +04:00
{
uint16_t v ;
NDR_CHECK ( ndr_pull_uint16 ( ndr , NDR_SCALARS , & v ) ) ;
* r = v ;
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_Enum1 ( struct ndr_print * ndr , const char * name , enum echo_Enum1 r )
{
const char * val = NULL ;
switch ( r ) {
case ECHO_ENUM1 : val = " ECHO_ENUM1 " ; break ;
case ECHO_ENUM2 : val = " ECHO_ENUM2 " ; break ;
}
ndr_print_enum ( ndr , name , " ENUM " , val , r ) ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_Enum1_32 ( struct ndr_push * ndr , int ndr_flags , enum echo_Enum1_32 r )
2006-09-16 02:49:27 +04:00
{
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r ) ) ;
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_Enum1_32 ( struct ndr_pull * ndr , int ndr_flags , enum echo_Enum1_32 * r )
2006-09-16 02:49:27 +04:00
{
uint32_t v ;
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , & v ) ) ;
* r = v ;
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_Enum1_32 ( struct ndr_print * ndr , const char * name , enum echo_Enum1_32 r )
{
const char * val = NULL ;
switch ( r ) {
case ECHO_ENUM1_32 : val = " ECHO_ENUM1_32 " ; break ;
case ECHO_ENUM2_32 : val = " ECHO_ENUM2_32 " ; break ;
}
ndr_print_enum ( ndr , name , " ENUM " , val , r ) ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_Enum2 ( struct ndr_push * ndr , int ndr_flags , const struct echo_Enum2 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_push_align ( ndr , 4 ) ) ;
NDR_CHECK ( ndr_push_echo_Enum1 ( ndr , NDR_SCALARS , r - > e1 ) ) ;
NDR_CHECK ( ndr_push_echo_Enum1_32 ( ndr , NDR_SCALARS , r - > e2 ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_Enum2 ( struct ndr_pull * ndr , int ndr_flags , struct echo_Enum2 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_align ( ndr , 4 ) ) ;
NDR_CHECK ( ndr_pull_echo_Enum1 ( ndr , NDR_SCALARS , & r - > e1 ) ) ;
NDR_CHECK ( ndr_pull_echo_Enum1_32 ( ndr , NDR_SCALARS , & r - > e2 ) ) ;
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_Enum2 ( struct ndr_print * ndr , const char * name , const struct echo_Enum2 * r )
{
ndr_print_struct ( ndr , name , " echo_Enum2 " ) ;
ndr - > depth + + ;
ndr_print_echo_Enum1 ( ndr , " e1 " , r - > e1 ) ;
ndr_print_echo_Enum1_32 ( ndr , " e2 " , r - > e2 ) ;
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_Enum3 ( struct ndr_push * ndr , int ndr_flags , const union echo_Enum3 * r )
2006-09-16 02:49:27 +04:00
{
if ( ndr_flags & NDR_SCALARS ) {
2007-02-27 20:17:16 +03:00
int level = ndr_push_get_switch_value ( ndr , r ) ;
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_uint16 ( ndr , NDR_SCALARS , level ) ) ;
switch ( level ) {
2008-02-11 11:15:30 +03:00
case ECHO_ENUM1 : {
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_Enum1 ( ndr , NDR_SCALARS , r - > e1 ) ) ;
2008-02-11 11:15:30 +03:00
break ; }
2006-09-16 02:49:27 +04:00
2008-02-11 11:15:30 +03:00
case ECHO_ENUM2 : {
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_Enum2 ( ndr , NDR_SCALARS , & r - > e2 ) ) ;
2008-02-11 11:15:30 +03:00
break ; }
2006-09-16 02:49:27 +04:00
default :
return ndr_push_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u " , level ) ;
}
}
if ( ndr_flags & NDR_BUFFERS ) {
2007-02-27 20:17:16 +03:00
int level = ndr_push_get_switch_value ( ndr , r ) ;
2006-09-16 02:49:27 +04:00
switch ( level ) {
case ECHO_ENUM1 :
break ;
case ECHO_ENUM2 :
break ;
default :
return ndr_push_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u " , level ) ;
}
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_Enum3 ( struct ndr_pull * ndr , int ndr_flags , union echo_Enum3 * r )
2006-09-16 02:49:27 +04:00
{
int level ;
uint16_t _level ;
level = ndr_pull_get_switch_value ( ndr , r ) ;
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_uint16 ( ndr , NDR_SCALARS , & _level ) ) ;
if ( _level ! = level ) {
2007-02-27 20:17:16 +03:00
return ndr_pull_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u for r " , _level ) ;
2006-09-16 02:49:27 +04:00
}
switch ( level ) {
case ECHO_ENUM1 : {
NDR_CHECK ( ndr_pull_echo_Enum1 ( ndr , NDR_SCALARS , & r - > e1 ) ) ;
break ; }
case ECHO_ENUM2 : {
NDR_CHECK ( ndr_pull_echo_Enum2 ( ndr , NDR_SCALARS , & r - > e2 ) ) ;
break ; }
default :
return ndr_pull_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u " , level ) ;
}
}
if ( ndr_flags & NDR_BUFFERS ) {
switch ( level ) {
case ECHO_ENUM1 :
break ;
case ECHO_ENUM2 :
break ;
default :
return ndr_pull_error ( ndr , NDR_ERR_BAD_SWITCH , " Bad switch value %u " , level ) ;
}
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_Enum3 ( struct ndr_print * ndr , const char * name , const union echo_Enum3 * r )
{
int level ;
level = ndr_print_get_switch_value ( ndr , r ) ;
ndr_print_union ( ndr , name , level , " echo_Enum3 " ) ;
switch ( level ) {
case ECHO_ENUM1 :
ndr_print_echo_Enum1 ( ndr , " e1 " , r - > e1 ) ;
break ;
case ECHO_ENUM2 :
ndr_print_echo_Enum2 ( ndr , " e2 " , & r - > e2 ) ;
break ;
default :
ndr_print_bad_level ( ndr , name , level ) ;
}
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_Surrounding ( struct ndr_push * ndr , int ndr_flags , const struct echo_Surrounding * r )
2006-09-16 02:49:27 +04:00
{
uint32_t cntr_surrounding_0 ;
if ( ndr_flags & NDR_SCALARS ) {
2007-02-27 20:17:16 +03:00
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > x ) ) ;
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_align ( ndr , 4 ) ) ;
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > x ) ) ;
for ( cntr_surrounding_0 = 0 ; cntr_surrounding_0 < r - > x ; cntr_surrounding_0 + + ) {
NDR_CHECK ( ndr_push_uint16 ( ndr , NDR_SCALARS , r - > surrounding [ cntr_surrounding_0 ] ) ) ;
}
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_Surrounding ( struct ndr_pull * ndr , int ndr_flags , struct echo_Surrounding * r )
2006-09-16 02:49:27 +04:00
{
uint32_t cntr_surrounding_0 ;
TALLOC_CTX * _mem_save_surrounding_0 ;
if ( ndr_flags & NDR_SCALARS ) {
NDR_CHECK ( ndr_pull_array_size ( ndr , & r - > surrounding ) ) ;
NDR_CHECK ( ndr_pull_align ( ndr , 4 ) ) ;
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , & r - > x ) ) ;
NDR_PULL_ALLOC_N ( ndr , r - > surrounding , ndr_get_array_size ( ndr , & r - > surrounding ) ) ;
_mem_save_surrounding_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > surrounding , 0 ) ;
for ( cntr_surrounding_0 = 0 ; cntr_surrounding_0 < r - > x ; cntr_surrounding_0 + + ) {
NDR_CHECK ( ndr_pull_uint16 ( ndr , NDR_SCALARS , & r - > surrounding [ cntr_surrounding_0 ] ) ) ;
}
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_surrounding_0 , 0 ) ;
if ( r - > surrounding ) {
NDR_CHECK ( ndr_check_array_size ( ndr , ( void * ) & r - > surrounding , r - > x ) ) ;
}
}
if ( ndr_flags & NDR_BUFFERS ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_Surrounding ( struct ndr_print * ndr , const char * name , const struct echo_Surrounding * r )
{
uint32_t cntr_surrounding_0 ;
ndr_print_struct ( ndr , name , " echo_Surrounding " ) ;
ndr - > depth + + ;
ndr_print_uint32 ( ndr , " x " , r - > x ) ;
2008-07-22 13:54:54 +04:00
ndr - > print ( ndr , " %s: ARRAY(%d) " , " surrounding " , ( int ) r - > x ) ;
2006-09-16 02:49:27 +04:00
ndr - > depth + + ;
for ( cntr_surrounding_0 = 0 ; cntr_surrounding_0 < r - > x ; cntr_surrounding_0 + + ) {
char * idx_0 = NULL ;
2008-02-23 12:54:59 +03:00
if ( asprintf ( & idx_0 , " [%d] " , cntr_surrounding_0 ) ! = - 1 ) {
2006-09-16 02:49:27 +04:00
ndr_print_uint16 ( ndr , " surrounding " , r - > surrounding [ cntr_surrounding_0 ] ) ;
free ( idx_0 ) ;
}
}
ndr - > depth - - ;
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_AddOne ( struct ndr_push * ndr , int flags , const struct echo_AddOne * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > in . in_data ) ) ;
}
if ( flags & NDR_OUT ) {
2007-10-27 13:57:48 +04:00
if ( r - > out . out_data = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , * r - > out . out_data ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_AddOne ( struct ndr_pull * ndr , int flags , struct echo_AddOne * r )
2006-09-16 02:49:27 +04:00
{
TALLOC_CTX * _mem_save_out_data_0 ;
if ( flags & NDR_IN ) {
ZERO_STRUCT ( r - > out ) ;
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , & r - > in . in_data ) ) ;
NDR_PULL_ALLOC ( ndr , r - > out . out_data ) ;
ZERO_STRUCTP ( r - > out . out_data ) ;
}
if ( flags & NDR_OUT ) {
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > out . out_data ) ;
}
_mem_save_out_data_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > out . out_data , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , r - > out . out_data ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_out_data_0 , LIBNDR_FLAG_REF_ALLOC ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_AddOne ( struct ndr_print * ndr , const char * name , int flags , const struct echo_AddOne * r )
{
ndr_print_struct ( ndr , name , " echo_AddOne " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_AddOne " ) ;
ndr - > depth + + ;
ndr_print_uint32 ( ndr , " in_data " , r - > in . in_data ) ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_AddOne " ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " out_data " , r - > out . out_data ) ;
ndr - > depth + + ;
ndr_print_uint32 ( ndr , " out_data " , * r - > out . out_data ) ;
ndr - > depth - - ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_EchoData ( struct ndr_push * ndr , int flags , const struct echo_EchoData * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > in . len ) ) ;
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > in . len ) ) ;
NDR_CHECK ( ndr_push_array_uint8 ( ndr , NDR_SCALARS , r - > in . in_data , r - > in . len ) ) ;
}
if ( flags & NDR_OUT ) {
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > in . len ) ) ;
NDR_CHECK ( ndr_push_array_uint8 ( ndr , NDR_SCALARS , r - > out . out_data , r - > in . len ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_EchoData ( struct ndr_pull * ndr , int flags , struct echo_EchoData * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
ZERO_STRUCT ( r - > out ) ;
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , & r - > in . len ) ) ;
NDR_CHECK ( ndr_pull_array_size ( ndr , & r - > in . in_data ) ) ;
NDR_PULL_ALLOC_N ( ndr , r - > in . in_data , ndr_get_array_size ( ndr , & r - > in . in_data ) ) ;
NDR_CHECK ( ndr_pull_array_uint8 ( ndr , NDR_SCALARS , r - > in . in_data , ndr_get_array_size ( ndr , & r - > in . in_data ) ) ) ;
if ( r - > in . in_data ) {
NDR_CHECK ( ndr_check_array_size ( ndr , ( void * ) & r - > in . in_data , r - > in . len ) ) ;
}
}
if ( flags & NDR_OUT ) {
NDR_CHECK ( ndr_pull_array_size ( ndr , & r - > out . out_data ) ) ;
NDR_PULL_ALLOC_N ( ndr , r - > out . out_data , ndr_get_array_size ( ndr , & r - > out . out_data ) ) ;
NDR_CHECK ( ndr_pull_array_uint8 ( ndr , NDR_SCALARS , r - > out . out_data , ndr_get_array_size ( ndr , & r - > out . out_data ) ) ) ;
if ( r - > out . out_data ) {
NDR_CHECK ( ndr_check_array_size ( ndr , ( void * ) & r - > out . out_data , r - > in . len ) ) ;
}
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_EchoData ( struct ndr_print * ndr , const char * name , int flags , const struct echo_EchoData * r )
{
ndr_print_struct ( ndr , name , " echo_EchoData " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_EchoData " ) ;
ndr - > depth + + ;
ndr_print_uint32 ( ndr , " len " , r - > in . len ) ;
ndr_print_array_uint8 ( ndr , " in_data " , r - > in . in_data , r - > in . len ) ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_EchoData " ) ;
ndr - > depth + + ;
ndr_print_array_uint8 ( ndr , " out_data " , r - > out . out_data , r - > in . len ) ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_SinkData ( struct ndr_push * ndr , int flags , const struct echo_SinkData * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > in . len ) ) ;
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > in . len ) ) ;
NDR_CHECK ( ndr_push_array_uint8 ( ndr , NDR_SCALARS , r - > in . data , r - > in . len ) ) ;
}
if ( flags & NDR_OUT ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_SinkData ( struct ndr_pull * ndr , int flags , struct echo_SinkData * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , & r - > in . len ) ) ;
NDR_CHECK ( ndr_pull_array_size ( ndr , & r - > in . data ) ) ;
NDR_PULL_ALLOC_N ( ndr , r - > in . data , ndr_get_array_size ( ndr , & r - > in . data ) ) ;
NDR_CHECK ( ndr_pull_array_uint8 ( ndr , NDR_SCALARS , r - > in . data , ndr_get_array_size ( ndr , & r - > in . data ) ) ) ;
if ( r - > in . data ) {
NDR_CHECK ( ndr_check_array_size ( ndr , ( void * ) & r - > in . data , r - > in . len ) ) ;
}
}
if ( flags & NDR_OUT ) {
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_SinkData ( struct ndr_print * ndr , const char * name , int flags , const struct echo_SinkData * r )
{
ndr_print_struct ( ndr , name , " echo_SinkData " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_SinkData " ) ;
ndr - > depth + + ;
ndr_print_uint32 ( ndr , " len " , r - > in . len ) ;
ndr_print_array_uint8 ( ndr , " data " , r - > in . data , r - > in . len ) ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_SinkData " ) ;
ndr - > depth + + ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_SourceData ( struct ndr_push * ndr , int flags , const struct echo_SourceData * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > in . len ) ) ;
}
if ( flags & NDR_OUT ) {
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > in . len ) ) ;
NDR_CHECK ( ndr_push_array_uint8 ( ndr , NDR_SCALARS , r - > out . data , r - > in . len ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_SourceData ( struct ndr_pull * ndr , int flags , struct echo_SourceData * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
ZERO_STRUCT ( r - > out ) ;
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , & r - > in . len ) ) ;
}
if ( flags & NDR_OUT ) {
NDR_CHECK ( ndr_pull_array_size ( ndr , & r - > out . data ) ) ;
NDR_PULL_ALLOC_N ( ndr , r - > out . data , ndr_get_array_size ( ndr , & r - > out . data ) ) ;
NDR_CHECK ( ndr_pull_array_uint8 ( ndr , NDR_SCALARS , r - > out . data , ndr_get_array_size ( ndr , & r - > out . data ) ) ) ;
if ( r - > out . data ) {
NDR_CHECK ( ndr_check_array_size ( ndr , ( void * ) & r - > out . data , r - > in . len ) ) ;
}
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_SourceData ( struct ndr_print * ndr , const char * name , int flags , const struct echo_SourceData * r )
{
ndr_print_struct ( ndr , name , " echo_SourceData " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_SourceData " ) ;
ndr - > depth + + ;
ndr_print_uint32 ( ndr , " len " , r - > in . len ) ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_SourceData " ) ;
ndr - > depth + + ;
ndr_print_array_uint8 ( ndr , " data " , r - > out . data , r - > in . len ) ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_TestCall ( struct ndr_push * ndr , int flags , const struct echo_TestCall * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
2007-10-27 13:57:48 +04:00
if ( r - > in . s1 = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , ndr_charset_length ( r - > in . s1 , CH_UTF16 ) ) ) ;
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , 0 ) ) ;
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , ndr_charset_length ( r - > in . s1 , CH_UTF16 ) ) ) ;
NDR_CHECK ( ndr_push_charset ( ndr , NDR_SCALARS , r - > in . s1 , ndr_charset_length ( r - > in . s1 , CH_UTF16 ) , sizeof ( uint16_t ) , CH_UTF16 ) ) ;
}
if ( flags & NDR_OUT ) {
2007-10-27 13:57:48 +04:00
if ( r - > out . s2 = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2008-02-07 11:43:46 +03:00
NDR_CHECK ( ndr_push_unique_ptr ( ndr , * r - > out . s2 ) ) ;
if ( * r - > out . s2 ) {
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , ndr_charset_length ( * r - > out . s2 , CH_UTF16 ) ) ) ;
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , 0 ) ) ;
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , ndr_charset_length ( * r - > out . s2 , CH_UTF16 ) ) ) ;
NDR_CHECK ( ndr_push_charset ( ndr , NDR_SCALARS , * r - > out . s2 , ndr_charset_length ( * r - > out . s2 , CH_UTF16 ) , sizeof ( uint16_t ) , CH_UTF16 ) ) ;
2007-10-27 13:57:48 +04:00
}
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_TestCall ( struct ndr_pull * ndr , int flags , struct echo_TestCall * r )
2006-09-16 02:49:27 +04:00
{
uint32_t _ptr_s2 ;
TALLOC_CTX * _mem_save_s2_0 ;
2008-02-07 11:43:46 +03:00
TALLOC_CTX * _mem_save_s2_1 ;
2006-09-16 02:49:27 +04:00
if ( flags & NDR_IN ) {
ZERO_STRUCT ( r - > out ) ;
NDR_CHECK ( ndr_pull_array_size ( ndr , & r - > in . s1 ) ) ;
NDR_CHECK ( ndr_pull_array_length ( ndr , & r - > in . s1 ) ) ;
if ( ndr_get_array_length ( ndr , & r - > in . s1 ) > ndr_get_array_size ( ndr , & r - > in . s1 ) ) {
return ndr_pull_error ( ndr , NDR_ERR_ARRAY_SIZE , " Bad array size %u should exceed array length %u " , ndr_get_array_size ( ndr , & r - > in . s1 ) , ndr_get_array_length ( ndr , & r - > in . s1 ) ) ;
}
NDR_CHECK ( ndr_check_string_terminator ( ndr , ndr_get_array_length ( ndr , & r - > in . s1 ) , sizeof ( uint16_t ) ) ) ;
NDR_CHECK ( ndr_pull_charset ( ndr , NDR_SCALARS , & r - > in . s1 , ndr_get_array_length ( ndr , & r - > in . s1 ) , sizeof ( uint16_t ) , CH_UTF16 ) ) ;
NDR_PULL_ALLOC ( ndr , r - > out . s2 ) ;
ZERO_STRUCTP ( r - > out . s2 ) ;
}
if ( flags & NDR_OUT ) {
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > out . s2 ) ;
}
_mem_save_s2_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > out . s2 , LIBNDR_FLAG_REF_ALLOC ) ;
2008-02-07 11:43:46 +03:00
NDR_CHECK ( ndr_pull_generic_ptr ( ndr , & _ptr_s2 ) ) ;
if ( _ptr_s2 ) {
NDR_PULL_ALLOC ( ndr , * r - > out . s2 ) ;
} else {
* r - > out . s2 = NULL ;
}
if ( * r - > out . s2 ) {
_mem_save_s2_1 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , * r - > out . s2 , 0 ) ;
NDR_CHECK ( ndr_pull_array_size ( ndr , r - > out . s2 ) ) ;
NDR_CHECK ( ndr_pull_array_length ( ndr , r - > out . s2 ) ) ;
if ( ndr_get_array_length ( ndr , r - > out . s2 ) > ndr_get_array_size ( ndr , r - > out . s2 ) ) {
return ndr_pull_error ( ndr , NDR_ERR_ARRAY_SIZE , " Bad array size %u should exceed array length %u " , ndr_get_array_size ( ndr , r - > out . s2 ) , ndr_get_array_length ( ndr , r - > out . s2 ) ) ;
}
NDR_CHECK ( ndr_check_string_terminator ( ndr , ndr_get_array_length ( ndr , r - > out . s2 ) , sizeof ( uint16_t ) ) ) ;
NDR_CHECK ( ndr_pull_charset ( ndr , NDR_SCALARS , r - > out . s2 , ndr_get_array_length ( ndr , r - > out . s2 ) , sizeof ( uint16_t ) , CH_UTF16 ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_s2_1 , 0 ) ;
2006-09-16 02:49:27 +04:00
}
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_s2_0 , LIBNDR_FLAG_REF_ALLOC ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_TestCall ( struct ndr_print * ndr , const char * name , int flags , const struct echo_TestCall * r )
{
ndr_print_struct ( ndr , name , " echo_TestCall " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_TestCall " ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " s1 " , r - > in . s1 ) ;
ndr - > depth + + ;
ndr_print_string ( ndr , " s1 " , r - > in . s1 ) ;
ndr - > depth - - ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_TestCall " ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " s2 " , r - > out . s2 ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " s2 " , * r - > out . s2 ) ;
ndr - > depth + + ;
2008-02-07 11:43:46 +03:00
if ( * r - > out . s2 ) {
ndr_print_string ( ndr , " s2 " , * r - > out . s2 ) ;
}
2006-09-16 02:49:27 +04:00
ndr - > depth - - ;
ndr - > depth - - ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_TestCall2 ( struct ndr_push * ndr , int flags , const struct echo_TestCall2 * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
NDR_CHECK ( ndr_push_uint16 ( ndr , NDR_SCALARS , r - > in . level ) ) ;
}
if ( flags & NDR_OUT ) {
2007-10-27 13:57:48 +04:00
if ( r - > out . info = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_set_switch_value ( ndr , r - > out . info , r - > in . level ) ) ;
NDR_CHECK ( ndr_push_echo_Info ( ndr , NDR_SCALARS , r - > out . info ) ) ;
NDR_CHECK ( ndr_push_NTSTATUS ( ndr , NDR_SCALARS , r - > out . result ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_TestCall2 ( struct ndr_pull * ndr , int flags , struct echo_TestCall2 * r )
2006-09-16 02:49:27 +04:00
{
TALLOC_CTX * _mem_save_info_0 ;
if ( flags & NDR_IN ) {
ZERO_STRUCT ( r - > out ) ;
NDR_CHECK ( ndr_pull_uint16 ( ndr , NDR_SCALARS , & r - > in . level ) ) ;
NDR_PULL_ALLOC ( ndr , r - > out . info ) ;
ZERO_STRUCTP ( r - > out . info ) ;
}
if ( flags & NDR_OUT ) {
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > out . info ) ;
}
_mem_save_info_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > out . info , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_set_switch_value ( ndr , r - > out . info , r - > in . level ) ) ;
NDR_CHECK ( ndr_pull_echo_Info ( ndr , NDR_SCALARS , r - > out . info ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_info_0 , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_NTSTATUS ( ndr , NDR_SCALARS , & r - > out . result ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_TestCall2 ( struct ndr_print * ndr , const char * name , int flags , const struct echo_TestCall2 * r )
{
ndr_print_struct ( ndr , name , " echo_TestCall2 " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_TestCall2 " ) ;
ndr - > depth + + ;
ndr_print_uint16 ( ndr , " level " , r - > in . level ) ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_TestCall2 " ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " info " , r - > out . info ) ;
ndr - > depth + + ;
ndr_print_set_switch_value ( ndr , r - > out . info , r - > in . level ) ;
ndr_print_echo_Info ( ndr , " info " , r - > out . info ) ;
ndr - > depth - - ;
ndr_print_NTSTATUS ( ndr , " result " , r - > out . result ) ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_TestSleep ( struct ndr_push * ndr , int flags , const struct echo_TestSleep * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > in . seconds ) ) ;
}
if ( flags & NDR_OUT ) {
NDR_CHECK ( ndr_push_uint32 ( ndr , NDR_SCALARS , r - > out . result ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_TestSleep ( struct ndr_pull * ndr , int flags , struct echo_TestSleep * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , & r - > in . seconds ) ) ;
}
if ( flags & NDR_OUT ) {
NDR_CHECK ( ndr_pull_uint32 ( ndr , NDR_SCALARS , & r - > out . result ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_TestSleep ( struct ndr_print * ndr , const char * name , int flags , const struct echo_TestSleep * r )
{
ndr_print_struct ( ndr , name , " echo_TestSleep " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_TestSleep " ) ;
ndr - > depth + + ;
ndr_print_uint32 ( ndr , " seconds " , r - > in . seconds ) ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_TestSleep " ) ;
ndr - > depth + + ;
ndr_print_uint32 ( ndr , " result " , r - > out . result ) ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_TestEnum ( struct ndr_push * ndr , int flags , const struct echo_TestEnum * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
2007-10-27 13:57:48 +04:00
if ( r - > in . foo1 = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_Enum1 ( ndr , NDR_SCALARS , * r - > in . foo1 ) ) ;
2007-10-27 13:57:48 +04:00
if ( r - > in . foo2 = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_Enum2 ( ndr , NDR_SCALARS , r - > in . foo2 ) ) ;
2007-10-27 13:57:48 +04:00
if ( r - > in . foo3 = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_set_switch_value ( ndr , r - > in . foo3 , * r - > in . foo1 ) ) ;
NDR_CHECK ( ndr_push_echo_Enum3 ( ndr , NDR_SCALARS , r - > in . foo3 ) ) ;
}
if ( flags & NDR_OUT ) {
2007-10-27 13:57:48 +04:00
if ( r - > out . foo1 = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_Enum1 ( ndr , NDR_SCALARS , * r - > out . foo1 ) ) ;
2007-10-27 13:57:48 +04:00
if ( r - > out . foo2 = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_Enum2 ( ndr , NDR_SCALARS , r - > out . foo2 ) ) ;
2007-10-27 13:57:48 +04:00
if ( r - > out . foo3 = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_set_switch_value ( ndr , r - > out . foo3 , * r - > out . foo1 ) ) ;
NDR_CHECK ( ndr_push_echo_Enum3 ( ndr , NDR_SCALARS , r - > out . foo3 ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_TestEnum ( struct ndr_pull * ndr , int flags , struct echo_TestEnum * r )
2006-09-16 02:49:27 +04:00
{
TALLOC_CTX * _mem_save_foo1_0 ;
TALLOC_CTX * _mem_save_foo2_0 ;
TALLOC_CTX * _mem_save_foo3_0 ;
if ( flags & NDR_IN ) {
ZERO_STRUCT ( r - > out ) ;
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > in . foo1 ) ;
}
_mem_save_foo1_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > in . foo1 , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_echo_Enum1 ( ndr , NDR_SCALARS , r - > in . foo1 ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_foo1_0 , LIBNDR_FLAG_REF_ALLOC ) ;
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > in . foo2 ) ;
}
_mem_save_foo2_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > in . foo2 , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_echo_Enum2 ( ndr , NDR_SCALARS , r - > in . foo2 ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_foo2_0 , LIBNDR_FLAG_REF_ALLOC ) ;
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > in . foo3 ) ;
}
_mem_save_foo3_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > in . foo3 , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_set_switch_value ( ndr , r - > in . foo3 , * r - > in . foo1 ) ) ;
NDR_CHECK ( ndr_pull_echo_Enum3 ( ndr , NDR_SCALARS , r - > in . foo3 ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_foo3_0 , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_PULL_ALLOC ( ndr , r - > out . foo1 ) ;
* r - > out . foo1 = * r - > in . foo1 ;
NDR_PULL_ALLOC ( ndr , r - > out . foo2 ) ;
* r - > out . foo2 = * r - > in . foo2 ;
NDR_PULL_ALLOC ( ndr , r - > out . foo3 ) ;
* r - > out . foo3 = * r - > in . foo3 ;
}
if ( flags & NDR_OUT ) {
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > out . foo1 ) ;
}
_mem_save_foo1_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > out . foo1 , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_echo_Enum1 ( ndr , NDR_SCALARS , r - > out . foo1 ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_foo1_0 , LIBNDR_FLAG_REF_ALLOC ) ;
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > out . foo2 ) ;
}
_mem_save_foo2_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > out . foo2 , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_echo_Enum2 ( ndr , NDR_SCALARS , r - > out . foo2 ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_foo2_0 , LIBNDR_FLAG_REF_ALLOC ) ;
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > out . foo3 ) ;
}
_mem_save_foo3_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > out . foo3 , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_set_switch_value ( ndr , r - > out . foo3 , * r - > out . foo1 ) ) ;
NDR_CHECK ( ndr_pull_echo_Enum3 ( ndr , NDR_SCALARS , r - > out . foo3 ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_foo3_0 , LIBNDR_FLAG_REF_ALLOC ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_TestEnum ( struct ndr_print * ndr , const char * name , int flags , const struct echo_TestEnum * r )
{
ndr_print_struct ( ndr , name , " echo_TestEnum " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_TestEnum " ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " foo1 " , r - > in . foo1 ) ;
ndr - > depth + + ;
ndr_print_echo_Enum1 ( ndr , " foo1 " , * r - > in . foo1 ) ;
ndr - > depth - - ;
ndr_print_ptr ( ndr , " foo2 " , r - > in . foo2 ) ;
ndr - > depth + + ;
ndr_print_echo_Enum2 ( ndr , " foo2 " , r - > in . foo2 ) ;
ndr - > depth - - ;
ndr_print_ptr ( ndr , " foo3 " , r - > in . foo3 ) ;
ndr - > depth + + ;
ndr_print_set_switch_value ( ndr , r - > in . foo3 , * r - > in . foo1 ) ;
ndr_print_echo_Enum3 ( ndr , " foo3 " , r - > in . foo3 ) ;
ndr - > depth - - ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_TestEnum " ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " foo1 " , r - > out . foo1 ) ;
ndr - > depth + + ;
ndr_print_echo_Enum1 ( ndr , " foo1 " , * r - > out . foo1 ) ;
ndr - > depth - - ;
ndr_print_ptr ( ndr , " foo2 " , r - > out . foo2 ) ;
ndr - > depth + + ;
ndr_print_echo_Enum2 ( ndr , " foo2 " , r - > out . foo2 ) ;
ndr - > depth - - ;
ndr_print_ptr ( ndr , " foo3 " , r - > out . foo3 ) ;
ndr - > depth + + ;
ndr_print_set_switch_value ( ndr , r - > out . foo3 , * r - > out . foo1 ) ;
ndr_print_echo_Enum3 ( ndr , " foo3 " , r - > out . foo3 ) ;
ndr - > depth - - ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_TestSurrounding ( struct ndr_push * ndr , int flags , const struct echo_TestSurrounding * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
2007-10-27 13:57:48 +04:00
if ( r - > in . data = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_Surrounding ( ndr , NDR_SCALARS , r - > in . data ) ) ;
}
if ( flags & NDR_OUT ) {
2007-10-27 13:57:48 +04:00
if ( r - > out . data = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2006-09-16 02:49:27 +04:00
NDR_CHECK ( ndr_push_echo_Surrounding ( ndr , NDR_SCALARS , r - > out . data ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_TestSurrounding ( struct ndr_pull * ndr , int flags , struct echo_TestSurrounding * r )
2006-09-16 02:49:27 +04:00
{
TALLOC_CTX * _mem_save_data_0 ;
if ( flags & NDR_IN ) {
ZERO_STRUCT ( r - > out ) ;
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > in . data ) ;
}
_mem_save_data_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > in . data , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_echo_Surrounding ( ndr , NDR_SCALARS , r - > in . data ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_data_0 , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_PULL_ALLOC ( ndr , r - > out . data ) ;
* r - > out . data = * r - > in . data ;
}
if ( flags & NDR_OUT ) {
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > out . data ) ;
}
_mem_save_data_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > out . data , LIBNDR_FLAG_REF_ALLOC ) ;
NDR_CHECK ( ndr_pull_echo_Surrounding ( ndr , NDR_SCALARS , r - > out . data ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_data_0 , LIBNDR_FLAG_REF_ALLOC ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_TestSurrounding ( struct ndr_print * ndr , const char * name , int flags , const struct echo_TestSurrounding * r )
{
ndr_print_struct ( ndr , name , " echo_TestSurrounding " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_TestSurrounding " ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " data " , r - > in . data ) ;
ndr - > depth + + ;
ndr_print_echo_Surrounding ( ndr , " data " , r - > in . data ) ;
ndr - > depth - - ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_TestSurrounding " ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " data " , r - > out . data ) ;
ndr - > depth + + ;
ndr_print_echo_Surrounding ( ndr , " data " , r - > out . data ) ;
ndr - > depth - - ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_push_echo_TestDoublePointer ( struct ndr_push * ndr , int flags , const struct echo_TestDoublePointer * r )
2006-09-16 02:49:27 +04:00
{
if ( flags & NDR_IN ) {
2007-10-27 13:57:48 +04:00
if ( r - > in . data = = NULL ) {
return ndr_push_error ( ndr , NDR_ERR_INVALID_POINTER , " NULL [ref] pointer " ) ;
}
2008-02-07 11:43:46 +03:00
NDR_CHECK ( ndr_push_unique_ptr ( ndr , * r - > in . data ) ) ;
if ( * r - > in . data ) {
NDR_CHECK ( ndr_push_unique_ptr ( ndr , * * r - > in . data ) ) ;
if ( * * r - > in . data ) {
NDR_CHECK ( ndr_push_uint16 ( ndr , NDR_SCALARS , * * * r - > in . data ) ) ;
}
2007-10-27 13:57:48 +04:00
}
2006-09-16 02:49:27 +04:00
}
if ( flags & NDR_OUT ) {
NDR_CHECK ( ndr_push_uint16 ( ndr , NDR_SCALARS , r - > out . result ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
2007-11-09 16:38:47 +03:00
static enum ndr_err_code ndr_pull_echo_TestDoublePointer ( struct ndr_pull * ndr , int flags , struct echo_TestDoublePointer * r )
2006-09-16 02:49:27 +04:00
{
uint32_t _ptr_data ;
TALLOC_CTX * _mem_save_data_0 ;
TALLOC_CTX * _mem_save_data_1 ;
TALLOC_CTX * _mem_save_data_2 ;
if ( flags & NDR_IN ) {
if ( ndr - > flags & LIBNDR_FLAG_REF_ALLOC ) {
NDR_PULL_ALLOC ( ndr , r - > in . data ) ;
}
_mem_save_data_0 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , r - > in . data , LIBNDR_FLAG_REF_ALLOC ) ;
2008-02-07 11:43:46 +03:00
NDR_CHECK ( ndr_pull_generic_ptr ( ndr , & _ptr_data ) ) ;
if ( _ptr_data ) {
2006-09-16 02:49:27 +04:00
NDR_PULL_ALLOC ( ndr , * r - > in . data ) ;
2008-02-07 11:43:46 +03:00
} else {
* r - > in . data = NULL ;
2006-09-16 02:49:27 +04:00
}
2008-02-07 11:43:46 +03:00
if ( * r - > in . data ) {
_mem_save_data_1 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , * r - > in . data , 0 ) ;
NDR_CHECK ( ndr_pull_generic_ptr ( ndr , & _ptr_data ) ) ;
if ( _ptr_data ) {
NDR_PULL_ALLOC ( ndr , * * r - > in . data ) ;
} else {
* * r - > in . data = NULL ;
}
if ( * * r - > in . data ) {
_mem_save_data_2 = NDR_PULL_GET_MEM_CTX ( ndr ) ;
NDR_PULL_SET_MEM_CTX ( ndr , * * r - > in . data , 0 ) ;
NDR_CHECK ( ndr_pull_uint16 ( ndr , NDR_SCALARS , * * r - > in . data ) ) ;
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_data_2 , 0 ) ;
}
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_data_1 , 0 ) ;
2006-09-16 02:49:27 +04:00
}
NDR_PULL_SET_MEM_CTX ( ndr , _mem_save_data_0 , LIBNDR_FLAG_REF_ALLOC ) ;
}
if ( flags & NDR_OUT ) {
NDR_CHECK ( ndr_pull_uint16 ( ndr , NDR_SCALARS , & r - > out . result ) ) ;
}
2007-11-09 16:38:47 +03:00
return NDR_ERR_SUCCESS ;
2006-09-16 02:49:27 +04:00
}
_PUBLIC_ void ndr_print_echo_TestDoublePointer ( struct ndr_print * ndr , const char * name , int flags , const struct echo_TestDoublePointer * r )
{
ndr_print_struct ( ndr , name , " echo_TestDoublePointer " ) ;
ndr - > depth + + ;
if ( flags & NDR_SET_VALUES ) {
ndr - > flags | = LIBNDR_PRINT_SET_VALUES ;
}
if ( flags & NDR_IN ) {
ndr_print_struct ( ndr , " in " , " echo_TestDoublePointer " ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " data " , r - > in . data ) ;
ndr - > depth + + ;
ndr_print_ptr ( ndr , " data " , * r - > in . data ) ;
ndr - > depth + + ;
2008-02-07 11:43:46 +03:00
if ( * r - > in . data ) {
ndr_print_ptr ( ndr , " data " , * * r - > in . data ) ;
ndr - > depth + + ;
if ( * * r - > in . data ) {
ndr_print_uint16 ( ndr , " data " , * * * r - > in . data ) ;
}
ndr - > depth - - ;
}
2006-09-16 02:49:27 +04:00
ndr - > depth - - ;
ndr - > depth - - ;
ndr - > depth - - ;
}
if ( flags & NDR_OUT ) {
ndr_print_struct ( ndr , " out " , " echo_TestDoublePointer " ) ;
ndr - > depth + + ;
ndr_print_uint16 ( ndr , " result " , r - > out . result ) ;
ndr - > depth - - ;
}
ndr - > depth - - ;
}
2007-09-20 00:03:43 +04:00
static const struct ndr_interface_call rpcecho_calls [ ] = {
2006-09-16 02:49:27 +04:00
{
" echo_AddOne " ,
sizeof ( struct echo_AddOne ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_AddOne ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_AddOne ,
( ndr_print_function_t ) ndr_print_echo_AddOne ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
{
" echo_EchoData " ,
sizeof ( struct echo_EchoData ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_EchoData ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_EchoData ,
( ndr_print_function_t ) ndr_print_echo_EchoData ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
{
" echo_SinkData " ,
sizeof ( struct echo_SinkData ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_SinkData ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_SinkData ,
( ndr_print_function_t ) ndr_print_echo_SinkData ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
{
" echo_SourceData " ,
sizeof ( struct echo_SourceData ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_SourceData ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_SourceData ,
( ndr_print_function_t ) ndr_print_echo_SourceData ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
{
" echo_TestCall " ,
sizeof ( struct echo_TestCall ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_TestCall ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_TestCall ,
( ndr_print_function_t ) ndr_print_echo_TestCall ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
{
" echo_TestCall2 " ,
sizeof ( struct echo_TestCall2 ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_TestCall2 ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_TestCall2 ,
( ndr_print_function_t ) ndr_print_echo_TestCall2 ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
{
" echo_TestSleep " ,
sizeof ( struct echo_TestSleep ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_TestSleep ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_TestSleep ,
( ndr_print_function_t ) ndr_print_echo_TestSleep ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
{
" echo_TestEnum " ,
sizeof ( struct echo_TestEnum ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_TestEnum ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_TestEnum ,
( ndr_print_function_t ) ndr_print_echo_TestEnum ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
{
" echo_TestSurrounding " ,
sizeof ( struct echo_TestSurrounding ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_TestSurrounding ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_TestSurrounding ,
( ndr_print_function_t ) ndr_print_echo_TestSurrounding ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
{
" echo_TestDoublePointer " ,
sizeof ( struct echo_TestDoublePointer ) ,
( ndr_push_flags_fn_t ) ndr_push_echo_TestDoublePointer ,
( ndr_pull_flags_fn_t ) ndr_pull_echo_TestDoublePointer ,
( ndr_print_function_t ) ndr_print_echo_TestDoublePointer ,
2007-09-20 00:03:43 +04:00
false ,
2006-09-16 02:49:27 +04:00
} ,
2007-09-20 00:03:43 +04:00
{ NULL , 0 , NULL , NULL , NULL , false }
2006-09-16 02:49:27 +04:00
} ;
2007-09-20 00:03:43 +04:00
static const char * const rpcecho_endpoint_strings [ ] = {
2006-09-16 02:49:27 +04:00
" ncacn_np:[ \\ pipe \\ rpcecho] " ,
" ncacn_ip_tcp: " ,
" ncalrpc: " ,
} ;
2007-09-20 00:03:43 +04:00
static const struct ndr_interface_string_array rpcecho_endpoints = {
2006-09-16 02:49:27 +04:00
. count = 3 ,
. names = rpcecho_endpoint_strings
} ;
2007-09-20 00:03:43 +04:00
static const char * const rpcecho_authservice_strings [ ] = {
2006-09-16 02:49:27 +04:00
" host " ,
} ;
2007-09-20 00:03:43 +04:00
static const struct ndr_interface_string_array rpcecho_authservices = {
2008-04-06 02:47:53 +04:00
. count = 1 ,
2006-09-16 02:49:27 +04:00
. names = rpcecho_authservice_strings
} ;
2007-08-20 01:23:28 +04:00
const struct ndr_interface_table ndr_table_rpcecho = {
2006-09-16 02:49:27 +04:00
. name = " rpcecho " ,
. syntax_id = {
{ 0x60a15ec5 , 0x4de8 , 0x11d7 , { 0xa6 , 0x37 } , { 0x00 , 0x50 , 0x56 , 0xa2 , 0x01 , 0x82 } } ,
2007-08-20 02:10:11 +04:00
NDR_RPCECHO_VERSION
2006-09-16 02:49:27 +04:00
} ,
2007-08-20 02:10:11 +04:00
. helpstring = NDR_RPCECHO_HELPSTRING ,
2006-09-16 02:49:27 +04:00
. num_calls = 10 ,
. calls = rpcecho_calls ,
. endpoints = & rpcecho_endpoints ,
. authservices = & rpcecho_authservices
} ;