1 /* parser auto-generated by pidl */
4 #include "bin/default/librpc/gen_ndr/ndr_orpc.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 _PUBLIC_ enum ndr_err_code ndr_push_COMVERSION(struct ndr_push *ndr, int ndr_flags, const struct COMVERSION *r)
9 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10 if (ndr_flags & NDR_SCALARS) {
11 NDR_CHECK(ndr_push_align(ndr, 2));
12 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->MajorVersion));
13 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->MinorVersion));
14 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
16 if (ndr_flags & NDR_BUFFERS) {
18 return NDR_ERR_SUCCESS;
21 _PUBLIC_ enum ndr_err_code ndr_pull_COMVERSION(struct ndr_pull *ndr, int ndr_flags, struct COMVERSION *r)
23 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24 if (ndr_flags & NDR_SCALARS) {
25 NDR_CHECK(ndr_pull_align(ndr, 2));
26 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->MajorVersion));
27 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->MinorVersion));
28 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
30 if (ndr_flags & NDR_BUFFERS) {
32 return NDR_ERR_SUCCESS;
35 _PUBLIC_ void ndr_print_COMVERSION(struct ndr_print *ndr, const char *name, const struct COMVERSION *r)
37 ndr_print_struct(ndr, name, "COMVERSION");
38 if (r == NULL) { ndr_print_null(ndr); return; }
40 ndr_print_uint16(ndr, "MajorVersion", r->MajorVersion);
41 ndr_print_uint16(ndr, "MinorVersion", r->MinorVersion);
45 _PUBLIC_ enum ndr_err_code ndr_push_ORPC_EXTENT(struct ndr_push *ndr, int ndr_flags, const struct ORPC_EXTENT *r)
47 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
48 if (ndr_flags & NDR_SCALARS) {
49 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ((r->size + 7) & ~7)));
50 NDR_CHECK(ndr_push_align(ndr, 4));
51 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->id));
52 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
53 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, ((r->size + 7) & ~7)));
54 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
56 if (ndr_flags & NDR_BUFFERS) {
58 return NDR_ERR_SUCCESS;
61 _PUBLIC_ enum ndr_err_code ndr_pull_ORPC_EXTENT(struct ndr_pull *ndr, int ndr_flags, struct ORPC_EXTENT *r)
63 uint32_t size_data_0 = 0;
64 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
65 if (ndr_flags & NDR_SCALARS) {
66 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
67 NDR_CHECK(ndr_pull_align(ndr, 4));
68 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->id));
69 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
70 size_data_0 = ndr_get_array_size(ndr, &r->data);
71 NDR_PULL_ALLOC_N(ndr, r->data, size_data_0);
72 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_0));
74 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, ((r->size + 7) & ~7)));
76 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
78 if (ndr_flags & NDR_BUFFERS) {
80 return NDR_ERR_SUCCESS;
83 _PUBLIC_ void ndr_print_ORPC_EXTENT(struct ndr_print *ndr, const char *name, const struct ORPC_EXTENT *r)
85 ndr_print_struct(ndr, name, "ORPC_EXTENT");
86 if (r == NULL) { ndr_print_null(ndr); return; }
88 ndr_print_GUID(ndr, "id", &r->id);
89 ndr_print_uint32(ndr, "size", r->size);
90 ndr_print_array_uint8(ndr, "data", r->data, ((r->size + 7) & ~7));
94 static enum ndr_err_code ndr_push_ORPC_EXTENT_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct ORPC_EXTENT_ARRAY *r)
96 uint32_t cntr_extent_1;
97 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
98 if (ndr_flags & NDR_SCALARS) {
99 NDR_CHECK(ndr_push_align(ndr, 5));
100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->extent));
103 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
105 if (ndr_flags & NDR_BUFFERS) {
107 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ((r->size + 1) & ~1)));
108 for (cntr_extent_1 = 0; cntr_extent_1 < (((r->size + 1) & ~1)); cntr_extent_1++) {
109 NDR_CHECK(ndr_push_unique_ptr(ndr, r->extent[cntr_extent_1]));
111 for (cntr_extent_1 = 0; cntr_extent_1 < (((r->size + 1) & ~1)); cntr_extent_1++) {
112 if (r->extent[cntr_extent_1]) {
113 NDR_CHECK(ndr_push_ORPC_EXTENT(ndr, NDR_SCALARS, r->extent[cntr_extent_1]));
118 return NDR_ERR_SUCCESS;
121 static enum ndr_err_code ndr_pull_ORPC_EXTENT_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct ORPC_EXTENT_ARRAY *r)
123 uint32_t _ptr_extent;
124 uint32_t size_extent_1 = 0;
125 uint32_t cntr_extent_1;
126 TALLOC_CTX *_mem_save_extent_0 = NULL;
127 TALLOC_CTX *_mem_save_extent_1 = NULL;
128 TALLOC_CTX *_mem_save_extent_2 = NULL;
129 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
130 if (ndr_flags & NDR_SCALARS) {
131 NDR_CHECK(ndr_pull_align(ndr, 5));
132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_extent));
136 NDR_PULL_ALLOC(ndr, r->extent);
140 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
142 if (ndr_flags & NDR_BUFFERS) {
144 _mem_save_extent_0 = NDR_PULL_GET_MEM_CTX(ndr);
145 NDR_PULL_SET_MEM_CTX(ndr, r->extent, 0);
146 NDR_CHECK(ndr_pull_array_size(ndr, &r->extent));
147 size_extent_1 = ndr_get_array_size(ndr, &r->extent);
148 NDR_PULL_ALLOC_N(ndr, r->extent, size_extent_1);
149 _mem_save_extent_1 = NDR_PULL_GET_MEM_CTX(ndr);
150 NDR_PULL_SET_MEM_CTX(ndr, r->extent, 0);
151 for (cntr_extent_1 = 0; cntr_extent_1 < (size_extent_1); cntr_extent_1++) {
152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_extent));
154 NDR_PULL_ALLOC(ndr, r->extent[cntr_extent_1]);
156 r->extent[cntr_extent_1] = NULL;
159 for (cntr_extent_1 = 0; cntr_extent_1 < (size_extent_1); cntr_extent_1++) {
160 if (r->extent[cntr_extent_1]) {
161 _mem_save_extent_2 = NDR_PULL_GET_MEM_CTX(ndr);
162 NDR_PULL_SET_MEM_CTX(ndr, r->extent[cntr_extent_1], 0);
163 NDR_CHECK(ndr_pull_ORPC_EXTENT(ndr, NDR_SCALARS, r->extent[cntr_extent_1]));
164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_extent_2, 0);
167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_extent_1, 0);
168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_extent_0, 0);
171 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->extent, ((r->size + 1) & ~1)));
174 return NDR_ERR_SUCCESS;
177 _PUBLIC_ void ndr_print_ORPC_EXTENT_ARRAY(struct ndr_print *ndr, const char *name, const struct ORPC_EXTENT_ARRAY *r)
179 uint32_t cntr_extent_1;
180 ndr_print_struct(ndr, name, "ORPC_EXTENT_ARRAY");
181 if (r == NULL) { ndr_print_null(ndr); return; }
183 ndr_print_uint32(ndr, "size", r->size);
184 ndr_print_uint32(ndr, "reserved", r->reserved);
185 ndr_print_ptr(ndr, "extent", r->extent);
188 ndr->print(ndr, "%s: ARRAY(%d)", "extent", (int)((r->size + 1) & ~1));
190 for (cntr_extent_1 = 0; cntr_extent_1 < (((r->size + 1) & ~1)); cntr_extent_1++) {
191 ndr_print_ptr(ndr, "extent", r->extent[cntr_extent_1]);
193 if (r->extent[cntr_extent_1]) {
194 ndr_print_ORPC_EXTENT(ndr, "extent", r->extent[cntr_extent_1]);
204 _PUBLIC_ enum ndr_err_code ndr_push_ORPCTHIS(struct ndr_push *ndr, int ndr_flags, const struct ORPCTHIS *r)
206 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
207 if (ndr_flags & NDR_SCALARS) {
208 NDR_CHECK(ndr_push_align(ndr, 5));
209 NDR_CHECK(ndr_push_COMVERSION(ndr, NDR_SCALARS, &r->version));
210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
212 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->cid));
213 NDR_CHECK(ndr_push_unique_ptr(ndr, r->extensions));
214 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
216 if (ndr_flags & NDR_BUFFERS) {
218 NDR_CHECK(ndr_push_ORPC_EXTENT_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->extensions));
221 return NDR_ERR_SUCCESS;
224 _PUBLIC_ enum ndr_err_code ndr_pull_ORPCTHIS(struct ndr_pull *ndr, int ndr_flags, struct ORPCTHIS *r)
226 uint32_t _ptr_extensions;
227 TALLOC_CTX *_mem_save_extensions_0 = NULL;
228 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
229 if (ndr_flags & NDR_SCALARS) {
230 NDR_CHECK(ndr_pull_align(ndr, 5));
231 NDR_CHECK(ndr_pull_COMVERSION(ndr, NDR_SCALARS, &r->version));
232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
234 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->cid));
235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_extensions));
236 if (_ptr_extensions) {
237 NDR_PULL_ALLOC(ndr, r->extensions);
239 r->extensions = NULL;
241 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
243 if (ndr_flags & NDR_BUFFERS) {
245 _mem_save_extensions_0 = NDR_PULL_GET_MEM_CTX(ndr);
246 NDR_PULL_SET_MEM_CTX(ndr, r->extensions, 0);
247 NDR_CHECK(ndr_pull_ORPC_EXTENT_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->extensions));
248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_extensions_0, 0);
251 return NDR_ERR_SUCCESS;
254 _PUBLIC_ void ndr_print_ORPCTHIS(struct ndr_print *ndr, const char *name, const struct ORPCTHIS *r)
256 ndr_print_struct(ndr, name, "ORPCTHIS");
257 if (r == NULL) { ndr_print_null(ndr); return; }
259 ndr_print_COMVERSION(ndr, "version", &r->version);
260 ndr_print_uint32(ndr, "flags", r->flags);
261 ndr_print_uint32(ndr, "reserved1", r->reserved1);
262 ndr_print_GUID(ndr, "cid", &r->cid);
263 ndr_print_ptr(ndr, "extensions", r->extensions);
266 ndr_print_ORPC_EXTENT_ARRAY(ndr, "extensions", r->extensions);
272 _PUBLIC_ enum ndr_err_code ndr_push_ORPCTHAT(struct ndr_push *ndr, int ndr_flags, const struct ORPCTHAT *r)
274 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
275 if (ndr_flags & NDR_SCALARS) {
276 NDR_CHECK(ndr_push_align(ndr, 5));
277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
278 NDR_CHECK(ndr_push_unique_ptr(ndr, r->extensions));
279 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
281 if (ndr_flags & NDR_BUFFERS) {
283 NDR_CHECK(ndr_push_ORPC_EXTENT_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->extensions));
286 return NDR_ERR_SUCCESS;
289 _PUBLIC_ enum ndr_err_code ndr_pull_ORPCTHAT(struct ndr_pull *ndr, int ndr_flags, struct ORPCTHAT *r)
291 uint32_t _ptr_extensions;
292 TALLOC_CTX *_mem_save_extensions_0 = NULL;
293 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
294 if (ndr_flags & NDR_SCALARS) {
295 NDR_CHECK(ndr_pull_align(ndr, 5));
296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_extensions));
298 if (_ptr_extensions) {
299 NDR_PULL_ALLOC(ndr, r->extensions);
301 r->extensions = NULL;
303 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
305 if (ndr_flags & NDR_BUFFERS) {
307 _mem_save_extensions_0 = NDR_PULL_GET_MEM_CTX(ndr);
308 NDR_PULL_SET_MEM_CTX(ndr, r->extensions, 0);
309 NDR_CHECK(ndr_pull_ORPC_EXTENT_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->extensions));
310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_extensions_0, 0);
313 return NDR_ERR_SUCCESS;
316 _PUBLIC_ void ndr_print_ORPCTHAT(struct ndr_print *ndr, const char *name, const struct ORPCTHAT *r)
318 ndr_print_struct(ndr, name, "ORPCTHAT");
319 if (r == NULL) { ndr_print_null(ndr); return; }
321 ndr_print_uint32(ndr, "flags", r->flags);
322 ndr_print_ptr(ndr, "extensions", r->extensions);
325 ndr_print_ORPC_EXTENT_ARRAY(ndr, "extensions", r->extensions);
331 _PUBLIC_ enum ndr_err_code ndr_push_STRINGBINDING(struct ndr_push *ndr, int ndr_flags, const struct STRINGBINDING *r)
334 uint32_t _flags_save_STRUCT = ndr->flags;
335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
336 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
337 if (ndr_flags & NDR_SCALARS) {
338 NDR_CHECK(ndr_push_align(ndr, 4));
339 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wTowerId));
341 uint32_t _flags_save_string = ndr->flags;
342 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
343 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->NetworkAddr));
344 ndr->flags = _flags_save_string;
346 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
348 if (ndr_flags & NDR_BUFFERS) {
350 ndr->flags = _flags_save_STRUCT;
352 return NDR_ERR_SUCCESS;
355 _PUBLIC_ enum ndr_err_code ndr_pull_STRINGBINDING(struct ndr_pull *ndr, int ndr_flags, struct STRINGBINDING *r)
358 uint32_t _flags_save_STRUCT = ndr->flags;
359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
360 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
361 if (ndr_flags & NDR_SCALARS) {
362 NDR_CHECK(ndr_pull_align(ndr, 4));
363 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wTowerId));
365 uint32_t _flags_save_string = ndr->flags;
366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
367 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->NetworkAddr));
368 ndr->flags = _flags_save_string;
370 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
372 if (ndr_flags & NDR_BUFFERS) {
374 ndr->flags = _flags_save_STRUCT;
376 return NDR_ERR_SUCCESS;
379 _PUBLIC_ void ndr_print_STRINGBINDING(struct ndr_print *ndr, const char *name, const struct STRINGBINDING *r)
381 ndr_print_struct(ndr, name, "STRINGBINDING");
382 if (r == NULL) { ndr_print_null(ndr); return; }
384 uint32_t _flags_save_STRUCT = ndr->flags;
385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
387 ndr_print_uint16(ndr, "wTowerId", r->wTowerId);
388 ndr_print_string(ndr, "NetworkAddr", r->NetworkAddr);
390 ndr->flags = _flags_save_STRUCT;
394 _PUBLIC_ enum ndr_err_code ndr_push_SECURITYBINDING(struct ndr_push *ndr, int ndr_flags, const struct SECURITYBINDING *r)
397 uint32_t _flags_save_STRUCT = ndr->flags;
398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
399 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
400 if (ndr_flags & NDR_SCALARS) {
401 NDR_CHECK(ndr_push_align(ndr, 4));
402 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wAuthnSvc));
403 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wAuthzSvc));
405 uint32_t _flags_save_string = ndr->flags;
406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
407 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->PrincName));
408 ndr->flags = _flags_save_string;
410 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
412 if (ndr_flags & NDR_BUFFERS) {
414 ndr->flags = _flags_save_STRUCT;
416 return NDR_ERR_SUCCESS;
419 _PUBLIC_ enum ndr_err_code ndr_pull_SECURITYBINDING(struct ndr_pull *ndr, int ndr_flags, struct SECURITYBINDING *r)
422 uint32_t _flags_save_STRUCT = ndr->flags;
423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
424 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
425 if (ndr_flags & NDR_SCALARS) {
426 NDR_CHECK(ndr_pull_align(ndr, 4));
427 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wAuthnSvc));
428 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wAuthzSvc));
430 uint32_t _flags_save_string = ndr->flags;
431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
432 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->PrincName));
433 ndr->flags = _flags_save_string;
435 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
437 if (ndr_flags & NDR_BUFFERS) {
439 ndr->flags = _flags_save_STRUCT;
441 return NDR_ERR_SUCCESS;
444 _PUBLIC_ void ndr_print_SECURITYBINDING(struct ndr_print *ndr, const char *name, const struct SECURITYBINDING *r)
446 ndr_print_struct(ndr, name, "SECURITYBINDING");
447 if (r == NULL) { ndr_print_null(ndr); return; }
449 uint32_t _flags_save_STRUCT = ndr->flags;
450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
452 ndr_print_uint16(ndr, "wAuthnSvc", r->wAuthnSvc);
453 ndr_print_uint16(ndr, "wAuthzSvc", r->wAuthzSvc);
454 ndr_print_string(ndr, "PrincName", r->PrincName);
456 ndr->flags = _flags_save_STRUCT;
460 _PUBLIC_ enum ndr_err_code ndr_push_STDOBJREF(struct ndr_push *ndr, int ndr_flags, const struct STDOBJREF *r)
462 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
463 if (ndr_flags & NDR_SCALARS) {
464 NDR_CHECK(ndr_push_align(ndr, 8));
465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cPublicRefs));
467 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->oxid));
468 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->oid));
469 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ipid));
470 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
472 if (ndr_flags & NDR_BUFFERS) {
474 return NDR_ERR_SUCCESS;
477 _PUBLIC_ enum ndr_err_code ndr_pull_STDOBJREF(struct ndr_pull *ndr, int ndr_flags, struct STDOBJREF *r)
479 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
480 if (ndr_flags & NDR_SCALARS) {
481 NDR_CHECK(ndr_pull_align(ndr, 8));
482 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cPublicRefs));
484 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->oxid));
485 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->oid));
486 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ipid));
487 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
489 if (ndr_flags & NDR_BUFFERS) {
491 return NDR_ERR_SUCCESS;
494 _PUBLIC_ void ndr_print_STDOBJREF(struct ndr_print *ndr, const char *name, const struct STDOBJREF *r)
496 ndr_print_struct(ndr, name, "STDOBJREF");
497 if (r == NULL) { ndr_print_null(ndr); return; }
499 ndr_print_uint32(ndr, "flags", r->flags);
500 ndr_print_uint32(ndr, "cPublicRefs", r->cPublicRefs);
501 ndr_print_hyper(ndr, "oxid", r->oxid);
502 ndr_print_hyper(ndr, "oid", r->oid);
503 ndr_print_GUID(ndr, "ipid", &r->ipid);
507 static enum ndr_err_code ndr_push_u_standard(struct ndr_push *ndr, int ndr_flags, const struct u_standard *r)
509 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
510 if (ndr_flags & NDR_SCALARS) {
511 NDR_CHECK(ndr_push_align(ndr, 8));
512 NDR_CHECK(ndr_push_STDOBJREF(ndr, NDR_SCALARS, &r->std));
513 NDR_CHECK(ndr_push_STRINGARRAY(ndr, NDR_SCALARS, &r->saResAddr));
514 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
516 if (ndr_flags & NDR_BUFFERS) {
517 NDR_CHECK(ndr_push_STRINGARRAY(ndr, NDR_BUFFERS, &r->saResAddr));
519 return NDR_ERR_SUCCESS;
522 static enum ndr_err_code ndr_pull_u_standard(struct ndr_pull *ndr, int ndr_flags, struct u_standard *r)
524 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
525 if (ndr_flags & NDR_SCALARS) {
526 NDR_CHECK(ndr_pull_align(ndr, 8));
527 NDR_CHECK(ndr_pull_STDOBJREF(ndr, NDR_SCALARS, &r->std));
528 NDR_CHECK(ndr_pull_STRINGARRAY(ndr, NDR_SCALARS, &r->saResAddr));
529 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
531 if (ndr_flags & NDR_BUFFERS) {
532 NDR_CHECK(ndr_pull_STRINGARRAY(ndr, NDR_BUFFERS, &r->saResAddr));
534 return NDR_ERR_SUCCESS;
537 _PUBLIC_ void ndr_print_u_standard(struct ndr_print *ndr, const char *name, const struct u_standard *r)
539 ndr_print_struct(ndr, name, "u_standard");
540 if (r == NULL) { ndr_print_null(ndr); return; }
542 ndr_print_STDOBJREF(ndr, "std", &r->std);
543 ndr_print_STRINGARRAY(ndr, "saResAddr", &r->saResAddr);
547 static enum ndr_err_code ndr_push_u_handler(struct ndr_push *ndr, int ndr_flags, const struct u_handler *r)
549 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
550 if (ndr_flags & NDR_SCALARS) {
551 NDR_CHECK(ndr_push_align(ndr, 8));
552 NDR_CHECK(ndr_push_STDOBJREF(ndr, NDR_SCALARS, &r->std));
553 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->clsid));
554 NDR_CHECK(ndr_push_STRINGARRAY(ndr, NDR_SCALARS, &r->saResAddr));
555 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
557 if (ndr_flags & NDR_BUFFERS) {
558 NDR_CHECK(ndr_push_STRINGARRAY(ndr, NDR_BUFFERS, &r->saResAddr));
560 return NDR_ERR_SUCCESS;
563 static enum ndr_err_code ndr_pull_u_handler(struct ndr_pull *ndr, int ndr_flags, struct u_handler *r)
565 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
566 if (ndr_flags & NDR_SCALARS) {
567 NDR_CHECK(ndr_pull_align(ndr, 8));
568 NDR_CHECK(ndr_pull_STDOBJREF(ndr, NDR_SCALARS, &r->std));
569 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->clsid));
570 NDR_CHECK(ndr_pull_STRINGARRAY(ndr, NDR_SCALARS, &r->saResAddr));
571 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
573 if (ndr_flags & NDR_BUFFERS) {
574 NDR_CHECK(ndr_pull_STRINGARRAY(ndr, NDR_BUFFERS, &r->saResAddr));
576 return NDR_ERR_SUCCESS;
579 _PUBLIC_ void ndr_print_u_handler(struct ndr_print *ndr, const char *name, const struct u_handler *r)
581 ndr_print_struct(ndr, name, "u_handler");
582 if (r == NULL) { ndr_print_null(ndr); return; }
584 ndr_print_STDOBJREF(ndr, "std", &r->std);
585 ndr_print_GUID(ndr, "clsid", &r->clsid);
586 ndr_print_STRINGARRAY(ndr, "saResAddr", &r->saResAddr);
590 static enum ndr_err_code ndr_push_u_custom(struct ndr_push *ndr, int ndr_flags, const struct u_custom *r)
592 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
593 if (ndr_flags & NDR_SCALARS) {
594 NDR_CHECK(ndr_push_align(ndr, 4));
595 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->clsid));
596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbExtension));
597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
598 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pData, r->size));
599 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
601 if (ndr_flags & NDR_BUFFERS) {
603 return NDR_ERR_SUCCESS;
606 static enum ndr_err_code ndr_pull_u_custom(struct ndr_pull *ndr, int ndr_flags, struct u_custom *r)
608 uint32_t size_pData_0 = 0;
609 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
610 if (ndr_flags & NDR_SCALARS) {
611 NDR_CHECK(ndr_pull_align(ndr, 4));
612 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->clsid));
613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbExtension));
614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
615 size_pData_0 = r->size;
616 NDR_PULL_ALLOC_N(ndr, r->pData, size_pData_0);
617 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pData, size_pData_0));
618 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
620 if (ndr_flags & NDR_BUFFERS) {
622 return NDR_ERR_SUCCESS;
625 _PUBLIC_ void ndr_print_u_custom(struct ndr_print *ndr, const char *name, const struct u_custom *r)
627 ndr_print_struct(ndr, name, "u_custom");
628 if (r == NULL) { ndr_print_null(ndr); return; }
630 ndr_print_GUID(ndr, "clsid", &r->clsid);
631 ndr_print_uint32(ndr, "cbExtension", r->cbExtension);
632 ndr_print_uint32(ndr, "size", r->size);
633 ndr_print_array_uint8(ndr, "pData", r->pData, r->size);
637 static enum ndr_err_code ndr_push_u_null(struct ndr_push *ndr, int ndr_flags, const struct u_null *r)
639 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
640 if (ndr_flags & NDR_SCALARS) {
641 NDR_CHECK(ndr_push_align(ndr, 1));
642 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
644 if (ndr_flags & NDR_BUFFERS) {
646 return NDR_ERR_SUCCESS;
649 static enum ndr_err_code ndr_pull_u_null(struct ndr_pull *ndr, int ndr_flags, struct u_null *r)
651 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
652 if (ndr_flags & NDR_SCALARS) {
653 NDR_CHECK(ndr_pull_align(ndr, 1));
654 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
656 if (ndr_flags & NDR_BUFFERS) {
658 return NDR_ERR_SUCCESS;
661 _PUBLIC_ void ndr_print_u_null(struct ndr_print *ndr, const char *name, const struct u_null *r)
663 ndr_print_struct(ndr, name, "u_null");
664 if (r == NULL) { ndr_print_null(ndr); return; }
669 static enum ndr_err_code ndr_push_OBJREF_Types(struct ndr_push *ndr, int ndr_flags, const union OBJREF_Types *r)
671 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
672 if (ndr_flags & NDR_SCALARS) {
673 uint32_t level = ndr_push_get_switch_value(ndr, r);
674 NDR_CHECK(ndr_push_union_align(ndr, 8));
677 NDR_CHECK(ndr_push_u_null(ndr, NDR_SCALARS, &r->u_null));
680 case OBJREF_STANDARD: {
681 NDR_CHECK(ndr_push_u_standard(ndr, NDR_SCALARS, &r->u_standard));
684 case OBJREF_HANDLER: {
685 NDR_CHECK(ndr_push_u_handler(ndr, NDR_SCALARS, &r->u_handler));
688 case OBJREF_CUSTOM: {
689 NDR_CHECK(ndr_push_u_custom(ndr, NDR_SCALARS, &r->u_custom));
693 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
696 if (ndr_flags & NDR_BUFFERS) {
697 uint32_t level = ndr_push_get_switch_value(ndr, r);
702 case OBJREF_STANDARD:
703 NDR_CHECK(ndr_push_u_standard(ndr, NDR_BUFFERS, &r->u_standard));
707 NDR_CHECK(ndr_push_u_handler(ndr, NDR_BUFFERS, &r->u_handler));
714 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
717 return NDR_ERR_SUCCESS;
720 static enum ndr_err_code ndr_pull_OBJREF_Types(struct ndr_pull *ndr, int ndr_flags, union OBJREF_Types *r)
723 level = ndr_pull_get_switch_value(ndr, r);
724 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
725 if (ndr_flags & NDR_SCALARS) {
726 NDR_CHECK(ndr_pull_union_align(ndr, 8));
729 NDR_CHECK(ndr_pull_u_null(ndr, NDR_SCALARS, &r->u_null));
732 case OBJREF_STANDARD: {
733 NDR_CHECK(ndr_pull_u_standard(ndr, NDR_SCALARS, &r->u_standard));
736 case OBJREF_HANDLER: {
737 NDR_CHECK(ndr_pull_u_handler(ndr, NDR_SCALARS, &r->u_handler));
740 case OBJREF_CUSTOM: {
741 NDR_CHECK(ndr_pull_u_custom(ndr, NDR_SCALARS, &r->u_custom));
745 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
748 if (ndr_flags & NDR_BUFFERS) {
753 case OBJREF_STANDARD:
754 NDR_CHECK(ndr_pull_u_standard(ndr, NDR_BUFFERS, &r->u_standard));
758 NDR_CHECK(ndr_pull_u_handler(ndr, NDR_BUFFERS, &r->u_handler));
765 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
768 return NDR_ERR_SUCCESS;
771 _PUBLIC_ void ndr_print_OBJREF_Types(struct ndr_print *ndr, const char *name, const union OBJREF_Types *r)
774 level = ndr_print_get_switch_value(ndr, r);
775 ndr_print_union(ndr, name, level, "OBJREF_Types");
778 ndr_print_u_null(ndr, "u_null", &r->u_null);
781 case OBJREF_STANDARD:
782 ndr_print_u_standard(ndr, "u_standard", &r->u_standard);
786 ndr_print_u_handler(ndr, "u_handler", &r->u_handler);
790 ndr_print_u_custom(ndr, "u_custom", &r->u_custom);
794 ndr_print_bad_level(ndr, name, level);
798 _PUBLIC_ enum ndr_err_code ndr_push_OBJREF(struct ndr_push *ndr, int ndr_flags, const struct OBJREF *r)
801 uint32_t _flags_save_STRUCT = ndr->flags;
802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
803 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
804 if (ndr_flags & NDR_SCALARS) {
805 NDR_CHECK(ndr_push_align(ndr, 8));
806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->signature));
807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
808 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->iid));
809 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u_objref, r->flags));
810 NDR_CHECK(ndr_push_OBJREF_Types(ndr, NDR_SCALARS, &r->u_objref));
811 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
813 if (ndr_flags & NDR_BUFFERS) {
814 NDR_CHECK(ndr_push_OBJREF_Types(ndr, NDR_BUFFERS, &r->u_objref));
816 ndr->flags = _flags_save_STRUCT;
818 return NDR_ERR_SUCCESS;
821 _PUBLIC_ enum ndr_err_code ndr_pull_OBJREF(struct ndr_pull *ndr, int ndr_flags, struct OBJREF *r)
824 uint32_t _flags_save_STRUCT = ndr->flags;
825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
826 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
827 if (ndr_flags & NDR_SCALARS) {
828 NDR_CHECK(ndr_pull_align(ndr, 8));
829 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->signature));
830 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
831 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->iid));
832 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u_objref, r->flags));
833 NDR_CHECK(ndr_pull_OBJREF_Types(ndr, NDR_SCALARS, &r->u_objref));
834 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
836 if (ndr_flags & NDR_BUFFERS) {
837 NDR_CHECK(ndr_pull_OBJREF_Types(ndr, NDR_BUFFERS, &r->u_objref));
839 ndr->flags = _flags_save_STRUCT;
841 return NDR_ERR_SUCCESS;
844 _PUBLIC_ void ndr_print_OBJREF(struct ndr_print *ndr, const char *name, const struct OBJREF *r)
846 ndr_print_struct(ndr, name, "OBJREF");
847 if (r == NULL) { ndr_print_null(ndr); return; }
849 uint32_t _flags_save_STRUCT = ndr->flags;
850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
852 ndr_print_uint32(ndr, "signature", r->signature);
853 ndr_print_uint32(ndr, "flags", r->flags);
854 ndr_print_GUID(ndr, "iid", &r->iid);
855 ndr_print_set_switch_value(ndr, &r->u_objref, r->flags);
856 ndr_print_OBJREF_Types(ndr, "u_objref", &r->u_objref);
858 ndr->flags = _flags_save_STRUCT;
862 _PUBLIC_ enum ndr_err_code ndr_push_MInterfacePointer(struct ndr_push *ndr, int ndr_flags, const struct MInterfacePointer *r)
864 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
865 if (ndr_flags & NDR_SCALARS) {
866 NDR_CHECK(ndr_push_align(ndr, 4));
867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
869 struct ndr_push *_ndr_obj;
870 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_obj, 4, -1));
871 NDR_CHECK(ndr_push_OBJREF(_ndr_obj, NDR_SCALARS|NDR_BUFFERS, &r->obj));
872 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_obj, 4, -1));
874 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
876 if (ndr_flags & NDR_BUFFERS) {
878 return NDR_ERR_SUCCESS;
881 _PUBLIC_ enum ndr_err_code ndr_pull_MInterfacePointer(struct ndr_pull *ndr, int ndr_flags, struct MInterfacePointer *r)
883 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
884 if (ndr_flags & NDR_SCALARS) {
885 NDR_CHECK(ndr_pull_align(ndr, 4));
886 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
888 struct ndr_pull *_ndr_obj;
889 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_obj, 4, -1));
890 NDR_CHECK(ndr_pull_OBJREF(_ndr_obj, NDR_SCALARS|NDR_BUFFERS, &r->obj));
891 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_obj, 4, -1));
893 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
895 if (ndr_flags & NDR_BUFFERS) {
897 return NDR_ERR_SUCCESS;
900 _PUBLIC_ void ndr_print_MInterfacePointer(struct ndr_print *ndr, const char *name, const struct MInterfacePointer *r)
902 ndr_print_struct(ndr, name, "MInterfacePointer");
903 if (r == NULL) { ndr_print_null(ndr); return; }
905 ndr_print_uint32(ndr, "size", r->size);
906 ndr_print_OBJREF(ndr, "obj", &r->obj);
910 _PUBLIC_ enum ndr_err_code ndr_push_COMRESULT(struct ndr_push *ndr, int ndr_flags, enum COMRESULT r)
912 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
913 return NDR_ERR_SUCCESS;
916 _PUBLIC_ enum ndr_err_code ndr_pull_COMRESULT(struct ndr_pull *ndr, int ndr_flags, enum COMRESULT *r)
919 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
921 return NDR_ERR_SUCCESS;
924 _PUBLIC_ void ndr_print_COMRESULT(struct ndr_print *ndr, const char *name, enum COMRESULT r)
926 const char *val = NULL;
929 case COM_OK: val = "COM_OK"; break;
930 case COM_OUTOFMEMORY: val = "COM_OUTOFMEMORY"; break;
931 case COM_INVALIDARG: val = "COM_INVALIDARG"; break;
932 case COM_NOINTERFACE: val = "COM_NOINTERFACE"; break;
933 case COM_ACCESSDENIED: val = "COM_ACCESSDENIED"; break;
934 case COM_INVALID_OXID: val = "COM_INVALID_OXID"; break;
935 case COM_INVALID_OID: val = "COM_INVALID_OID"; break;
936 case COM_INVALID_SET: val = "COM_INVALID_SET"; break;
937 case COM_UNEXPECTED: val = "COM_UNEXPECTED"; break;
938 case COM_CLSNOTFOUND: val = "COM_CLSNOTFOUND"; break;
940 ndr_print_enum(ndr, name, "ENUM", val, r);