1 /* parser auto-generated by pidl */
4 #include "bin/default/librpc/gen_ndr/ndr_echo.h"
6 _PUBLIC_ enum ndr_err_code ndr_push_echo_info1(struct ndr_push *ndr, int ndr_flags, const struct echo_info1 *r)
8 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9 if (ndr_flags & NDR_SCALARS) {
10 NDR_CHECK(ndr_push_align(ndr, 1));
11 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->v));
12 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
14 if (ndr_flags & NDR_BUFFERS) {
16 return NDR_ERR_SUCCESS;
19 _PUBLIC_ enum ndr_err_code ndr_pull_echo_info1(struct ndr_pull *ndr, int ndr_flags, struct echo_info1 *r)
21 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22 if (ndr_flags & NDR_SCALARS) {
23 NDR_CHECK(ndr_pull_align(ndr, 1));
24 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->v));
25 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
27 if (ndr_flags & NDR_BUFFERS) {
29 return NDR_ERR_SUCCESS;
32 _PUBLIC_ void ndr_print_echo_info1(struct ndr_print *ndr, const char *name, const struct echo_info1 *r)
34 ndr_print_struct(ndr, name, "echo_info1");
35 if (r == NULL) { ndr_print_null(ndr); return; }
37 ndr_print_uint8(ndr, "v", r->v);
41 static enum ndr_err_code ndr_push_echo_info2(struct ndr_push *ndr, int ndr_flags, const struct echo_info2 *r)
43 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
44 if (ndr_flags & NDR_SCALARS) {
45 NDR_CHECK(ndr_push_align(ndr, 2));
46 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->v));
47 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
49 if (ndr_flags & NDR_BUFFERS) {
51 return NDR_ERR_SUCCESS;
54 static enum ndr_err_code ndr_pull_echo_info2(struct ndr_pull *ndr, int ndr_flags, struct echo_info2 *r)
56 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
57 if (ndr_flags & NDR_SCALARS) {
58 NDR_CHECK(ndr_pull_align(ndr, 2));
59 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->v));
60 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
62 if (ndr_flags & NDR_BUFFERS) {
64 return NDR_ERR_SUCCESS;
67 _PUBLIC_ void ndr_print_echo_info2(struct ndr_print *ndr, const char *name, const struct echo_info2 *r)
69 ndr_print_struct(ndr, name, "echo_info2");
70 if (r == NULL) { ndr_print_null(ndr); return; }
72 ndr_print_uint16(ndr, "v", r->v);
76 static enum ndr_err_code ndr_push_echo_info3(struct ndr_push *ndr, int ndr_flags, const struct echo_info3 *r)
78 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
79 if (ndr_flags & NDR_SCALARS) {
80 NDR_CHECK(ndr_push_align(ndr, 4));
81 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->v));
82 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
84 if (ndr_flags & NDR_BUFFERS) {
86 return NDR_ERR_SUCCESS;
89 static enum ndr_err_code ndr_pull_echo_info3(struct ndr_pull *ndr, int ndr_flags, struct echo_info3 *r)
91 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
92 if (ndr_flags & NDR_SCALARS) {
93 NDR_CHECK(ndr_pull_align(ndr, 4));
94 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->v));
95 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
97 if (ndr_flags & NDR_BUFFERS) {
99 return NDR_ERR_SUCCESS;
102 _PUBLIC_ void ndr_print_echo_info3(struct ndr_print *ndr, const char *name, const struct echo_info3 *r)
104 ndr_print_struct(ndr, name, "echo_info3");
105 if (r == NULL) { ndr_print_null(ndr); return; }
107 ndr_print_uint32(ndr, "v", r->v);
111 static enum ndr_err_code ndr_push_STRUCT_echo_info4(struct ndr_push *ndr, int ndr_flags, const struct echo_info4 *r)
113 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
114 if (ndr_flags & NDR_SCALARS) {
115 NDR_CHECK(ndr_push_align(ndr, 8));
116 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->v));
117 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
119 if (ndr_flags & NDR_BUFFERS) {
121 return NDR_ERR_SUCCESS;
124 static enum ndr_err_code ndr_pull_STRUCT_echo_info4(struct ndr_pull *ndr, int ndr_flags, struct echo_info4 *r)
126 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
127 if (ndr_flags & NDR_SCALARS) {
128 NDR_CHECK(ndr_pull_align(ndr, 8));
129 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->v));
130 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
132 if (ndr_flags & NDR_BUFFERS) {
134 return NDR_ERR_SUCCESS;
137 _PUBLIC_ void ndr_print_STRUCT_echo_info4(struct ndr_print *ndr, const char *name, const struct echo_info4 *r)
139 ndr_print_struct(ndr, name, "echo_info4");
140 if (r == NULL) { ndr_print_null(ndr); return; }
142 ndr_print_hyper(ndr, "v", r->v);
146 static enum ndr_err_code ndr_push_echo_info5(struct ndr_push *ndr, int ndr_flags, const struct echo_info5 *r)
148 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
149 if (ndr_flags & NDR_SCALARS) {
150 NDR_CHECK(ndr_push_align(ndr, 8));
151 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->v1));
152 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->v2));
153 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
155 if (ndr_flags & NDR_BUFFERS) {
157 return NDR_ERR_SUCCESS;
160 static enum ndr_err_code ndr_pull_echo_info5(struct ndr_pull *ndr, int ndr_flags, struct echo_info5 *r)
162 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
163 if (ndr_flags & NDR_SCALARS) {
164 NDR_CHECK(ndr_pull_align(ndr, 8));
165 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->v1));
166 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->v2));
167 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
169 if (ndr_flags & NDR_BUFFERS) {
171 return NDR_ERR_SUCCESS;
174 _PUBLIC_ void ndr_print_echo_info5(struct ndr_print *ndr, const char *name, const struct echo_info5 *r)
176 ndr_print_struct(ndr, name, "echo_info5");
177 if (r == NULL) { ndr_print_null(ndr); return; }
179 ndr_print_uint8(ndr, "v1", r->v1);
180 ndr_print_hyper(ndr, "v2", r->v2);
184 static enum ndr_err_code ndr_push_echo_info6(struct ndr_push *ndr, int ndr_flags, const struct echo_info6 *r)
186 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
187 if (ndr_flags & NDR_SCALARS) {
188 NDR_CHECK(ndr_push_align(ndr, 1));
189 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->v1));
190 NDR_CHECK(ndr_push_echo_info1(ndr, NDR_SCALARS, &r->info1));
191 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
193 if (ndr_flags & NDR_BUFFERS) {
195 return NDR_ERR_SUCCESS;
198 static enum ndr_err_code ndr_pull_echo_info6(struct ndr_pull *ndr, int ndr_flags, struct echo_info6 *r)
200 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
201 if (ndr_flags & NDR_SCALARS) {
202 NDR_CHECK(ndr_pull_align(ndr, 1));
203 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->v1));
204 NDR_CHECK(ndr_pull_echo_info1(ndr, NDR_SCALARS, &r->info1));
205 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
207 if (ndr_flags & NDR_BUFFERS) {
209 return NDR_ERR_SUCCESS;
212 _PUBLIC_ void ndr_print_echo_info6(struct ndr_print *ndr, const char *name, const struct echo_info6 *r)
214 ndr_print_struct(ndr, name, "echo_info6");
215 if (r == NULL) { ndr_print_null(ndr); return; }
217 ndr_print_uint8(ndr, "v1", r->v1);
218 ndr_print_echo_info1(ndr, "info1", &r->info1);
222 static enum ndr_err_code ndr_push_echo_info7(struct ndr_push *ndr, int ndr_flags, const struct echo_info7 *r)
224 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
225 if (ndr_flags & NDR_SCALARS) {
226 NDR_CHECK(ndr_push_align(ndr, 8));
227 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->v1));
228 NDR_CHECK(ndr_push_STRUCT_echo_info4(ndr, NDR_SCALARS, &r->info4));
229 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
231 if (ndr_flags & NDR_BUFFERS) {
233 return NDR_ERR_SUCCESS;
236 static enum ndr_err_code ndr_pull_echo_info7(struct ndr_pull *ndr, int ndr_flags, struct echo_info7 *r)
238 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
239 if (ndr_flags & NDR_SCALARS) {
240 NDR_CHECK(ndr_pull_align(ndr, 8));
241 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->v1));
242 NDR_CHECK(ndr_pull_STRUCT_echo_info4(ndr, NDR_SCALARS, &r->info4));
243 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
245 if (ndr_flags & NDR_BUFFERS) {
247 return NDR_ERR_SUCCESS;
250 _PUBLIC_ void ndr_print_echo_info7(struct ndr_print *ndr, const char *name, const struct echo_info7 *r)
252 ndr_print_struct(ndr, name, "echo_info7");
253 if (r == NULL) { ndr_print_null(ndr); return; }
255 ndr_print_uint8(ndr, "v1", r->v1);
256 ndr_print_STRUCT_echo_info4(ndr, "info4", &r->info4);
260 static enum ndr_err_code ndr_push_echo_Info(struct ndr_push *ndr, int ndr_flags, const union echo_Info *r)
262 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
263 if (ndr_flags & NDR_SCALARS) {
264 uint32_t level = ndr_push_get_switch_value(ndr, r);
265 NDR_CHECK(ndr_push_union_align(ndr, 8));
266 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
267 NDR_CHECK(ndr_push_union_align(ndr, 8));
270 NDR_CHECK(ndr_push_echo_info1(ndr, NDR_SCALARS, &r->info1));
274 NDR_CHECK(ndr_push_echo_info2(ndr, NDR_SCALARS, &r->info2));
278 NDR_CHECK(ndr_push_echo_info3(ndr, NDR_SCALARS, &r->info3));
282 NDR_CHECK(ndr_push_STRUCT_echo_info4(ndr, NDR_SCALARS, &r->info4));
286 NDR_CHECK(ndr_push_echo_info5(ndr, NDR_SCALARS, &r->info5));
290 NDR_CHECK(ndr_push_echo_info6(ndr, NDR_SCALARS, &r->info6));
294 NDR_CHECK(ndr_push_echo_info7(ndr, NDR_SCALARS, &r->info7));
298 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
301 if (ndr_flags & NDR_BUFFERS) {
302 uint32_t level = ndr_push_get_switch_value(ndr, r);
326 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
329 return NDR_ERR_SUCCESS;
332 static enum ndr_err_code ndr_pull_echo_Info(struct ndr_pull *ndr, int ndr_flags, union echo_Info *r)
336 level = ndr_pull_get_switch_value(ndr, r);
337 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
338 if (ndr_flags & NDR_SCALARS) {
339 NDR_CHECK(ndr_pull_union_align(ndr, 8));
340 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
341 if (_level != level) {
342 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
344 NDR_CHECK(ndr_pull_union_align(ndr, 8));
347 NDR_CHECK(ndr_pull_echo_info1(ndr, NDR_SCALARS, &r->info1));
351 NDR_CHECK(ndr_pull_echo_info2(ndr, NDR_SCALARS, &r->info2));
355 NDR_CHECK(ndr_pull_echo_info3(ndr, NDR_SCALARS, &r->info3));
359 NDR_CHECK(ndr_pull_STRUCT_echo_info4(ndr, NDR_SCALARS, &r->info4));
363 NDR_CHECK(ndr_pull_echo_info5(ndr, NDR_SCALARS, &r->info5));
367 NDR_CHECK(ndr_pull_echo_info6(ndr, NDR_SCALARS, &r->info6));
371 NDR_CHECK(ndr_pull_echo_info7(ndr, NDR_SCALARS, &r->info7));
375 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
378 if (ndr_flags & NDR_BUFFERS) {
402 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
405 return NDR_ERR_SUCCESS;
408 _PUBLIC_ void ndr_print_echo_Info(struct ndr_print *ndr, const char *name, const union echo_Info *r)
411 level = ndr_print_get_switch_value(ndr, r);
412 ndr_print_union(ndr, name, level, "echo_Info");
415 ndr_print_echo_info1(ndr, "info1", &r->info1);
419 ndr_print_echo_info2(ndr, "info2", &r->info2);
423 ndr_print_echo_info3(ndr, "info3", &r->info3);
427 ndr_print_STRUCT_echo_info4(ndr, "info4", &r->info4);
431 ndr_print_echo_info5(ndr, "info5", &r->info5);
435 ndr_print_echo_info6(ndr, "info6", &r->info6);
439 ndr_print_echo_info7(ndr, "info7", &r->info7);
443 ndr_print_bad_level(ndr, name, level);
447 static enum ndr_err_code ndr_push_echo_Enum1(struct ndr_push *ndr, int ndr_flags, enum echo_Enum1 r)
449 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
450 return NDR_ERR_SUCCESS;
453 static enum ndr_err_code ndr_pull_echo_Enum1(struct ndr_pull *ndr, int ndr_flags, enum echo_Enum1 *r)
456 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
458 return NDR_ERR_SUCCESS;
461 _PUBLIC_ void ndr_print_echo_Enum1(struct ndr_print *ndr, const char *name, enum echo_Enum1 r)
463 const char *val = NULL;
466 case ECHO_ENUM1: val = "ECHO_ENUM1"; break;
467 case ECHO_ENUM2: val = "ECHO_ENUM2"; break;
469 ndr_print_enum(ndr, name, "ENUM", val, r);
472 static enum ndr_err_code ndr_push_echo_Enum1_32(struct ndr_push *ndr, int ndr_flags, enum echo_Enum1_32 r)
474 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
475 return NDR_ERR_SUCCESS;
478 static enum ndr_err_code ndr_pull_echo_Enum1_32(struct ndr_pull *ndr, int ndr_flags, enum echo_Enum1_32 *r)
481 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
483 return NDR_ERR_SUCCESS;
486 _PUBLIC_ void ndr_print_echo_Enum1_32(struct ndr_print *ndr, const char *name, enum echo_Enum1_32 r)
488 const char *val = NULL;
491 case ECHO_ENUM1_32: val = "ECHO_ENUM1_32"; break;
492 case ECHO_ENUM2_32: val = "ECHO_ENUM2_32"; break;
494 ndr_print_enum(ndr, name, "ENUM", val, r);
497 static enum ndr_err_code ndr_push_echo_Enum2(struct ndr_push *ndr, int ndr_flags, const struct echo_Enum2 *r)
499 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
500 if (ndr_flags & NDR_SCALARS) {
501 NDR_CHECK(ndr_push_align(ndr, 4));
502 NDR_CHECK(ndr_push_echo_Enum1(ndr, NDR_SCALARS, r->e1));
503 NDR_CHECK(ndr_push_echo_Enum1_32(ndr, NDR_SCALARS, r->e2));
504 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
506 if (ndr_flags & NDR_BUFFERS) {
508 return NDR_ERR_SUCCESS;
511 static enum ndr_err_code ndr_pull_echo_Enum2(struct ndr_pull *ndr, int ndr_flags, struct echo_Enum2 *r)
513 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
514 if (ndr_flags & NDR_SCALARS) {
515 NDR_CHECK(ndr_pull_align(ndr, 4));
516 NDR_CHECK(ndr_pull_echo_Enum1(ndr, NDR_SCALARS, &r->e1));
517 NDR_CHECK(ndr_pull_echo_Enum1_32(ndr, NDR_SCALARS, &r->e2));
518 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
520 if (ndr_flags & NDR_BUFFERS) {
522 return NDR_ERR_SUCCESS;
525 _PUBLIC_ void ndr_print_echo_Enum2(struct ndr_print *ndr, const char *name, const struct echo_Enum2 *r)
527 ndr_print_struct(ndr, name, "echo_Enum2");
528 if (r == NULL) { ndr_print_null(ndr); return; }
530 ndr_print_echo_Enum1(ndr, "e1", r->e1);
531 ndr_print_echo_Enum1_32(ndr, "e2", r->e2);
535 static enum ndr_err_code ndr_push_echo_Enum3(struct ndr_push *ndr, int ndr_flags, const union echo_Enum3 *r)
537 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
538 if (ndr_flags & NDR_SCALARS) {
539 uint32_t level = ndr_push_get_switch_value(ndr, r);
540 NDR_CHECK(ndr_push_union_align(ndr, 4));
541 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
542 NDR_CHECK(ndr_push_union_align(ndr, 4));
545 NDR_CHECK(ndr_push_echo_Enum1(ndr, NDR_SCALARS, r->e1));
549 NDR_CHECK(ndr_push_echo_Enum2(ndr, NDR_SCALARS, &r->e2));
553 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
556 if (ndr_flags & NDR_BUFFERS) {
557 uint32_t level = ndr_push_get_switch_value(ndr, r);
566 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
569 return NDR_ERR_SUCCESS;
572 static enum ndr_err_code ndr_pull_echo_Enum3(struct ndr_pull *ndr, int ndr_flags, union echo_Enum3 *r)
576 level = ndr_pull_get_switch_value(ndr, r);
577 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
578 if (ndr_flags & NDR_SCALARS) {
579 NDR_CHECK(ndr_pull_union_align(ndr, 4));
580 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
581 if (_level != level) {
582 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
584 NDR_CHECK(ndr_pull_union_align(ndr, 4));
587 NDR_CHECK(ndr_pull_echo_Enum1(ndr, NDR_SCALARS, &r->e1));
591 NDR_CHECK(ndr_pull_echo_Enum2(ndr, NDR_SCALARS, &r->e2));
595 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
598 if (ndr_flags & NDR_BUFFERS) {
607 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
610 return NDR_ERR_SUCCESS;
613 _PUBLIC_ void ndr_print_echo_Enum3(struct ndr_print *ndr, const char *name, const union echo_Enum3 *r)
616 level = ndr_print_get_switch_value(ndr, r);
617 ndr_print_union(ndr, name, level, "echo_Enum3");
620 ndr_print_echo_Enum1(ndr, "e1", r->e1);
624 ndr_print_echo_Enum2(ndr, "e2", &r->e2);
628 ndr_print_bad_level(ndr, name, level);
632 static enum ndr_err_code ndr_push_echo_Surrounding(struct ndr_push *ndr, int ndr_flags, const struct echo_Surrounding *r)
634 uint32_t cntr_surrounding_0;
635 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
636 if (ndr_flags & NDR_SCALARS) {
637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->x));
638 NDR_CHECK(ndr_push_align(ndr, 4));
639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->x));
640 for (cntr_surrounding_0 = 0; cntr_surrounding_0 < r->x; cntr_surrounding_0++) {
641 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->surrounding[cntr_surrounding_0]));
643 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
645 if (ndr_flags & NDR_BUFFERS) {
647 return NDR_ERR_SUCCESS;
650 static enum ndr_err_code ndr_pull_echo_Surrounding(struct ndr_pull *ndr, int ndr_flags, struct echo_Surrounding *r)
652 uint32_t size_surrounding_0 = 0;
653 uint32_t cntr_surrounding_0;
654 TALLOC_CTX *_mem_save_surrounding_0;
655 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
656 if (ndr_flags & NDR_SCALARS) {
657 NDR_CHECK(ndr_pull_array_size(ndr, &r->surrounding));
658 NDR_CHECK(ndr_pull_align(ndr, 4));
659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->x));
660 size_surrounding_0 = ndr_get_array_size(ndr, &r->surrounding);
661 NDR_PULL_ALLOC_N(ndr, r->surrounding, size_surrounding_0);
662 _mem_save_surrounding_0 = NDR_PULL_GET_MEM_CTX(ndr);
663 NDR_PULL_SET_MEM_CTX(ndr, r->surrounding, 0);
664 for (cntr_surrounding_0 = 0; cntr_surrounding_0 < size_surrounding_0; cntr_surrounding_0++) {
665 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->surrounding[cntr_surrounding_0]));
667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_surrounding_0, 0);
668 if (r->surrounding) {
669 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->surrounding, r->x));
671 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
673 if (ndr_flags & NDR_BUFFERS) {
675 return NDR_ERR_SUCCESS;
678 _PUBLIC_ void ndr_print_echo_Surrounding(struct ndr_print *ndr, const char *name, const struct echo_Surrounding *r)
680 uint32_t cntr_surrounding_0;
681 ndr_print_struct(ndr, name, "echo_Surrounding");
682 if (r == NULL) { ndr_print_null(ndr); return; }
684 ndr_print_uint32(ndr, "x", r->x);
685 ndr->print(ndr, "%s: ARRAY(%d)", "surrounding", (int)r->x);
687 for (cntr_surrounding_0=0;cntr_surrounding_0<r->x;cntr_surrounding_0++) {
688 ndr_print_uint16(ndr, "surrounding", r->surrounding[cntr_surrounding_0]);
694 static enum ndr_err_code ndr_push_echo_AddOne(struct ndr_push *ndr, int flags, const struct echo_AddOne *r)
696 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
697 if (flags & NDR_IN) {
698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data));
700 if (flags & NDR_OUT) {
701 if (r->out.out_data == NULL) {
702 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.out_data));
706 return NDR_ERR_SUCCESS;
709 static enum ndr_err_code ndr_pull_echo_AddOne(struct ndr_pull *ndr, int flags, struct echo_AddOne *r)
711 TALLOC_CTX *_mem_save_out_data_0;
712 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
713 if (flags & NDR_IN) {
716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.in_data));
717 NDR_PULL_ALLOC(ndr, r->out.out_data);
718 ZERO_STRUCTP(r->out.out_data);
720 if (flags & NDR_OUT) {
721 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
722 NDR_PULL_ALLOC(ndr, r->out.out_data);
724 _mem_save_out_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
725 NDR_PULL_SET_MEM_CTX(ndr, r->out.out_data, LIBNDR_FLAG_REF_ALLOC);
726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.out_data));
727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_out_data_0, LIBNDR_FLAG_REF_ALLOC);
729 return NDR_ERR_SUCCESS;
732 _PUBLIC_ void ndr_print_echo_AddOne(struct ndr_print *ndr, const char *name, int flags, const struct echo_AddOne *r)
734 ndr_print_struct(ndr, name, "echo_AddOne");
735 if (r == NULL) { ndr_print_null(ndr); return; }
737 if (flags & NDR_SET_VALUES) {
738 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
740 if (flags & NDR_IN) {
741 ndr_print_struct(ndr, "in", "echo_AddOne");
743 ndr_print_uint32(ndr, "in_data", r->in.in_data);
746 if (flags & NDR_OUT) {
747 ndr_print_struct(ndr, "out", "echo_AddOne");
749 ndr_print_ptr(ndr, "out_data", r->out.out_data);
751 ndr_print_uint32(ndr, "out_data", *r->out.out_data);
758 static enum ndr_err_code ndr_push_echo_EchoData(struct ndr_push *ndr, int flags, const struct echo_EchoData *r)
760 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
761 if (flags & NDR_IN) {
762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
763 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.len));
764 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.in_data, r->in.len));
766 if (flags & NDR_OUT) {
767 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.len));
768 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.len));
770 return NDR_ERR_SUCCESS;
773 static enum ndr_err_code ndr_pull_echo_EchoData(struct ndr_pull *ndr, int flags, struct echo_EchoData *r)
775 uint32_t size_in_data_0 = 0;
776 uint32_t size_out_data_0 = 0;
777 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
778 if (flags & NDR_IN) {
781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.len));
782 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.in_data));
783 size_in_data_0 = ndr_get_array_size(ndr, &r->in.in_data);
784 NDR_PULL_ALLOC_N(ndr, r->in.in_data, size_in_data_0);
785 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.in_data, size_in_data_0));
787 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.in_data, r->in.len));
790 if (flags & NDR_OUT) {
791 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
792 size_out_data_0 = ndr_get_array_size(ndr, &r->out.out_data);
793 NDR_PULL_ALLOC_N(ndr, r->out.out_data, size_out_data_0);
794 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, size_out_data_0));
795 if (r->out.out_data) {
796 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.len));
799 return NDR_ERR_SUCCESS;
802 _PUBLIC_ void ndr_print_echo_EchoData(struct ndr_print *ndr, const char *name, int flags, const struct echo_EchoData *r)
804 ndr_print_struct(ndr, name, "echo_EchoData");
805 if (r == NULL) { ndr_print_null(ndr); return; }
807 if (flags & NDR_SET_VALUES) {
808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
810 if (flags & NDR_IN) {
811 ndr_print_struct(ndr, "in", "echo_EchoData");
813 ndr_print_uint32(ndr, "len", r->in.len);
814 ndr_print_array_uint8(ndr, "in_data", r->in.in_data, r->in.len);
817 if (flags & NDR_OUT) {
818 ndr_print_struct(ndr, "out", "echo_EchoData");
820 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.len);
826 static enum ndr_err_code ndr_push_echo_SinkData(struct ndr_push *ndr, int flags, const struct echo_SinkData *r)
828 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
829 if (flags & NDR_IN) {
830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.len));
832 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.len));
834 if (flags & NDR_OUT) {
836 return NDR_ERR_SUCCESS;
839 static enum ndr_err_code ndr_pull_echo_SinkData(struct ndr_pull *ndr, int flags, struct echo_SinkData *r)
841 uint32_t size_data_0 = 0;
842 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
843 if (flags & NDR_IN) {
844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.len));
845 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
846 size_data_0 = ndr_get_array_size(ndr, &r->in.data);
847 NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_0);
848 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_0));
850 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.len));
853 if (flags & NDR_OUT) {
855 return NDR_ERR_SUCCESS;
858 _PUBLIC_ void ndr_print_echo_SinkData(struct ndr_print *ndr, const char *name, int flags, const struct echo_SinkData *r)
860 ndr_print_struct(ndr, name, "echo_SinkData");
861 if (r == NULL) { ndr_print_null(ndr); return; }
863 if (flags & NDR_SET_VALUES) {
864 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
866 if (flags & NDR_IN) {
867 ndr_print_struct(ndr, "in", "echo_SinkData");
869 ndr_print_uint32(ndr, "len", r->in.len);
870 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.len);
873 if (flags & NDR_OUT) {
874 ndr_print_struct(ndr, "out", "echo_SinkData");
881 static enum ndr_err_code ndr_push_echo_SourceData(struct ndr_push *ndr, int flags, const struct echo_SourceData *r)
883 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
884 if (flags & NDR_IN) {
885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
887 if (flags & NDR_OUT) {
888 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.len));
889 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.len));
891 return NDR_ERR_SUCCESS;
894 static enum ndr_err_code ndr_pull_echo_SourceData(struct ndr_pull *ndr, int flags, struct echo_SourceData *r)
896 uint32_t size_data_0 = 0;
897 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
898 if (flags & NDR_IN) {
901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.len));
903 if (flags & NDR_OUT) {
904 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
905 size_data_0 = ndr_get_array_size(ndr, &r->out.data);
906 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_0);
907 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_0));
909 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.len));
912 return NDR_ERR_SUCCESS;
915 _PUBLIC_ void ndr_print_echo_SourceData(struct ndr_print *ndr, const char *name, int flags, const struct echo_SourceData *r)
917 ndr_print_struct(ndr, name, "echo_SourceData");
918 if (r == NULL) { ndr_print_null(ndr); return; }
920 if (flags & NDR_SET_VALUES) {
921 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
923 if (flags & NDR_IN) {
924 ndr_print_struct(ndr, "in", "echo_SourceData");
926 ndr_print_uint32(ndr, "len", r->in.len);
929 if (flags & NDR_OUT) {
930 ndr_print_struct(ndr, "out", "echo_SourceData");
932 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.len);
938 static enum ndr_err_code ndr_push_echo_TestCall(struct ndr_push *ndr, int flags, const struct echo_TestCall *r)
940 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
941 if (flags & NDR_IN) {
942 if (r->in.s1 == NULL) {
943 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
945 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.s1, CH_UTF16)));
946 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
947 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.s1, CH_UTF16)));
948 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.s1, ndr_charset_length(r->in.s1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
950 if (flags & NDR_OUT) {
951 if (r->out.s2 == NULL) {
952 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
954 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.s2));
956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.s2, CH_UTF16)));
957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
958 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.s2, CH_UTF16)));
959 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.s2, ndr_charset_length(*r->out.s2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
962 return NDR_ERR_SUCCESS;
965 static enum ndr_err_code ndr_pull_echo_TestCall(struct ndr_pull *ndr, int flags, struct echo_TestCall *r)
967 uint32_t size_s1_1 = 0;
968 uint32_t length_s1_1 = 0;
970 uint32_t size_s2_2 = 0;
971 uint32_t length_s2_2 = 0;
972 TALLOC_CTX *_mem_save_s2_0;
973 TALLOC_CTX *_mem_save_s2_1;
974 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
975 if (flags & NDR_IN) {
978 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.s1));
979 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.s1));
980 size_s1_1 = ndr_get_array_size(ndr, &r->in.s1);
981 length_s1_1 = ndr_get_array_length(ndr, &r->in.s1);
982 if (length_s1_1 > size_s1_1) {
983 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_s1_1, length_s1_1);
985 NDR_CHECK(ndr_check_string_terminator(ndr, length_s1_1, sizeof(uint16_t)));
986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.s1, length_s1_1, sizeof(uint16_t), CH_UTF16));
987 NDR_PULL_ALLOC(ndr, r->out.s2);
988 ZERO_STRUCTP(r->out.s2);
990 if (flags & NDR_OUT) {
991 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
992 NDR_PULL_ALLOC(ndr, r->out.s2);
994 _mem_save_s2_0 = NDR_PULL_GET_MEM_CTX(ndr);
995 NDR_PULL_SET_MEM_CTX(ndr, r->out.s2, LIBNDR_FLAG_REF_ALLOC);
996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_s2));
998 NDR_PULL_ALLOC(ndr, *r->out.s2);
1003 _mem_save_s2_1 = NDR_PULL_GET_MEM_CTX(ndr);
1004 NDR_PULL_SET_MEM_CTX(ndr, *r->out.s2, 0);
1005 NDR_CHECK(ndr_pull_array_size(ndr, r->out.s2));
1006 NDR_CHECK(ndr_pull_array_length(ndr, r->out.s2));
1007 size_s2_2 = ndr_get_array_size(ndr, r->out.s2);
1008 length_s2_2 = ndr_get_array_length(ndr, r->out.s2);
1009 if (length_s2_2 > size_s2_2) {
1010 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_s2_2, length_s2_2);
1012 NDR_CHECK(ndr_check_string_terminator(ndr, length_s2_2, sizeof(uint16_t)));
1013 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.s2, length_s2_2, sizeof(uint16_t), CH_UTF16));
1014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s2_1, 0);
1016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s2_0, LIBNDR_FLAG_REF_ALLOC);
1018 return NDR_ERR_SUCCESS;
1021 _PUBLIC_ void ndr_print_echo_TestCall(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestCall *r)
1023 ndr_print_struct(ndr, name, "echo_TestCall");
1024 if (r == NULL) { ndr_print_null(ndr); return; }
1026 if (flags & NDR_SET_VALUES) {
1027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1029 if (flags & NDR_IN) {
1030 ndr_print_struct(ndr, "in", "echo_TestCall");
1032 ndr_print_ptr(ndr, "s1", r->in.s1);
1034 ndr_print_string(ndr, "s1", r->in.s1);
1038 if (flags & NDR_OUT) {
1039 ndr_print_struct(ndr, "out", "echo_TestCall");
1041 ndr_print_ptr(ndr, "s2", r->out.s2);
1043 ndr_print_ptr(ndr, "s2", *r->out.s2);
1046 ndr_print_string(ndr, "s2", *r->out.s2);
1055 static enum ndr_err_code ndr_push_echo_TestCall2(struct ndr_push *ndr, int flags, const struct echo_TestCall2 *r)
1057 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
1058 if (flags & NDR_IN) {
1059 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
1061 if (flags & NDR_OUT) {
1062 if (r->out.info == NULL) {
1063 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1065 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
1066 NDR_CHECK(ndr_push_echo_Info(ndr, NDR_SCALARS, r->out.info));
1067 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1069 return NDR_ERR_SUCCESS;
1072 static enum ndr_err_code ndr_pull_echo_TestCall2(struct ndr_pull *ndr, int flags, struct echo_TestCall2 *r)
1074 TALLOC_CTX *_mem_save_info_0;
1075 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
1076 if (flags & NDR_IN) {
1077 ZERO_STRUCT(r->out);
1079 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
1080 NDR_PULL_ALLOC(ndr, r->out.info);
1081 ZERO_STRUCTP(r->out.info);
1083 if (flags & NDR_OUT) {
1084 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1085 NDR_PULL_ALLOC(ndr, r->out.info);
1087 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1088 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
1089 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
1090 NDR_CHECK(ndr_pull_echo_Info(ndr, NDR_SCALARS, r->out.info));
1091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
1092 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1094 return NDR_ERR_SUCCESS;
1097 _PUBLIC_ void ndr_print_echo_TestCall2(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestCall2 *r)
1099 ndr_print_struct(ndr, name, "echo_TestCall2");
1100 if (r == NULL) { ndr_print_null(ndr); return; }
1102 if (flags & NDR_SET_VALUES) {
1103 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1105 if (flags & NDR_IN) {
1106 ndr_print_struct(ndr, "in", "echo_TestCall2");
1108 ndr_print_uint16(ndr, "level", r->in.level);
1111 if (flags & NDR_OUT) {
1112 ndr_print_struct(ndr, "out", "echo_TestCall2");
1114 ndr_print_ptr(ndr, "info", r->out.info);
1116 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
1117 ndr_print_echo_Info(ndr, "info", r->out.info);
1119 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1125 static enum ndr_err_code ndr_push_echo_TestSleep(struct ndr_push *ndr, int flags, const struct echo_TestSleep *r)
1127 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
1128 if (flags & NDR_IN) {
1129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.seconds));
1131 if (flags & NDR_OUT) {
1132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
1134 return NDR_ERR_SUCCESS;
1137 static enum ndr_err_code ndr_pull_echo_TestSleep(struct ndr_pull *ndr, int flags, struct echo_TestSleep *r)
1139 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
1140 if (flags & NDR_IN) {
1141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.seconds));
1143 if (flags & NDR_OUT) {
1144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
1146 return NDR_ERR_SUCCESS;
1149 _PUBLIC_ void ndr_print_echo_TestSleep(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestSleep *r)
1151 ndr_print_struct(ndr, name, "echo_TestSleep");
1152 if (r == NULL) { ndr_print_null(ndr); return; }
1154 if (flags & NDR_SET_VALUES) {
1155 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1157 if (flags & NDR_IN) {
1158 ndr_print_struct(ndr, "in", "echo_TestSleep");
1160 ndr_print_uint32(ndr, "seconds", r->in.seconds);
1163 if (flags & NDR_OUT) {
1164 ndr_print_struct(ndr, "out", "echo_TestSleep");
1166 ndr_print_uint32(ndr, "result", r->out.result);
1172 static enum ndr_err_code ndr_push_echo_TestEnum(struct ndr_push *ndr, int flags, const struct echo_TestEnum *r)
1174 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
1175 if (flags & NDR_IN) {
1176 if (r->in.foo1 == NULL) {
1177 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1179 NDR_CHECK(ndr_push_echo_Enum1(ndr, NDR_SCALARS, *r->in.foo1));
1180 if (r->in.foo2 == NULL) {
1181 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1183 NDR_CHECK(ndr_push_echo_Enum2(ndr, NDR_SCALARS, r->in.foo2));
1184 if (r->in.foo3 == NULL) {
1185 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1187 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.foo3, *r->in.foo1));
1188 NDR_CHECK(ndr_push_echo_Enum3(ndr, NDR_SCALARS, r->in.foo3));
1190 if (flags & NDR_OUT) {
1191 if (r->out.foo1 == NULL) {
1192 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1194 NDR_CHECK(ndr_push_echo_Enum1(ndr, NDR_SCALARS, *r->out.foo1));
1195 if (r->out.foo2 == NULL) {
1196 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1198 NDR_CHECK(ndr_push_echo_Enum2(ndr, NDR_SCALARS, r->out.foo2));
1199 if (r->out.foo3 == NULL) {
1200 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1202 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.foo3, *r->out.foo1));
1203 NDR_CHECK(ndr_push_echo_Enum3(ndr, NDR_SCALARS, r->out.foo3));
1205 return NDR_ERR_SUCCESS;
1208 static enum ndr_err_code ndr_pull_echo_TestEnum(struct ndr_pull *ndr, int flags, struct echo_TestEnum *r)
1210 TALLOC_CTX *_mem_save_foo1_0;
1211 TALLOC_CTX *_mem_save_foo2_0;
1212 TALLOC_CTX *_mem_save_foo3_0;
1213 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
1214 if (flags & NDR_IN) {
1215 ZERO_STRUCT(r->out);
1217 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1218 NDR_PULL_ALLOC(ndr, r->in.foo1);
1220 _mem_save_foo1_0 = NDR_PULL_GET_MEM_CTX(ndr);
1221 NDR_PULL_SET_MEM_CTX(ndr, r->in.foo1, LIBNDR_FLAG_REF_ALLOC);
1222 NDR_CHECK(ndr_pull_echo_Enum1(ndr, NDR_SCALARS, r->in.foo1));
1223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo1_0, LIBNDR_FLAG_REF_ALLOC);
1224 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1225 NDR_PULL_ALLOC(ndr, r->in.foo2);
1227 _mem_save_foo2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1228 NDR_PULL_SET_MEM_CTX(ndr, r->in.foo2, LIBNDR_FLAG_REF_ALLOC);
1229 NDR_CHECK(ndr_pull_echo_Enum2(ndr, NDR_SCALARS, r->in.foo2));
1230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo2_0, LIBNDR_FLAG_REF_ALLOC);
1231 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1232 NDR_PULL_ALLOC(ndr, r->in.foo3);
1234 _mem_save_foo3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1235 NDR_PULL_SET_MEM_CTX(ndr, r->in.foo3, LIBNDR_FLAG_REF_ALLOC);
1236 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.foo3, *r->in.foo1));
1237 NDR_CHECK(ndr_pull_echo_Enum3(ndr, NDR_SCALARS, r->in.foo3));
1238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo3_0, LIBNDR_FLAG_REF_ALLOC);
1239 NDR_PULL_ALLOC(ndr, r->out.foo1);
1240 *r->out.foo1 = *r->in.foo1;
1241 NDR_PULL_ALLOC(ndr, r->out.foo2);
1242 *r->out.foo2 = *r->in.foo2;
1243 NDR_PULL_ALLOC(ndr, r->out.foo3);
1244 *r->out.foo3 = *r->in.foo3;
1246 if (flags & NDR_OUT) {
1247 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1248 NDR_PULL_ALLOC(ndr, r->out.foo1);
1250 _mem_save_foo1_0 = NDR_PULL_GET_MEM_CTX(ndr);
1251 NDR_PULL_SET_MEM_CTX(ndr, r->out.foo1, LIBNDR_FLAG_REF_ALLOC);
1252 NDR_CHECK(ndr_pull_echo_Enum1(ndr, NDR_SCALARS, r->out.foo1));
1253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo1_0, LIBNDR_FLAG_REF_ALLOC);
1254 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1255 NDR_PULL_ALLOC(ndr, r->out.foo2);
1257 _mem_save_foo2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1258 NDR_PULL_SET_MEM_CTX(ndr, r->out.foo2, LIBNDR_FLAG_REF_ALLOC);
1259 NDR_CHECK(ndr_pull_echo_Enum2(ndr, NDR_SCALARS, r->out.foo2));
1260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo2_0, LIBNDR_FLAG_REF_ALLOC);
1261 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1262 NDR_PULL_ALLOC(ndr, r->out.foo3);
1264 _mem_save_foo3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1265 NDR_PULL_SET_MEM_CTX(ndr, r->out.foo3, LIBNDR_FLAG_REF_ALLOC);
1266 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.foo3, *r->out.foo1));
1267 NDR_CHECK(ndr_pull_echo_Enum3(ndr, NDR_SCALARS, r->out.foo3));
1268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo3_0, LIBNDR_FLAG_REF_ALLOC);
1270 return NDR_ERR_SUCCESS;
1273 _PUBLIC_ void ndr_print_echo_TestEnum(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestEnum *r)
1275 ndr_print_struct(ndr, name, "echo_TestEnum");
1276 if (r == NULL) { ndr_print_null(ndr); return; }
1278 if (flags & NDR_SET_VALUES) {
1279 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1281 if (flags & NDR_IN) {
1282 ndr_print_struct(ndr, "in", "echo_TestEnum");
1284 ndr_print_ptr(ndr, "foo1", r->in.foo1);
1286 ndr_print_echo_Enum1(ndr, "foo1", *r->in.foo1);
1288 ndr_print_ptr(ndr, "foo2", r->in.foo2);
1290 ndr_print_echo_Enum2(ndr, "foo2", r->in.foo2);
1292 ndr_print_ptr(ndr, "foo3", r->in.foo3);
1294 ndr_print_set_switch_value(ndr, r->in.foo3, *r->in.foo1);
1295 ndr_print_echo_Enum3(ndr, "foo3", r->in.foo3);
1299 if (flags & NDR_OUT) {
1300 ndr_print_struct(ndr, "out", "echo_TestEnum");
1302 ndr_print_ptr(ndr, "foo1", r->out.foo1);
1304 ndr_print_echo_Enum1(ndr, "foo1", *r->out.foo1);
1306 ndr_print_ptr(ndr, "foo2", r->out.foo2);
1308 ndr_print_echo_Enum2(ndr, "foo2", r->out.foo2);
1310 ndr_print_ptr(ndr, "foo3", r->out.foo3);
1312 ndr_print_set_switch_value(ndr, r->out.foo3, *r->out.foo1);
1313 ndr_print_echo_Enum3(ndr, "foo3", r->out.foo3);
1320 static enum ndr_err_code ndr_push_echo_TestSurrounding(struct ndr_push *ndr, int flags, const struct echo_TestSurrounding *r)
1322 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
1323 if (flags & NDR_IN) {
1324 if (r->in.data == NULL) {
1325 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1327 NDR_CHECK(ndr_push_echo_Surrounding(ndr, NDR_SCALARS, r->in.data));
1329 if (flags & NDR_OUT) {
1330 if (r->out.data == NULL) {
1331 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1333 NDR_CHECK(ndr_push_echo_Surrounding(ndr, NDR_SCALARS, r->out.data));
1335 return NDR_ERR_SUCCESS;
1338 static enum ndr_err_code ndr_pull_echo_TestSurrounding(struct ndr_pull *ndr, int flags, struct echo_TestSurrounding *r)
1340 TALLOC_CTX *_mem_save_data_0;
1341 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
1342 if (flags & NDR_IN) {
1343 ZERO_STRUCT(r->out);
1345 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1346 NDR_PULL_ALLOC(ndr, r->in.data);
1348 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1349 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
1350 NDR_CHECK(ndr_pull_echo_Surrounding(ndr, NDR_SCALARS, r->in.data));
1351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
1352 NDR_PULL_ALLOC(ndr, r->out.data);
1353 *r->out.data = *r->in.data;
1355 if (flags & NDR_OUT) {
1356 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1357 NDR_PULL_ALLOC(ndr, r->out.data);
1359 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1360 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
1361 NDR_CHECK(ndr_pull_echo_Surrounding(ndr, NDR_SCALARS, r->out.data));
1362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
1364 return NDR_ERR_SUCCESS;
1367 _PUBLIC_ void ndr_print_echo_TestSurrounding(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestSurrounding *r)
1369 ndr_print_struct(ndr, name, "echo_TestSurrounding");
1370 if (r == NULL) { ndr_print_null(ndr); return; }
1372 if (flags & NDR_SET_VALUES) {
1373 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1375 if (flags & NDR_IN) {
1376 ndr_print_struct(ndr, "in", "echo_TestSurrounding");
1378 ndr_print_ptr(ndr, "data", r->in.data);
1380 ndr_print_echo_Surrounding(ndr, "data", r->in.data);
1384 if (flags & NDR_OUT) {
1385 ndr_print_struct(ndr, "out", "echo_TestSurrounding");
1387 ndr_print_ptr(ndr, "data", r->out.data);
1389 ndr_print_echo_Surrounding(ndr, "data", r->out.data);
1396 static enum ndr_err_code ndr_push_echo_TestDoublePointer(struct ndr_push *ndr, int flags, const struct echo_TestDoublePointer *r)
1398 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
1399 if (flags & NDR_IN) {
1400 if (r->in.data == NULL) {
1401 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1403 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.data));
1405 NDR_CHECK(ndr_push_unique_ptr(ndr, **r->in.data));
1407 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ***r->in.data));
1411 if (flags & NDR_OUT) {
1412 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.result));
1414 return NDR_ERR_SUCCESS;
1417 static enum ndr_err_code ndr_pull_echo_TestDoublePointer(struct ndr_pull *ndr, int flags, struct echo_TestDoublePointer *r)
1420 TALLOC_CTX *_mem_save_data_0;
1421 TALLOC_CTX *_mem_save_data_1;
1422 TALLOC_CTX *_mem_save_data_2;
1423 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
1424 if (flags & NDR_IN) {
1425 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1426 NDR_PULL_ALLOC(ndr, r->in.data);
1428 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1429 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
1430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1432 NDR_PULL_ALLOC(ndr, *r->in.data);
1437 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
1438 NDR_PULL_SET_MEM_CTX(ndr, *r->in.data, 0);
1439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1441 NDR_PULL_ALLOC(ndr, **r->in.data);
1443 **r->in.data = NULL;
1446 _mem_save_data_2 = NDR_PULL_GET_MEM_CTX(ndr);
1447 NDR_PULL_SET_MEM_CTX(ndr, **r->in.data, 0);
1448 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, **r->in.data));
1449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_2, 0);
1451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
1453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
1455 if (flags & NDR_OUT) {
1456 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.result));
1458 return NDR_ERR_SUCCESS;
1461 _PUBLIC_ void ndr_print_echo_TestDoublePointer(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestDoublePointer *r)
1463 ndr_print_struct(ndr, name, "echo_TestDoublePointer");
1464 if (r == NULL) { ndr_print_null(ndr); return; }
1466 if (flags & NDR_SET_VALUES) {
1467 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1469 if (flags & NDR_IN) {
1470 ndr_print_struct(ndr, "in", "echo_TestDoublePointer");
1472 ndr_print_ptr(ndr, "data", r->in.data);
1474 ndr_print_ptr(ndr, "data", *r->in.data);
1477 ndr_print_ptr(ndr, "data", **r->in.data);
1480 ndr_print_uint16(ndr, "data", ***r->in.data);
1488 if (flags & NDR_OUT) {
1489 ndr_print_struct(ndr, "out", "echo_TestDoublePointer");
1491 ndr_print_uint16(ndr, "result", r->out.result);
1497 static const struct ndr_interface_call rpcecho_calls[] = {
1500 sizeof(struct echo_AddOne),
1501 (ndr_push_flags_fn_t) ndr_push_echo_AddOne,
1502 (ndr_pull_flags_fn_t) ndr_pull_echo_AddOne,
1503 (ndr_print_function_t) ndr_print_echo_AddOne,
1509 sizeof(struct echo_EchoData),
1510 (ndr_push_flags_fn_t) ndr_push_echo_EchoData,
1511 (ndr_pull_flags_fn_t) ndr_pull_echo_EchoData,
1512 (ndr_print_function_t) ndr_print_echo_EchoData,
1518 sizeof(struct echo_SinkData),
1519 (ndr_push_flags_fn_t) ndr_push_echo_SinkData,
1520 (ndr_pull_flags_fn_t) ndr_pull_echo_SinkData,
1521 (ndr_print_function_t) ndr_print_echo_SinkData,
1527 sizeof(struct echo_SourceData),
1528 (ndr_push_flags_fn_t) ndr_push_echo_SourceData,
1529 (ndr_pull_flags_fn_t) ndr_pull_echo_SourceData,
1530 (ndr_print_function_t) ndr_print_echo_SourceData,
1536 sizeof(struct echo_TestCall),
1537 (ndr_push_flags_fn_t) ndr_push_echo_TestCall,
1538 (ndr_pull_flags_fn_t) ndr_pull_echo_TestCall,
1539 (ndr_print_function_t) ndr_print_echo_TestCall,
1545 sizeof(struct echo_TestCall2),
1546 (ndr_push_flags_fn_t) ndr_push_echo_TestCall2,
1547 (ndr_pull_flags_fn_t) ndr_pull_echo_TestCall2,
1548 (ndr_print_function_t) ndr_print_echo_TestCall2,
1554 sizeof(struct echo_TestSleep),
1555 (ndr_push_flags_fn_t) ndr_push_echo_TestSleep,
1556 (ndr_pull_flags_fn_t) ndr_pull_echo_TestSleep,
1557 (ndr_print_function_t) ndr_print_echo_TestSleep,
1563 sizeof(struct echo_TestEnum),
1564 (ndr_push_flags_fn_t) ndr_push_echo_TestEnum,
1565 (ndr_pull_flags_fn_t) ndr_pull_echo_TestEnum,
1566 (ndr_print_function_t) ndr_print_echo_TestEnum,
1571 "echo_TestSurrounding",
1572 sizeof(struct echo_TestSurrounding),
1573 (ndr_push_flags_fn_t) ndr_push_echo_TestSurrounding,
1574 (ndr_pull_flags_fn_t) ndr_pull_echo_TestSurrounding,
1575 (ndr_print_function_t) ndr_print_echo_TestSurrounding,
1580 "echo_TestDoublePointer",
1581 sizeof(struct echo_TestDoublePointer),
1582 (ndr_push_flags_fn_t) ndr_push_echo_TestDoublePointer,
1583 (ndr_pull_flags_fn_t) ndr_pull_echo_TestDoublePointer,
1584 (ndr_print_function_t) ndr_print_echo_TestDoublePointer,
1588 { NULL, 0, NULL, NULL, NULL }
1591 static const char * const rpcecho_endpoint_strings[] = {
1592 "ncacn_np:[\\pipe\\rpcecho]",
1597 static const struct ndr_interface_string_array rpcecho_endpoints = {
1599 .names = rpcecho_endpoint_strings
1602 static const char * const rpcecho_authservice_strings[] = {
1606 static const struct ndr_interface_string_array rpcecho_authservices = {
1608 .names = rpcecho_authservice_strings
1612 const struct ndr_interface_table ndr_table_rpcecho = {
1615 {0x60a15ec5,0x4de8,0x11d7,{0xa6,0x37},{0x00,0x50,0x56,0xa2,0x01,0x82}},
1618 .helpstring = NDR_RPCECHO_HELPSTRING,
1620 .calls = rpcecho_calls,
1621 .endpoints = &rpcecho_endpoints,
1622 .authservices = &rpcecho_authservices