r20674: Regenerate NDR parsers after pidl changes. This should fix a couple of
[Samba/gebeck_regimport.git] / source / librpc / gen_ndr / ndr_echo.c
blob60199db7d0b1834b0d00d636d9f7c238a3446801
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "librpc/gen_ndr/ndr_echo.h"
6 NTSTATUS ndr_push_echo_info1(struct ndr_push *ndr, int ndr_flags, const struct echo_info1 *r)
8 if (ndr_flags & NDR_SCALARS) {
9 NDR_CHECK(ndr_push_align(ndr, 1));
10 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->v));
12 if (ndr_flags & NDR_BUFFERS) {
14 return NT_STATUS_OK;
17 NTSTATUS ndr_pull_echo_info1(struct ndr_pull *ndr, int ndr_flags, struct echo_info1 *r)
19 if (ndr_flags & NDR_SCALARS) {
20 NDR_CHECK(ndr_pull_align(ndr, 1));
21 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->v));
23 if (ndr_flags & NDR_BUFFERS) {
25 return NT_STATUS_OK;
28 _PUBLIC_ void ndr_print_echo_info1(struct ndr_print *ndr, const char *name, const struct echo_info1 *r)
30 ndr_print_struct(ndr, name, "echo_info1");
31 ndr->depth++;
32 ndr_print_uint8(ndr, "v", r->v);
33 ndr->depth--;
36 NTSTATUS ndr_push_echo_info2(struct ndr_push *ndr, int ndr_flags, const struct echo_info2 *r)
38 if (ndr_flags & NDR_SCALARS) {
39 NDR_CHECK(ndr_push_align(ndr, 2));
40 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->v));
42 if (ndr_flags & NDR_BUFFERS) {
44 return NT_STATUS_OK;
47 NTSTATUS ndr_pull_echo_info2(struct ndr_pull *ndr, int ndr_flags, struct echo_info2 *r)
49 if (ndr_flags & NDR_SCALARS) {
50 NDR_CHECK(ndr_pull_align(ndr, 2));
51 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->v));
53 if (ndr_flags & NDR_BUFFERS) {
55 return NT_STATUS_OK;
58 _PUBLIC_ void ndr_print_echo_info2(struct ndr_print *ndr, const char *name, const struct echo_info2 *r)
60 ndr_print_struct(ndr, name, "echo_info2");
61 ndr->depth++;
62 ndr_print_uint16(ndr, "v", r->v);
63 ndr->depth--;
66 NTSTATUS ndr_push_echo_info3(struct ndr_push *ndr, int ndr_flags, const struct echo_info3 *r)
68 if (ndr_flags & NDR_SCALARS) {
69 NDR_CHECK(ndr_push_align(ndr, 4));
70 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->v));
72 if (ndr_flags & NDR_BUFFERS) {
74 return NT_STATUS_OK;
77 NTSTATUS ndr_pull_echo_info3(struct ndr_pull *ndr, int ndr_flags, struct echo_info3 *r)
79 if (ndr_flags & NDR_SCALARS) {
80 NDR_CHECK(ndr_pull_align(ndr, 4));
81 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->v));
83 if (ndr_flags & NDR_BUFFERS) {
85 return NT_STATUS_OK;
88 _PUBLIC_ void ndr_print_echo_info3(struct ndr_print *ndr, const char *name, const struct echo_info3 *r)
90 ndr_print_struct(ndr, name, "echo_info3");
91 ndr->depth++;
92 ndr_print_uint32(ndr, "v", r->v);
93 ndr->depth--;
96 NTSTATUS ndr_push_echo_info4(struct ndr_push *ndr, int ndr_flags, const struct echo_info4 *r)
98 if (ndr_flags & NDR_SCALARS) {
99 NDR_CHECK(ndr_push_align(ndr, 8));
100 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->v));
102 if (ndr_flags & NDR_BUFFERS) {
104 return NT_STATUS_OK;
107 NTSTATUS ndr_pull_echo_info4(struct ndr_pull *ndr, int ndr_flags, struct echo_info4 *r)
109 if (ndr_flags & NDR_SCALARS) {
110 NDR_CHECK(ndr_pull_align(ndr, 8));
111 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->v));
113 if (ndr_flags & NDR_BUFFERS) {
115 return NT_STATUS_OK;
118 _PUBLIC_ void ndr_print_echo_info4(struct ndr_print *ndr, const char *name, const struct echo_info4 *r)
120 ndr_print_struct(ndr, name, "echo_info4");
121 ndr->depth++;
122 ndr_print_hyper(ndr, "v", r->v);
123 ndr->depth--;
126 NTSTATUS ndr_push_echo_info5(struct ndr_push *ndr, int ndr_flags, const struct echo_info5 *r)
128 if (ndr_flags & NDR_SCALARS) {
129 NDR_CHECK(ndr_push_align(ndr, 8));
130 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->v1));
131 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->v2));
133 if (ndr_flags & NDR_BUFFERS) {
135 return NT_STATUS_OK;
138 NTSTATUS ndr_pull_echo_info5(struct ndr_pull *ndr, int ndr_flags, struct echo_info5 *r)
140 if (ndr_flags & NDR_SCALARS) {
141 NDR_CHECK(ndr_pull_align(ndr, 8));
142 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->v1));
143 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->v2));
145 if (ndr_flags & NDR_BUFFERS) {
147 return NT_STATUS_OK;
150 _PUBLIC_ void ndr_print_echo_info5(struct ndr_print *ndr, const char *name, const struct echo_info5 *r)
152 ndr_print_struct(ndr, name, "echo_info5");
153 ndr->depth++;
154 ndr_print_uint8(ndr, "v1", r->v1);
155 ndr_print_hyper(ndr, "v2", r->v2);
156 ndr->depth--;
159 NTSTATUS ndr_push_echo_info6(struct ndr_push *ndr, int ndr_flags, const struct echo_info6 *r)
161 if (ndr_flags & NDR_SCALARS) {
162 NDR_CHECK(ndr_push_align(ndr, 1));
163 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->v1));
164 NDR_CHECK(ndr_push_echo_info1(ndr, NDR_SCALARS, &r->info1));
166 if (ndr_flags & NDR_BUFFERS) {
168 return NT_STATUS_OK;
171 NTSTATUS ndr_pull_echo_info6(struct ndr_pull *ndr, int ndr_flags, struct echo_info6 *r)
173 if (ndr_flags & NDR_SCALARS) {
174 NDR_CHECK(ndr_pull_align(ndr, 1));
175 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->v1));
176 NDR_CHECK(ndr_pull_echo_info1(ndr, NDR_SCALARS, &r->info1));
178 if (ndr_flags & NDR_BUFFERS) {
180 return NT_STATUS_OK;
183 _PUBLIC_ void ndr_print_echo_info6(struct ndr_print *ndr, const char *name, const struct echo_info6 *r)
185 ndr_print_struct(ndr, name, "echo_info6");
186 ndr->depth++;
187 ndr_print_uint8(ndr, "v1", r->v1);
188 ndr_print_echo_info1(ndr, "info1", &r->info1);
189 ndr->depth--;
192 NTSTATUS ndr_push_echo_info7(struct ndr_push *ndr, int ndr_flags, const struct echo_info7 *r)
194 if (ndr_flags & NDR_SCALARS) {
195 NDR_CHECK(ndr_push_align(ndr, 8));
196 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->v1));
197 NDR_CHECK(ndr_push_echo_info4(ndr, NDR_SCALARS, &r->info4));
199 if (ndr_flags & NDR_BUFFERS) {
201 return NT_STATUS_OK;
204 NTSTATUS ndr_pull_echo_info7(struct ndr_pull *ndr, int ndr_flags, struct echo_info7 *r)
206 if (ndr_flags & NDR_SCALARS) {
207 NDR_CHECK(ndr_pull_align(ndr, 8));
208 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->v1));
209 NDR_CHECK(ndr_pull_echo_info4(ndr, NDR_SCALARS, &r->info4));
211 if (ndr_flags & NDR_BUFFERS) {
213 return NT_STATUS_OK;
216 _PUBLIC_ void ndr_print_echo_info7(struct ndr_print *ndr, const char *name, const struct echo_info7 *r)
218 ndr_print_struct(ndr, name, "echo_info7");
219 ndr->depth++;
220 ndr_print_uint8(ndr, "v1", r->v1);
221 ndr_print_echo_info4(ndr, "info4", &r->info4);
222 ndr->depth--;
225 NTSTATUS ndr_push_echo_Info(struct ndr_push *ndr, int ndr_flags, const union echo_Info *r)
227 int level;
228 level = ndr_push_get_switch_value(ndr, r);
229 if (ndr_flags & NDR_SCALARS) {
230 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
231 switch (level) {
232 case 1:
233 NDR_CHECK(ndr_push_echo_info1(ndr, NDR_SCALARS, &r->info1));
234 break;
236 case 2:
237 NDR_CHECK(ndr_push_echo_info2(ndr, NDR_SCALARS, &r->info2));
238 break;
240 case 3:
241 NDR_CHECK(ndr_push_echo_info3(ndr, NDR_SCALARS, &r->info3));
242 break;
244 case 4:
245 NDR_CHECK(ndr_push_echo_info4(ndr, NDR_SCALARS, &r->info4));
246 break;
248 case 5:
249 NDR_CHECK(ndr_push_echo_info5(ndr, NDR_SCALARS, &r->info5));
250 break;
252 case 6:
253 NDR_CHECK(ndr_push_echo_info6(ndr, NDR_SCALARS, &r->info6));
254 break;
256 case 7:
257 NDR_CHECK(ndr_push_echo_info7(ndr, NDR_SCALARS, &r->info7));
258 break;
260 default:
261 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
264 if (ndr_flags & NDR_BUFFERS) {
265 switch (level) {
266 case 1:
267 break;
269 case 2:
270 break;
272 case 3:
273 break;
275 case 4:
276 break;
278 case 5:
279 break;
281 case 6:
282 break;
284 case 7:
285 break;
287 default:
288 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
291 return NT_STATUS_OK;
294 NTSTATUS ndr_pull_echo_Info(struct ndr_pull *ndr, int ndr_flags, union echo_Info *r)
296 int level;
297 uint16_t _level;
298 level = ndr_pull_get_switch_value(ndr, r);
299 if (ndr_flags & NDR_SCALARS) {
300 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
301 if (_level != level) {
302 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for echo_Info", _level);
304 switch (level) {
305 case 1: {
306 NDR_CHECK(ndr_pull_echo_info1(ndr, NDR_SCALARS, &r->info1));
307 break; }
309 case 2: {
310 NDR_CHECK(ndr_pull_echo_info2(ndr, NDR_SCALARS, &r->info2));
311 break; }
313 case 3: {
314 NDR_CHECK(ndr_pull_echo_info3(ndr, NDR_SCALARS, &r->info3));
315 break; }
317 case 4: {
318 NDR_CHECK(ndr_pull_echo_info4(ndr, NDR_SCALARS, &r->info4));
319 break; }
321 case 5: {
322 NDR_CHECK(ndr_pull_echo_info5(ndr, NDR_SCALARS, &r->info5));
323 break; }
325 case 6: {
326 NDR_CHECK(ndr_pull_echo_info6(ndr, NDR_SCALARS, &r->info6));
327 break; }
329 case 7: {
330 NDR_CHECK(ndr_pull_echo_info7(ndr, NDR_SCALARS, &r->info7));
331 break; }
333 default:
334 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
337 if (ndr_flags & NDR_BUFFERS) {
338 switch (level) {
339 case 1:
340 break;
342 case 2:
343 break;
345 case 3:
346 break;
348 case 4:
349 break;
351 case 5:
352 break;
354 case 6:
355 break;
357 case 7:
358 break;
360 default:
361 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
364 return NT_STATUS_OK;
367 _PUBLIC_ void ndr_print_echo_Info(struct ndr_print *ndr, const char *name, const union echo_Info *r)
369 int level;
370 level = ndr_print_get_switch_value(ndr, r);
371 ndr_print_union(ndr, name, level, "echo_Info");
372 switch (level) {
373 case 1:
374 ndr_print_echo_info1(ndr, "info1", &r->info1);
375 break;
377 case 2:
378 ndr_print_echo_info2(ndr, "info2", &r->info2);
379 break;
381 case 3:
382 ndr_print_echo_info3(ndr, "info3", &r->info3);
383 break;
385 case 4:
386 ndr_print_echo_info4(ndr, "info4", &r->info4);
387 break;
389 case 5:
390 ndr_print_echo_info5(ndr, "info5", &r->info5);
391 break;
393 case 6:
394 ndr_print_echo_info6(ndr, "info6", &r->info6);
395 break;
397 case 7:
398 ndr_print_echo_info7(ndr, "info7", &r->info7);
399 break;
401 default:
402 ndr_print_bad_level(ndr, name, level);
406 NTSTATUS ndr_push_echo_Enum1(struct ndr_push *ndr, int ndr_flags, enum echo_Enum1 r)
408 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
409 return NT_STATUS_OK;
412 NTSTATUS ndr_pull_echo_Enum1(struct ndr_pull *ndr, int ndr_flags, enum echo_Enum1 *r)
414 uint16_t v;
415 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
416 *r = v;
417 return NT_STATUS_OK;
420 _PUBLIC_ void ndr_print_echo_Enum1(struct ndr_print *ndr, const char *name, enum echo_Enum1 r)
422 const char *val = NULL;
424 switch (r) {
425 case ECHO_ENUM1: val = "ECHO_ENUM1"; break;
426 case ECHO_ENUM2: val = "ECHO_ENUM2"; break;
428 ndr_print_enum(ndr, name, "ENUM", val, r);
431 NTSTATUS ndr_push_echo_Enum1_32(struct ndr_push *ndr, int ndr_flags, enum echo_Enum1_32 r)
433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
434 return NT_STATUS_OK;
437 NTSTATUS ndr_pull_echo_Enum1_32(struct ndr_pull *ndr, int ndr_flags, enum echo_Enum1_32 *r)
439 uint32_t v;
440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
441 *r = v;
442 return NT_STATUS_OK;
445 _PUBLIC_ void ndr_print_echo_Enum1_32(struct ndr_print *ndr, const char *name, enum echo_Enum1_32 r)
447 const char *val = NULL;
449 switch (r) {
450 case ECHO_ENUM1_32: val = "ECHO_ENUM1_32"; break;
451 case ECHO_ENUM2_32: val = "ECHO_ENUM2_32"; break;
453 ndr_print_enum(ndr, name, "ENUM", val, r);
456 NTSTATUS ndr_push_echo_Enum2(struct ndr_push *ndr, int ndr_flags, const struct echo_Enum2 *r)
458 if (ndr_flags & NDR_SCALARS) {
459 NDR_CHECK(ndr_push_align(ndr, 4));
460 NDR_CHECK(ndr_push_echo_Enum1(ndr, NDR_SCALARS, r->e1));
461 NDR_CHECK(ndr_push_echo_Enum1_32(ndr, NDR_SCALARS, r->e2));
463 if (ndr_flags & NDR_BUFFERS) {
465 return NT_STATUS_OK;
468 NTSTATUS ndr_pull_echo_Enum2(struct ndr_pull *ndr, int ndr_flags, struct echo_Enum2 *r)
470 if (ndr_flags & NDR_SCALARS) {
471 NDR_CHECK(ndr_pull_align(ndr, 4));
472 NDR_CHECK(ndr_pull_echo_Enum1(ndr, NDR_SCALARS, &r->e1));
473 NDR_CHECK(ndr_pull_echo_Enum1_32(ndr, NDR_SCALARS, &r->e2));
475 if (ndr_flags & NDR_BUFFERS) {
477 return NT_STATUS_OK;
480 _PUBLIC_ void ndr_print_echo_Enum2(struct ndr_print *ndr, const char *name, const struct echo_Enum2 *r)
482 ndr_print_struct(ndr, name, "echo_Enum2");
483 ndr->depth++;
484 ndr_print_echo_Enum1(ndr, "e1", r->e1);
485 ndr_print_echo_Enum1_32(ndr, "e2", r->e2);
486 ndr->depth--;
489 NTSTATUS ndr_push_echo_Enum3(struct ndr_push *ndr, int ndr_flags, const union echo_Enum3 *r)
491 int level;
492 level = ndr_push_get_switch_value(ndr, r);
493 if (ndr_flags & NDR_SCALARS) {
494 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
495 switch (level) {
496 case ECHO_ENUM1:
497 NDR_CHECK(ndr_push_echo_Enum1(ndr, NDR_SCALARS, r->e1));
498 break;
500 case ECHO_ENUM2:
501 NDR_CHECK(ndr_push_echo_Enum2(ndr, NDR_SCALARS, &r->e2));
502 break;
504 default:
505 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
508 if (ndr_flags & NDR_BUFFERS) {
509 switch (level) {
510 case ECHO_ENUM1:
511 break;
513 case ECHO_ENUM2:
514 break;
516 default:
517 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
520 return NT_STATUS_OK;
523 NTSTATUS ndr_pull_echo_Enum3(struct ndr_pull *ndr, int ndr_flags, union echo_Enum3 *r)
525 int level;
526 uint16_t _level;
527 level = ndr_pull_get_switch_value(ndr, r);
528 if (ndr_flags & NDR_SCALARS) {
529 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
530 if (_level != level) {
531 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for echo_Enum3", _level);
533 switch (level) {
534 case ECHO_ENUM1: {
535 NDR_CHECK(ndr_pull_echo_Enum1(ndr, NDR_SCALARS, &r->e1));
536 break; }
538 case ECHO_ENUM2: {
539 NDR_CHECK(ndr_pull_echo_Enum2(ndr, NDR_SCALARS, &r->e2));
540 break; }
542 default:
543 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
546 if (ndr_flags & NDR_BUFFERS) {
547 switch (level) {
548 case ECHO_ENUM1:
549 break;
551 case ECHO_ENUM2:
552 break;
554 default:
555 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
558 return NT_STATUS_OK;
561 _PUBLIC_ void ndr_print_echo_Enum3(struct ndr_print *ndr, const char *name, const union echo_Enum3 *r)
563 int level;
564 level = ndr_print_get_switch_value(ndr, r);
565 ndr_print_union(ndr, name, level, "echo_Enum3");
566 switch (level) {
567 case ECHO_ENUM1:
568 ndr_print_echo_Enum1(ndr, "e1", r->e1);
569 break;
571 case ECHO_ENUM2:
572 ndr_print_echo_Enum2(ndr, "e2", &r->e2);
573 break;
575 default:
576 ndr_print_bad_level(ndr, name, level);
580 NTSTATUS ndr_push_echo_Surrounding(struct ndr_push *ndr, int ndr_flags, const struct echo_Surrounding *r)
582 uint32_t cntr_surrounding_0;
583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->x));
584 if (ndr_flags & NDR_SCALARS) {
585 NDR_CHECK(ndr_push_align(ndr, 4));
586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->x));
587 for (cntr_surrounding_0 = 0; cntr_surrounding_0 < r->x; cntr_surrounding_0++) {
588 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->surrounding[cntr_surrounding_0]));
591 if (ndr_flags & NDR_BUFFERS) {
593 return NT_STATUS_OK;
596 NTSTATUS ndr_pull_echo_Surrounding(struct ndr_pull *ndr, int ndr_flags, struct echo_Surrounding *r)
598 uint32_t cntr_surrounding_0;
599 TALLOC_CTX *_mem_save_surrounding_0;
600 if (ndr_flags & NDR_SCALARS) {
601 NDR_CHECK(ndr_pull_array_size(ndr, &r->surrounding));
602 NDR_CHECK(ndr_pull_align(ndr, 4));
603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->x));
604 NDR_PULL_ALLOC_N(ndr, r->surrounding, ndr_get_array_size(ndr, &r->surrounding));
605 _mem_save_surrounding_0 = NDR_PULL_GET_MEM_CTX(ndr);
606 NDR_PULL_SET_MEM_CTX(ndr, r->surrounding, 0);
607 for (cntr_surrounding_0 = 0; cntr_surrounding_0 < r->x; cntr_surrounding_0++) {
608 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->surrounding[cntr_surrounding_0]));
610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_surrounding_0, 0);
611 if (r->surrounding) {
612 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->surrounding, r->x));
615 if (ndr_flags & NDR_BUFFERS) {
617 return NT_STATUS_OK;
620 _PUBLIC_ void ndr_print_echo_Surrounding(struct ndr_print *ndr, const char *name, const struct echo_Surrounding *r)
622 uint32_t cntr_surrounding_0;
623 ndr_print_struct(ndr, name, "echo_Surrounding");
624 ndr->depth++;
625 ndr_print_uint32(ndr, "x", r->x);
626 ndr->print(ndr, "%s: ARRAY(%d)", "surrounding", r->x);
627 ndr->depth++;
628 for (cntr_surrounding_0=0;cntr_surrounding_0<r->x;cntr_surrounding_0++) {
629 char *idx_0=NULL;
630 asprintf(&idx_0, "[%d]", cntr_surrounding_0);
631 if (idx_0) {
632 ndr_print_uint16(ndr, "surrounding", r->surrounding[cntr_surrounding_0]);
633 free(idx_0);
636 ndr->depth--;
637 ndr->depth--;
640 NTSTATUS ndr_push_echo_AddOne(struct ndr_push *ndr, int flags, const struct echo_AddOne *r)
642 if (flags & NDR_IN) {
643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data));
645 if (flags & NDR_OUT) {
646 if (r->out.out_data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.out_data));
649 return NT_STATUS_OK;
652 NTSTATUS ndr_pull_echo_AddOne(struct ndr_pull *ndr, int flags, struct echo_AddOne *r)
654 TALLOC_CTX *_mem_save_out_data_0;
655 if (flags & NDR_IN) {
656 ZERO_STRUCT(r->out);
658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.in_data));
659 NDR_PULL_ALLOC(ndr, r->out.out_data);
660 ZERO_STRUCTP(r->out.out_data);
662 if (flags & NDR_OUT) {
663 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
664 NDR_PULL_ALLOC(ndr, r->out.out_data);
666 _mem_save_out_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
667 NDR_PULL_SET_MEM_CTX(ndr, r->out.out_data, LIBNDR_FLAG_REF_ALLOC);
668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.out_data));
669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_out_data_0, LIBNDR_FLAG_REF_ALLOC);
671 return NT_STATUS_OK;
674 _PUBLIC_ void ndr_print_echo_AddOne(struct ndr_print *ndr, const char *name, int flags, const struct echo_AddOne *r)
676 ndr_print_struct(ndr, name, "echo_AddOne");
677 ndr->depth++;
678 if (flags & NDR_SET_VALUES) {
679 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
681 if (flags & NDR_IN) {
682 ndr_print_struct(ndr, "in", "echo_AddOne");
683 ndr->depth++;
684 ndr_print_uint32(ndr, "in_data", r->in.in_data);
685 ndr->depth--;
687 if (flags & NDR_OUT) {
688 ndr_print_struct(ndr, "out", "echo_AddOne");
689 ndr->depth++;
690 ndr_print_ptr(ndr, "out_data", r->out.out_data);
691 ndr->depth++;
692 ndr_print_uint32(ndr, "out_data", *r->out.out_data);
693 ndr->depth--;
694 ndr->depth--;
696 ndr->depth--;
699 NTSTATUS ndr_push_echo_EchoData(struct ndr_push *ndr, int flags, const struct echo_EchoData *r)
701 if (flags & NDR_IN) {
702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
704 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.in_data, r->in.len));
706 if (flags & NDR_OUT) {
707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
708 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.len));
710 return NT_STATUS_OK;
713 NTSTATUS ndr_pull_echo_EchoData(struct ndr_pull *ndr, int flags, struct echo_EchoData *r)
715 if (flags & NDR_IN) {
716 ZERO_STRUCT(r->out);
718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.len));
719 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.in_data));
720 NDR_PULL_ALLOC_N(ndr, r->in.in_data, ndr_get_array_size(ndr, &r->in.in_data));
721 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.in_data, ndr_get_array_size(ndr, &r->in.in_data)));
722 if (r->in.in_data) {
723 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.in_data, r->in.len));
726 if (flags & NDR_OUT) {
727 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
728 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
729 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
730 if (r->out.out_data) {
731 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.len));
734 return NT_STATUS_OK;
737 _PUBLIC_ void ndr_print_echo_EchoData(struct ndr_print *ndr, const char *name, int flags, const struct echo_EchoData *r)
739 ndr_print_struct(ndr, name, "echo_EchoData");
740 ndr->depth++;
741 if (flags & NDR_SET_VALUES) {
742 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
744 if (flags & NDR_IN) {
745 ndr_print_struct(ndr, "in", "echo_EchoData");
746 ndr->depth++;
747 ndr_print_uint32(ndr, "len", r->in.len);
748 ndr_print_array_uint8(ndr, "in_data", r->in.in_data, r->in.len);
749 ndr->depth--;
751 if (flags & NDR_OUT) {
752 ndr_print_struct(ndr, "out", "echo_EchoData");
753 ndr->depth++;
754 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.len);
755 ndr->depth--;
757 ndr->depth--;
760 NTSTATUS ndr_push_echo_SinkData(struct ndr_push *ndr, int flags, const struct echo_SinkData *r)
762 if (flags & NDR_IN) {
763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
765 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.len));
767 if (flags & NDR_OUT) {
769 return NT_STATUS_OK;
772 NTSTATUS ndr_pull_echo_SinkData(struct ndr_pull *ndr, int flags, struct echo_SinkData *r)
774 if (flags & NDR_IN) {
775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.len));
776 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
777 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
778 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
779 if (r->in.data) {
780 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.len));
783 if (flags & NDR_OUT) {
785 return NT_STATUS_OK;
788 _PUBLIC_ void ndr_print_echo_SinkData(struct ndr_print *ndr, const char *name, int flags, const struct echo_SinkData *r)
790 ndr_print_struct(ndr, name, "echo_SinkData");
791 ndr->depth++;
792 if (flags & NDR_SET_VALUES) {
793 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
795 if (flags & NDR_IN) {
796 ndr_print_struct(ndr, "in", "echo_SinkData");
797 ndr->depth++;
798 ndr_print_uint32(ndr, "len", r->in.len);
799 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.len);
800 ndr->depth--;
802 if (flags & NDR_OUT) {
803 ndr_print_struct(ndr, "out", "echo_SinkData");
804 ndr->depth++;
805 ndr->depth--;
807 ndr->depth--;
810 NTSTATUS ndr_push_echo_SourceData(struct ndr_push *ndr, int flags, const struct echo_SourceData *r)
812 if (flags & NDR_IN) {
813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
815 if (flags & NDR_OUT) {
816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.len));
817 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.len));
819 return NT_STATUS_OK;
822 NTSTATUS ndr_pull_echo_SourceData(struct ndr_pull *ndr, int flags, struct echo_SourceData *r)
824 if (flags & NDR_IN) {
825 ZERO_STRUCT(r->out);
827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.len));
829 if (flags & NDR_OUT) {
830 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
831 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
832 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
833 if (r->out.data) {
834 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.len));
837 return NT_STATUS_OK;
840 _PUBLIC_ void ndr_print_echo_SourceData(struct ndr_print *ndr, const char *name, int flags, const struct echo_SourceData *r)
842 ndr_print_struct(ndr, name, "echo_SourceData");
843 ndr->depth++;
844 if (flags & NDR_SET_VALUES) {
845 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
847 if (flags & NDR_IN) {
848 ndr_print_struct(ndr, "in", "echo_SourceData");
849 ndr->depth++;
850 ndr_print_uint32(ndr, "len", r->in.len);
851 ndr->depth--;
853 if (flags & NDR_OUT) {
854 ndr_print_struct(ndr, "out", "echo_SourceData");
855 ndr->depth++;
856 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.len);
857 ndr->depth--;
859 ndr->depth--;
862 NTSTATUS ndr_push_echo_TestCall(struct ndr_push *ndr, int flags, const struct echo_TestCall *r)
864 if (flags & NDR_IN) {
865 if (r->in.s1 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.s1, CH_UTF16)));
867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.s1, CH_UTF16)));
869 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.s1, ndr_charset_length(r->in.s1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
871 if (flags & NDR_OUT) {
872 if (r->out.s2 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
873 if (*r->out.s2 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
874 NDR_CHECK(ndr_push_ref_ptr(ndr));
875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.s2, CH_UTF16)));
876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.s2, CH_UTF16)));
878 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.s2, ndr_charset_length(*r->out.s2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
880 return NT_STATUS_OK;
883 NTSTATUS ndr_pull_echo_TestCall(struct ndr_pull *ndr, int flags, struct echo_TestCall *r)
885 uint32_t _ptr_s2;
886 TALLOC_CTX *_mem_save_s2_0;
887 if (flags & NDR_IN) {
888 ZERO_STRUCT(r->out);
890 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.s1));
891 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.s1));
892 if (ndr_get_array_length(ndr, &r->in.s1) > ndr_get_array_size(ndr, &r->in.s1)) {
893 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));
895 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.s1), sizeof(uint16_t)));
896 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.s1, ndr_get_array_length(ndr, &r->in.s1), sizeof(uint16_t), CH_UTF16));
897 NDR_PULL_ALLOC(ndr, r->out.s2);
898 ZERO_STRUCTP(r->out.s2);
900 if (flags & NDR_OUT) {
901 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
902 NDR_PULL_ALLOC(ndr, r->out.s2);
904 _mem_save_s2_0 = NDR_PULL_GET_MEM_CTX(ndr);
905 NDR_PULL_SET_MEM_CTX(ndr, r->out.s2, LIBNDR_FLAG_REF_ALLOC);
906 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_s2));
907 NDR_CHECK(ndr_pull_array_size(ndr, r->out.s2));
908 NDR_CHECK(ndr_pull_array_length(ndr, r->out.s2));
909 if (ndr_get_array_length(ndr, r->out.s2) > ndr_get_array_size(ndr, r->out.s2)) {
910 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));
912 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.s2), sizeof(uint16_t)));
913 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.s2, ndr_get_array_length(ndr, r->out.s2), sizeof(uint16_t), CH_UTF16));
914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s2_0, LIBNDR_FLAG_REF_ALLOC);
916 return NT_STATUS_OK;
919 _PUBLIC_ void ndr_print_echo_TestCall(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestCall *r)
921 ndr_print_struct(ndr, name, "echo_TestCall");
922 ndr->depth++;
923 if (flags & NDR_SET_VALUES) {
924 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
926 if (flags & NDR_IN) {
927 ndr_print_struct(ndr, "in", "echo_TestCall");
928 ndr->depth++;
929 ndr_print_ptr(ndr, "s1", r->in.s1);
930 ndr->depth++;
931 ndr_print_string(ndr, "s1", r->in.s1);
932 ndr->depth--;
933 ndr->depth--;
935 if (flags & NDR_OUT) {
936 ndr_print_struct(ndr, "out", "echo_TestCall");
937 ndr->depth++;
938 ndr_print_ptr(ndr, "s2", r->out.s2);
939 ndr->depth++;
940 ndr_print_ptr(ndr, "s2", *r->out.s2);
941 ndr->depth++;
942 ndr_print_string(ndr, "s2", *r->out.s2);
943 ndr->depth--;
944 ndr->depth--;
945 ndr->depth--;
947 ndr->depth--;
950 NTSTATUS ndr_push_echo_TestCall2(struct ndr_push *ndr, int flags, const struct echo_TestCall2 *r)
952 if (flags & NDR_IN) {
953 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
955 if (flags & NDR_OUT) {
956 if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
957 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
958 NDR_CHECK(ndr_push_echo_Info(ndr, NDR_SCALARS, r->out.info));
959 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
961 return NT_STATUS_OK;
964 NTSTATUS ndr_pull_echo_TestCall2(struct ndr_pull *ndr, int flags, struct echo_TestCall2 *r)
966 TALLOC_CTX *_mem_save_info_0;
967 if (flags & NDR_IN) {
968 ZERO_STRUCT(r->out);
970 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
971 NDR_PULL_ALLOC(ndr, r->out.info);
972 ZERO_STRUCTP(r->out.info);
974 if (flags & NDR_OUT) {
975 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
976 NDR_PULL_ALLOC(ndr, r->out.info);
978 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
979 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
980 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
981 NDR_CHECK(ndr_pull_echo_Info(ndr, NDR_SCALARS, r->out.info));
982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
983 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
985 return NT_STATUS_OK;
988 _PUBLIC_ void ndr_print_echo_TestCall2(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestCall2 *r)
990 ndr_print_struct(ndr, name, "echo_TestCall2");
991 ndr->depth++;
992 if (flags & NDR_SET_VALUES) {
993 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
995 if (flags & NDR_IN) {
996 ndr_print_struct(ndr, "in", "echo_TestCall2");
997 ndr->depth++;
998 ndr_print_uint16(ndr, "level", r->in.level);
999 ndr->depth--;
1001 if (flags & NDR_OUT) {
1002 ndr_print_struct(ndr, "out", "echo_TestCall2");
1003 ndr->depth++;
1004 ndr_print_ptr(ndr, "info", r->out.info);
1005 ndr->depth++;
1006 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
1007 ndr_print_echo_Info(ndr, "info", r->out.info);
1008 ndr->depth--;
1009 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1010 ndr->depth--;
1012 ndr->depth--;
1015 NTSTATUS ndr_push_echo_TestSleep(struct ndr_push *ndr, int flags, const struct echo_TestSleep *r)
1017 if (flags & NDR_IN) {
1018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.seconds));
1020 if (flags & NDR_OUT) {
1021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
1023 return NT_STATUS_OK;
1026 NTSTATUS ndr_pull_echo_TestSleep(struct ndr_pull *ndr, int flags, struct echo_TestSleep *r)
1028 if (flags & NDR_IN) {
1029 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.seconds));
1031 if (flags & NDR_OUT) {
1032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
1034 return NT_STATUS_OK;
1037 _PUBLIC_ void ndr_print_echo_TestSleep(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestSleep *r)
1039 ndr_print_struct(ndr, name, "echo_TestSleep");
1040 ndr->depth++;
1041 if (flags & NDR_SET_VALUES) {
1042 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1044 if (flags & NDR_IN) {
1045 ndr_print_struct(ndr, "in", "echo_TestSleep");
1046 ndr->depth++;
1047 ndr_print_uint32(ndr, "seconds", r->in.seconds);
1048 ndr->depth--;
1050 if (flags & NDR_OUT) {
1051 ndr_print_struct(ndr, "out", "echo_TestSleep");
1052 ndr->depth++;
1053 ndr_print_uint32(ndr, "result", r->out.result);
1054 ndr->depth--;
1056 ndr->depth--;
1059 NTSTATUS ndr_push_echo_TestEnum(struct ndr_push *ndr, int flags, const struct echo_TestEnum *r)
1061 if (flags & NDR_IN) {
1062 if (r->in.foo1 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1063 NDR_CHECK(ndr_push_echo_Enum1(ndr, NDR_SCALARS, *r->in.foo1));
1064 if (r->in.foo2 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1065 NDR_CHECK(ndr_push_echo_Enum2(ndr, NDR_SCALARS, r->in.foo2));
1066 if (r->in.foo3 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1067 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.foo3, *r->in.foo1));
1068 NDR_CHECK(ndr_push_echo_Enum3(ndr, NDR_SCALARS, r->in.foo3));
1070 if (flags & NDR_OUT) {
1071 if (r->out.foo1 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1072 NDR_CHECK(ndr_push_echo_Enum1(ndr, NDR_SCALARS, *r->out.foo1));
1073 if (r->out.foo2 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1074 NDR_CHECK(ndr_push_echo_Enum2(ndr, NDR_SCALARS, r->out.foo2));
1075 if (r->out.foo3 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1076 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.foo3, *r->out.foo1));
1077 NDR_CHECK(ndr_push_echo_Enum3(ndr, NDR_SCALARS, r->out.foo3));
1079 return NT_STATUS_OK;
1082 NTSTATUS ndr_pull_echo_TestEnum(struct ndr_pull *ndr, int flags, struct echo_TestEnum *r)
1084 TALLOC_CTX *_mem_save_foo1_0;
1085 TALLOC_CTX *_mem_save_foo2_0;
1086 TALLOC_CTX *_mem_save_foo3_0;
1087 if (flags & NDR_IN) {
1088 ZERO_STRUCT(r->out);
1090 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1091 NDR_PULL_ALLOC(ndr, r->in.foo1);
1093 _mem_save_foo1_0 = NDR_PULL_GET_MEM_CTX(ndr);
1094 NDR_PULL_SET_MEM_CTX(ndr, r->in.foo1, LIBNDR_FLAG_REF_ALLOC);
1095 NDR_CHECK(ndr_pull_echo_Enum1(ndr, NDR_SCALARS, r->in.foo1));
1096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo1_0, LIBNDR_FLAG_REF_ALLOC);
1097 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1098 NDR_PULL_ALLOC(ndr, r->in.foo2);
1100 _mem_save_foo2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1101 NDR_PULL_SET_MEM_CTX(ndr, r->in.foo2, LIBNDR_FLAG_REF_ALLOC);
1102 NDR_CHECK(ndr_pull_echo_Enum2(ndr, NDR_SCALARS, r->in.foo2));
1103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo2_0, LIBNDR_FLAG_REF_ALLOC);
1104 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1105 NDR_PULL_ALLOC(ndr, r->in.foo3);
1107 _mem_save_foo3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1108 NDR_PULL_SET_MEM_CTX(ndr, r->in.foo3, LIBNDR_FLAG_REF_ALLOC);
1109 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.foo3, *r->in.foo1));
1110 NDR_CHECK(ndr_pull_echo_Enum3(ndr, NDR_SCALARS, r->in.foo3));
1111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo3_0, LIBNDR_FLAG_REF_ALLOC);
1112 NDR_PULL_ALLOC(ndr, r->out.foo1);
1113 *r->out.foo1 = *r->in.foo1;
1114 NDR_PULL_ALLOC(ndr, r->out.foo2);
1115 *r->out.foo2 = *r->in.foo2;
1116 NDR_PULL_ALLOC(ndr, r->out.foo3);
1117 *r->out.foo3 = *r->in.foo3;
1119 if (flags & NDR_OUT) {
1120 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1121 NDR_PULL_ALLOC(ndr, r->out.foo1);
1123 _mem_save_foo1_0 = NDR_PULL_GET_MEM_CTX(ndr);
1124 NDR_PULL_SET_MEM_CTX(ndr, r->out.foo1, LIBNDR_FLAG_REF_ALLOC);
1125 NDR_CHECK(ndr_pull_echo_Enum1(ndr, NDR_SCALARS, r->out.foo1));
1126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo1_0, LIBNDR_FLAG_REF_ALLOC);
1127 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1128 NDR_PULL_ALLOC(ndr, r->out.foo2);
1130 _mem_save_foo2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1131 NDR_PULL_SET_MEM_CTX(ndr, r->out.foo2, LIBNDR_FLAG_REF_ALLOC);
1132 NDR_CHECK(ndr_pull_echo_Enum2(ndr, NDR_SCALARS, r->out.foo2));
1133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo2_0, LIBNDR_FLAG_REF_ALLOC);
1134 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1135 NDR_PULL_ALLOC(ndr, r->out.foo3);
1137 _mem_save_foo3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1138 NDR_PULL_SET_MEM_CTX(ndr, r->out.foo3, LIBNDR_FLAG_REF_ALLOC);
1139 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.foo3, *r->out.foo1));
1140 NDR_CHECK(ndr_pull_echo_Enum3(ndr, NDR_SCALARS, r->out.foo3));
1141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_foo3_0, LIBNDR_FLAG_REF_ALLOC);
1143 return NT_STATUS_OK;
1146 _PUBLIC_ void ndr_print_echo_TestEnum(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestEnum *r)
1148 ndr_print_struct(ndr, name, "echo_TestEnum");
1149 ndr->depth++;
1150 if (flags & NDR_SET_VALUES) {
1151 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1153 if (flags & NDR_IN) {
1154 ndr_print_struct(ndr, "in", "echo_TestEnum");
1155 ndr->depth++;
1156 ndr_print_ptr(ndr, "foo1", r->in.foo1);
1157 ndr->depth++;
1158 ndr_print_echo_Enum1(ndr, "foo1", *r->in.foo1);
1159 ndr->depth--;
1160 ndr_print_ptr(ndr, "foo2", r->in.foo2);
1161 ndr->depth++;
1162 ndr_print_echo_Enum2(ndr, "foo2", r->in.foo2);
1163 ndr->depth--;
1164 ndr_print_ptr(ndr, "foo3", r->in.foo3);
1165 ndr->depth++;
1166 ndr_print_set_switch_value(ndr, r->in.foo3, *r->in.foo1);
1167 ndr_print_echo_Enum3(ndr, "foo3", r->in.foo3);
1168 ndr->depth--;
1169 ndr->depth--;
1171 if (flags & NDR_OUT) {
1172 ndr_print_struct(ndr, "out", "echo_TestEnum");
1173 ndr->depth++;
1174 ndr_print_ptr(ndr, "foo1", r->out.foo1);
1175 ndr->depth++;
1176 ndr_print_echo_Enum1(ndr, "foo1", *r->out.foo1);
1177 ndr->depth--;
1178 ndr_print_ptr(ndr, "foo2", r->out.foo2);
1179 ndr->depth++;
1180 ndr_print_echo_Enum2(ndr, "foo2", r->out.foo2);
1181 ndr->depth--;
1182 ndr_print_ptr(ndr, "foo3", r->out.foo3);
1183 ndr->depth++;
1184 ndr_print_set_switch_value(ndr, r->out.foo3, *r->out.foo1);
1185 ndr_print_echo_Enum3(ndr, "foo3", r->out.foo3);
1186 ndr->depth--;
1187 ndr->depth--;
1189 ndr->depth--;
1192 NTSTATUS ndr_push_echo_TestSurrounding(struct ndr_push *ndr, int flags, const struct echo_TestSurrounding *r)
1194 if (flags & NDR_IN) {
1195 if (r->in.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1196 NDR_CHECK(ndr_push_echo_Surrounding(ndr, NDR_SCALARS, r->in.data));
1198 if (flags & NDR_OUT) {
1199 if (r->out.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1200 NDR_CHECK(ndr_push_echo_Surrounding(ndr, NDR_SCALARS, r->out.data));
1202 return NT_STATUS_OK;
1205 NTSTATUS ndr_pull_echo_TestSurrounding(struct ndr_pull *ndr, int flags, struct echo_TestSurrounding *r)
1207 TALLOC_CTX *_mem_save_data_0;
1208 if (flags & NDR_IN) {
1209 ZERO_STRUCT(r->out);
1211 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1212 NDR_PULL_ALLOC(ndr, r->in.data);
1214 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1215 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
1216 NDR_CHECK(ndr_pull_echo_Surrounding(ndr, NDR_SCALARS, r->in.data));
1217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
1218 NDR_PULL_ALLOC(ndr, r->out.data);
1219 *r->out.data = *r->in.data;
1221 if (flags & NDR_OUT) {
1222 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1223 NDR_PULL_ALLOC(ndr, r->out.data);
1225 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1226 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
1227 NDR_CHECK(ndr_pull_echo_Surrounding(ndr, NDR_SCALARS, r->out.data));
1228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
1230 return NT_STATUS_OK;
1233 _PUBLIC_ void ndr_print_echo_TestSurrounding(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestSurrounding *r)
1235 ndr_print_struct(ndr, name, "echo_TestSurrounding");
1236 ndr->depth++;
1237 if (flags & NDR_SET_VALUES) {
1238 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1240 if (flags & NDR_IN) {
1241 ndr_print_struct(ndr, "in", "echo_TestSurrounding");
1242 ndr->depth++;
1243 ndr_print_ptr(ndr, "data", r->in.data);
1244 ndr->depth++;
1245 ndr_print_echo_Surrounding(ndr, "data", r->in.data);
1246 ndr->depth--;
1247 ndr->depth--;
1249 if (flags & NDR_OUT) {
1250 ndr_print_struct(ndr, "out", "echo_TestSurrounding");
1251 ndr->depth++;
1252 ndr_print_ptr(ndr, "data", r->out.data);
1253 ndr->depth++;
1254 ndr_print_echo_Surrounding(ndr, "data", r->out.data);
1255 ndr->depth--;
1256 ndr->depth--;
1258 ndr->depth--;
1261 NTSTATUS ndr_push_echo_TestDoublePointer(struct ndr_push *ndr, int flags, const struct echo_TestDoublePointer *r)
1263 if (flags & NDR_IN) {
1264 if (r->in.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1265 if (*r->in.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1266 NDR_CHECK(ndr_push_ref_ptr(ndr));
1267 if (**r->in.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1268 NDR_CHECK(ndr_push_ref_ptr(ndr));
1269 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ***r->in.data));
1271 if (flags & NDR_OUT) {
1272 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.result));
1274 return NT_STATUS_OK;
1277 NTSTATUS ndr_pull_echo_TestDoublePointer(struct ndr_pull *ndr, int flags, struct echo_TestDoublePointer *r)
1279 uint32_t _ptr_data;
1280 TALLOC_CTX *_mem_save_data_0;
1281 TALLOC_CTX *_mem_save_data_1;
1282 TALLOC_CTX *_mem_save_data_2;
1283 if (flags & NDR_IN) {
1284 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1285 NDR_PULL_ALLOC(ndr, r->in.data);
1287 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1288 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
1289 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_data));
1290 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1291 NDR_PULL_ALLOC(ndr, *r->in.data);
1293 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
1294 NDR_PULL_SET_MEM_CTX(ndr, *r->in.data, LIBNDR_FLAG_REF_ALLOC);
1295 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_data));
1296 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1297 NDR_PULL_ALLOC(ndr, **r->in.data);
1299 _mem_save_data_2 = NDR_PULL_GET_MEM_CTX(ndr);
1300 NDR_PULL_SET_MEM_CTX(ndr, **r->in.data, LIBNDR_FLAG_REF_ALLOC);
1301 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, **r->in.data));
1302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_2, LIBNDR_FLAG_REF_ALLOC);
1303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, LIBNDR_FLAG_REF_ALLOC);
1304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
1306 if (flags & NDR_OUT) {
1307 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.result));
1309 return NT_STATUS_OK;
1312 _PUBLIC_ void ndr_print_echo_TestDoublePointer(struct ndr_print *ndr, const char *name, int flags, const struct echo_TestDoublePointer *r)
1314 ndr_print_struct(ndr, name, "echo_TestDoublePointer");
1315 ndr->depth++;
1316 if (flags & NDR_SET_VALUES) {
1317 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1319 if (flags & NDR_IN) {
1320 ndr_print_struct(ndr, "in", "echo_TestDoublePointer");
1321 ndr->depth++;
1322 ndr_print_ptr(ndr, "data", r->in.data);
1323 ndr->depth++;
1324 ndr_print_ptr(ndr, "data", *r->in.data);
1325 ndr->depth++;
1326 ndr_print_ptr(ndr, "data", **r->in.data);
1327 ndr->depth++;
1328 ndr_print_uint16(ndr, "data", ***r->in.data);
1329 ndr->depth--;
1330 ndr->depth--;
1331 ndr->depth--;
1332 ndr->depth--;
1334 if (flags & NDR_OUT) {
1335 ndr_print_struct(ndr, "out", "echo_TestDoublePointer");
1336 ndr->depth++;
1337 ndr_print_uint16(ndr, "result", r->out.result);
1338 ndr->depth--;
1340 ndr->depth--;
1343 const struct dcerpc_interface_call rpcecho_calls[] = {
1345 "echo_AddOne",
1346 sizeof(struct echo_AddOne),
1347 (ndr_push_flags_fn_t) ndr_push_echo_AddOne,
1348 (ndr_pull_flags_fn_t) ndr_pull_echo_AddOne,
1349 (ndr_print_function_t) ndr_print_echo_AddOne,
1350 False,
1353 "echo_EchoData",
1354 sizeof(struct echo_EchoData),
1355 (ndr_push_flags_fn_t) ndr_push_echo_EchoData,
1356 (ndr_pull_flags_fn_t) ndr_pull_echo_EchoData,
1357 (ndr_print_function_t) ndr_print_echo_EchoData,
1358 False,
1361 "echo_SinkData",
1362 sizeof(struct echo_SinkData),
1363 (ndr_push_flags_fn_t) ndr_push_echo_SinkData,
1364 (ndr_pull_flags_fn_t) ndr_pull_echo_SinkData,
1365 (ndr_print_function_t) ndr_print_echo_SinkData,
1366 False,
1369 "echo_SourceData",
1370 sizeof(struct echo_SourceData),
1371 (ndr_push_flags_fn_t) ndr_push_echo_SourceData,
1372 (ndr_pull_flags_fn_t) ndr_pull_echo_SourceData,
1373 (ndr_print_function_t) ndr_print_echo_SourceData,
1374 False,
1377 "echo_TestCall",
1378 sizeof(struct echo_TestCall),
1379 (ndr_push_flags_fn_t) ndr_push_echo_TestCall,
1380 (ndr_pull_flags_fn_t) ndr_pull_echo_TestCall,
1381 (ndr_print_function_t) ndr_print_echo_TestCall,
1382 False,
1385 "echo_TestCall2",
1386 sizeof(struct echo_TestCall2),
1387 (ndr_push_flags_fn_t) ndr_push_echo_TestCall2,
1388 (ndr_pull_flags_fn_t) ndr_pull_echo_TestCall2,
1389 (ndr_print_function_t) ndr_print_echo_TestCall2,
1390 False,
1393 "echo_TestSleep",
1394 sizeof(struct echo_TestSleep),
1395 (ndr_push_flags_fn_t) ndr_push_echo_TestSleep,
1396 (ndr_pull_flags_fn_t) ndr_pull_echo_TestSleep,
1397 (ndr_print_function_t) ndr_print_echo_TestSleep,
1398 False,
1401 "echo_TestEnum",
1402 sizeof(struct echo_TestEnum),
1403 (ndr_push_flags_fn_t) ndr_push_echo_TestEnum,
1404 (ndr_pull_flags_fn_t) ndr_pull_echo_TestEnum,
1405 (ndr_print_function_t) ndr_print_echo_TestEnum,
1406 False,
1409 "echo_TestSurrounding",
1410 sizeof(struct echo_TestSurrounding),
1411 (ndr_push_flags_fn_t) ndr_push_echo_TestSurrounding,
1412 (ndr_pull_flags_fn_t) ndr_pull_echo_TestSurrounding,
1413 (ndr_print_function_t) ndr_print_echo_TestSurrounding,
1414 False,
1417 "echo_TestDoublePointer",
1418 sizeof(struct echo_TestDoublePointer),
1419 (ndr_push_flags_fn_t) ndr_push_echo_TestDoublePointer,
1420 (ndr_pull_flags_fn_t) ndr_pull_echo_TestDoublePointer,
1421 (ndr_print_function_t) ndr_print_echo_TestDoublePointer,
1422 False,
1424 { NULL, 0, NULL, NULL, NULL, False }
1427 const char * const rpcecho_endpoint_strings[] = {
1428 "ncacn_np:[\\pipe\\rpcecho]",
1429 "ncacn_ip_tcp:",
1430 "ncalrpc:",
1433 const struct dcerpc_endpoint_list rpcecho_endpoints = {
1434 .count = 3,
1435 .names = rpcecho_endpoint_strings
1438 const char * const rpcecho_authservice_strings[] = {
1439 "host",
1442 const struct dcerpc_authservice_list rpcecho_authservices = {
1443 .count = 3,
1444 .names = rpcecho_authservice_strings
1448 const struct dcerpc_interface_table dcerpc_table_rpcecho = {
1449 .name = "rpcecho",
1450 .syntax_id = {
1451 {0x60a15ec5,0x4de8,0x11d7,{0xa6,0x37},{0x00,0x50,0x56,0xa2,0x01,0x82}},
1452 DCERPC_RPCECHO_VERSION
1454 .helpstring = DCERPC_RPCECHO_HELPSTRING,
1455 .num_calls = 10,
1456 .calls = rpcecho_calls,
1457 .endpoints = &rpcecho_endpoints,
1458 .authservices = &rpcecho_authservices