1 /* parser auto-generated by pidl */
4 #include "bin/default/librpc/gen_ndr/ndr_xattr.h"
6 #include "librpc/gen_ndr/ndr_security.h"
7 static enum ndr_err_code ndr_push_xattr_DosInfoFFFFCompat(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosInfoFFFFCompat *r)
9 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10 if (ndr_flags & NDR_SCALARS) {
11 NDR_CHECK(ndr_push_align(ndr, 4));
12 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attrib));
13 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15 if (ndr_flags & NDR_BUFFERS) {
17 return NDR_ERR_SUCCESS;
20 static enum ndr_err_code ndr_pull_xattr_DosInfoFFFFCompat(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosInfoFFFFCompat *r)
22 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23 if (ndr_flags & NDR_SCALARS) {
24 NDR_CHECK(ndr_pull_align(ndr, 4));
25 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attrib));
26 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
28 if (ndr_flags & NDR_BUFFERS) {
30 return NDR_ERR_SUCCESS;
33 _PUBLIC_ void ndr_print_xattr_DosInfoFFFFCompat(struct ndr_print *ndr, const char *name, const struct xattr_DosInfoFFFFCompat *r)
35 ndr_print_struct(ndr, name, "xattr_DosInfoFFFFCompat");
36 if (r == NULL) { ndr_print_null(ndr); return; }
38 ndr_print_uint32(ndr, "attrib", r->attrib);
42 static enum ndr_err_code ndr_push_xattr_DosInfo1(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosInfo1 *r)
44 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
45 if (ndr_flags & NDR_SCALARS) {
46 NDR_CHECK(ndr_push_align(ndr, 4));
47 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attrib));
48 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ea_size));
49 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->size));
50 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->alloc_size));
51 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->create_time));
52 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
53 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
55 if (ndr_flags & NDR_BUFFERS) {
57 return NDR_ERR_SUCCESS;
60 static enum ndr_err_code ndr_pull_xattr_DosInfo1(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosInfo1 *r)
62 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
63 if (ndr_flags & NDR_SCALARS) {
64 NDR_CHECK(ndr_pull_align(ndr, 4));
65 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attrib));
66 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ea_size));
67 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size));
68 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size));
69 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->create_time));
70 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
71 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
73 if (ndr_flags & NDR_BUFFERS) {
75 return NDR_ERR_SUCCESS;
78 _PUBLIC_ void ndr_print_xattr_DosInfo1(struct ndr_print *ndr, const char *name, const struct xattr_DosInfo1 *r)
80 ndr_print_struct(ndr, name, "xattr_DosInfo1");
81 if (r == NULL) { ndr_print_null(ndr); return; }
83 ndr_print_uint32(ndr, "attrib", r->attrib);
84 ndr_print_uint32(ndr, "ea_size", r->ea_size);
85 ndr_print_udlong(ndr, "size", r->size);
86 ndr_print_udlong(ndr, "alloc_size", r->alloc_size);
87 ndr_print_NTTIME(ndr, "create_time", r->create_time);
88 ndr_print_NTTIME(ndr, "change_time", r->change_time);
92 static enum ndr_err_code ndr_push_xattr_DosInfo2Old(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosInfo2Old *r)
94 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
95 if (ndr_flags & NDR_SCALARS) {
96 NDR_CHECK(ndr_push_align(ndr, 4));
97 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
98 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attrib));
99 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ea_size));
100 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->size));
101 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->alloc_size));
102 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->create_time));
103 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
104 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->write_time));
106 uint32_t _flags_save_string = ndr->flags;
107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
108 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
109 ndr->flags = _flags_save_string;
111 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
113 if (ndr_flags & NDR_BUFFERS) {
115 return NDR_ERR_SUCCESS;
118 static enum ndr_err_code ndr_pull_xattr_DosInfo2Old(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosInfo2Old *r)
120 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
121 if (ndr_flags & NDR_SCALARS) {
122 NDR_CHECK(ndr_pull_align(ndr, 4));
123 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
124 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attrib));
125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ea_size));
126 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size));
127 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size));
128 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->create_time));
129 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
130 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->write_time));
132 uint32_t _flags_save_string = ndr->flags;
133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
134 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
135 ndr->flags = _flags_save_string;
137 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
139 if (ndr_flags & NDR_BUFFERS) {
141 return NDR_ERR_SUCCESS;
144 _PUBLIC_ void ndr_print_xattr_DosInfo2Old(struct ndr_print *ndr, const char *name, const struct xattr_DosInfo2Old *r)
146 ndr_print_struct(ndr, name, "xattr_DosInfo2Old");
147 if (r == NULL) { ndr_print_null(ndr); return; }
149 ndr_print_uint32(ndr, "flags", r->flags);
150 ndr_print_uint32(ndr, "attrib", r->attrib);
151 ndr_print_uint32(ndr, "ea_size", r->ea_size);
152 ndr_print_udlong(ndr, "size", r->size);
153 ndr_print_udlong(ndr, "alloc_size", r->alloc_size);
154 ndr_print_NTTIME(ndr, "create_time", r->create_time);
155 ndr_print_NTTIME(ndr, "change_time", r->change_time);
156 ndr_print_NTTIME(ndr, "write_time", r->write_time);
157 ndr_print_string(ndr, "name", r->name);
161 static enum ndr_err_code ndr_push_xattr_DosInfoValidFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
164 return NDR_ERR_SUCCESS;
167 static enum ndr_err_code ndr_pull_xattr_DosInfoValidFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
172 return NDR_ERR_SUCCESS;
175 _PUBLIC_ void ndr_print_xattr_DosInfoValidFlags(struct ndr_print *ndr, const char *name, uint32_t r)
177 ndr_print_uint32(ndr, name, r);
179 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_ATTRIB", XATTR_DOSINFO_ATTRIB, r);
180 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_EA_SIZE", XATTR_DOSINFO_EA_SIZE, r);
181 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_SIZE", XATTR_DOSINFO_SIZE, r);
182 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_ALLOC_SIZE", XATTR_DOSINFO_ALLOC_SIZE, r);
183 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_CREATE_TIME", XATTR_DOSINFO_CREATE_TIME, r);
184 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_CHANGE_TIME", XATTR_DOSINFO_CHANGE_TIME, r);
188 static enum ndr_err_code ndr_push_xattr_DosInfo3(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosInfo3 *r)
190 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
191 if (ndr_flags & NDR_SCALARS) {
192 NDR_CHECK(ndr_push_align(ndr, 4));
193 NDR_CHECK(ndr_push_xattr_DosInfoValidFlags(ndr, NDR_SCALARS, r->valid_flags));
194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attrib));
195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ea_size));
196 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->size));
197 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->alloc_size));
198 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->create_time));
199 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
200 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
202 if (ndr_flags & NDR_BUFFERS) {
204 return NDR_ERR_SUCCESS;
207 static enum ndr_err_code ndr_pull_xattr_DosInfo3(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosInfo3 *r)
209 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
210 if (ndr_flags & NDR_SCALARS) {
211 NDR_CHECK(ndr_pull_align(ndr, 4));
212 NDR_CHECK(ndr_pull_xattr_DosInfoValidFlags(ndr, NDR_SCALARS, &r->valid_flags));
213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attrib));
214 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ea_size));
215 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size));
216 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size));
217 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->create_time));
218 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
219 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
221 if (ndr_flags & NDR_BUFFERS) {
223 return NDR_ERR_SUCCESS;
226 _PUBLIC_ void ndr_print_xattr_DosInfo3(struct ndr_print *ndr, const char *name, const struct xattr_DosInfo3 *r)
228 ndr_print_struct(ndr, name, "xattr_DosInfo3");
229 if (r == NULL) { ndr_print_null(ndr); return; }
231 ndr_print_xattr_DosInfoValidFlags(ndr, "valid_flags", r->valid_flags);
232 ndr_print_uint32(ndr, "attrib", r->attrib);
233 ndr_print_uint32(ndr, "ea_size", r->ea_size);
234 ndr_print_udlong(ndr, "size", r->size);
235 ndr_print_udlong(ndr, "alloc_size", r->alloc_size);
236 ndr_print_NTTIME(ndr, "create_time", r->create_time);
237 ndr_print_NTTIME(ndr, "change_time", r->change_time);
241 _PUBLIC_ enum ndr_err_code ndr_push_xattr_DosInfo(struct ndr_push *ndr, int ndr_flags, const union xattr_DosInfo *r)
243 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
244 if (ndr_flags & NDR_SCALARS) {
245 uint32_t level = ndr_push_get_switch_value(ndr, r);
246 NDR_CHECK(ndr_push_union_align(ndr, 4));
247 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
248 NDR_CHECK(ndr_push_union_align(ndr, 4));
251 NDR_CHECK(ndr_push_xattr_DosInfoFFFFCompat(ndr, NDR_SCALARS, &r->compatinfoFFFF));
255 NDR_CHECK(ndr_push_xattr_DosInfo1(ndr, NDR_SCALARS, &r->info1));
259 NDR_CHECK(ndr_push_xattr_DosInfo2Old(ndr, NDR_SCALARS, &r->oldinfo2));
263 NDR_CHECK(ndr_push_xattr_DosInfo3(ndr, NDR_SCALARS, &r->info3));
267 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
270 if (ndr_flags & NDR_BUFFERS) {
271 uint32_t level = ndr_push_get_switch_value(ndr, r);
286 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
289 return NDR_ERR_SUCCESS;
292 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_DosInfo(struct ndr_pull *ndr, int ndr_flags, union xattr_DosInfo *r)
296 level = ndr_pull_get_switch_value(ndr, r);
297 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
298 if (ndr_flags & NDR_SCALARS) {
299 NDR_CHECK(ndr_pull_union_align(ndr, 4));
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 r at %s", _level, __location__);
304 NDR_CHECK(ndr_pull_union_align(ndr, 4));
307 NDR_CHECK(ndr_pull_xattr_DosInfoFFFFCompat(ndr, NDR_SCALARS, &r->compatinfoFFFF));
311 NDR_CHECK(ndr_pull_xattr_DosInfo1(ndr, NDR_SCALARS, &r->info1));
315 NDR_CHECK(ndr_pull_xattr_DosInfo2Old(ndr, NDR_SCALARS, &r->oldinfo2));
319 NDR_CHECK(ndr_pull_xattr_DosInfo3(ndr, NDR_SCALARS, &r->info3));
323 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
326 if (ndr_flags & NDR_BUFFERS) {
341 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
344 return NDR_ERR_SUCCESS;
347 _PUBLIC_ void ndr_print_xattr_DosInfo(struct ndr_print *ndr, const char *name, const union xattr_DosInfo *r)
350 level = ndr_print_get_switch_value(ndr, r);
351 ndr_print_union(ndr, name, level, "xattr_DosInfo");
354 ndr_print_xattr_DosInfoFFFFCompat(ndr, "compatinfoFFFF", &r->compatinfoFFFF);
358 ndr_print_xattr_DosInfo1(ndr, "info1", &r->info1);
362 ndr_print_xattr_DosInfo2Old(ndr, "oldinfo2", &r->oldinfo2);
366 ndr_print_xattr_DosInfo3(ndr, "info3", &r->info3);
370 ndr_print_bad_level(ndr, name, level);
374 _PUBLIC_ enum ndr_err_code ndr_push_xattr_DosAttrib(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosAttrib *r)
376 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
377 if (ndr_flags & NDR_SCALARS) {
378 NDR_CHECK(ndr_push_align(ndr, 4));
379 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version));
380 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
381 NDR_CHECK(ndr_push_xattr_DosInfo(ndr, NDR_SCALARS, &r->info));
382 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
384 if (ndr_flags & NDR_BUFFERS) {
386 return NDR_ERR_SUCCESS;
389 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_DosAttrib(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosAttrib *r)
391 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
392 if (ndr_flags & NDR_SCALARS) {
393 NDR_CHECK(ndr_pull_align(ndr, 4));
394 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version));
395 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
396 NDR_CHECK(ndr_pull_xattr_DosInfo(ndr, NDR_SCALARS, &r->info));
397 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
399 if (ndr_flags & NDR_BUFFERS) {
401 return NDR_ERR_SUCCESS;
404 _PUBLIC_ void ndr_print_xattr_DosAttrib(struct ndr_print *ndr, const char *name, const struct xattr_DosAttrib *r)
406 ndr_print_struct(ndr, name, "xattr_DosAttrib");
407 if (r == NULL) { ndr_print_null(ndr); return; }
409 ndr_print_uint16(ndr, "version", r->version);
410 ndr_print_set_switch_value(ndr, &r->info, r->version);
411 ndr_print_xattr_DosInfo(ndr, "info", &r->info);
415 static enum ndr_err_code ndr_push_xattr_EA(struct ndr_push *ndr, int ndr_flags, const struct xattr_EA *r)
417 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
418 if (ndr_flags & NDR_SCALARS) {
419 NDR_CHECK(ndr_push_align(ndr, 4));
421 uint32_t _flags_save_string = ndr->flags;
422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
423 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
424 ndr->flags = _flags_save_string;
426 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->value));
427 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
429 if (ndr_flags & NDR_BUFFERS) {
431 return NDR_ERR_SUCCESS;
434 static enum ndr_err_code ndr_pull_xattr_EA(struct ndr_pull *ndr, int ndr_flags, struct xattr_EA *r)
436 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
437 if (ndr_flags & NDR_SCALARS) {
438 NDR_CHECK(ndr_pull_align(ndr, 4));
440 uint32_t _flags_save_string = ndr->flags;
441 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
442 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
443 ndr->flags = _flags_save_string;
445 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->value));
446 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
448 if (ndr_flags & NDR_BUFFERS) {
450 return NDR_ERR_SUCCESS;
453 _PUBLIC_ void ndr_print_xattr_EA(struct ndr_print *ndr, const char *name, const struct xattr_EA *r)
455 ndr_print_struct(ndr, name, "xattr_EA");
456 if (r == NULL) { ndr_print_null(ndr); return; }
458 ndr_print_string(ndr, "name", r->name);
459 ndr_print_DATA_BLOB(ndr, "value", r->value);
463 _PUBLIC_ enum ndr_err_code ndr_push_xattr_DosEAs(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosEAs *r)
466 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
467 if (ndr_flags & NDR_SCALARS) {
468 NDR_CHECK(ndr_push_align(ndr, 5));
469 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->num_eas));
470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eas));
471 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
473 if (ndr_flags & NDR_BUFFERS) {
475 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_eas));
476 for (cntr_eas_1 = 0; cntr_eas_1 < r->num_eas; cntr_eas_1++) {
477 NDR_CHECK(ndr_push_xattr_EA(ndr, NDR_SCALARS, &r->eas[cntr_eas_1]));
481 return NDR_ERR_SUCCESS;
484 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_DosEAs(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosEAs *r)
487 uint32_t size_eas_1 = 0;
489 TALLOC_CTX *_mem_save_eas_0;
490 TALLOC_CTX *_mem_save_eas_1;
491 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
492 if (ndr_flags & NDR_SCALARS) {
493 NDR_CHECK(ndr_pull_align(ndr, 5));
494 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->num_eas));
495 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eas));
497 NDR_PULL_ALLOC(ndr, r->eas);
501 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
503 if (ndr_flags & NDR_BUFFERS) {
505 _mem_save_eas_0 = NDR_PULL_GET_MEM_CTX(ndr);
506 NDR_PULL_SET_MEM_CTX(ndr, r->eas, 0);
507 NDR_CHECK(ndr_pull_array_size(ndr, &r->eas));
508 size_eas_1 = ndr_get_array_size(ndr, &r->eas);
509 NDR_PULL_ALLOC_N(ndr, r->eas, size_eas_1);
510 _mem_save_eas_1 = NDR_PULL_GET_MEM_CTX(ndr);
511 NDR_PULL_SET_MEM_CTX(ndr, r->eas, 0);
512 for (cntr_eas_1 = 0; cntr_eas_1 < size_eas_1; cntr_eas_1++) {
513 NDR_CHECK(ndr_pull_xattr_EA(ndr, NDR_SCALARS, &r->eas[cntr_eas_1]));
515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eas_1, 0);
516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eas_0, 0);
519 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eas, r->num_eas));
522 return NDR_ERR_SUCCESS;
525 _PUBLIC_ void ndr_print_xattr_DosEAs(struct ndr_print *ndr, const char *name, const struct xattr_DosEAs *r)
528 ndr_print_struct(ndr, name, "xattr_DosEAs");
529 if (r == NULL) { ndr_print_null(ndr); return; }
531 ndr_print_uint16(ndr, "num_eas", r->num_eas);
532 ndr_print_ptr(ndr, "eas", r->eas);
535 ndr->print(ndr, "%s: ARRAY(%d)", "eas", (int)r->num_eas);
537 for (cntr_eas_1=0;cntr_eas_1<r->num_eas;cntr_eas_1++) {
538 ndr_print_xattr_EA(ndr, "eas", &r->eas[cntr_eas_1]);
546 _PUBLIC_ enum ndr_err_code ndr_push_tdb_xattrs(struct ndr_push *ndr, int ndr_flags, const struct tdb_xattrs *r)
549 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
550 if (ndr_flags & NDR_SCALARS) {
551 NDR_CHECK(ndr_push_align(ndr, 4));
552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_eas));
553 for (cntr_eas_0 = 0; cntr_eas_0 < r->num_eas; cntr_eas_0++) {
554 NDR_CHECK(ndr_push_xattr_EA(ndr, NDR_SCALARS, &r->eas[cntr_eas_0]));
556 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
558 if (ndr_flags & NDR_BUFFERS) {
560 return NDR_ERR_SUCCESS;
563 _PUBLIC_ enum ndr_err_code ndr_pull_tdb_xattrs(struct ndr_pull *ndr, int ndr_flags, struct tdb_xattrs *r)
565 uint32_t size_eas_0 = 0;
567 TALLOC_CTX *_mem_save_eas_0;
568 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
569 if (ndr_flags & NDR_SCALARS) {
570 NDR_CHECK(ndr_pull_align(ndr, 4));
571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_eas));
572 size_eas_0 = r->num_eas;
573 NDR_PULL_ALLOC_N(ndr, r->eas, size_eas_0);
574 _mem_save_eas_0 = NDR_PULL_GET_MEM_CTX(ndr);
575 NDR_PULL_SET_MEM_CTX(ndr, r->eas, 0);
576 for (cntr_eas_0 = 0; cntr_eas_0 < size_eas_0; cntr_eas_0++) {
577 NDR_CHECK(ndr_pull_xattr_EA(ndr, NDR_SCALARS, &r->eas[cntr_eas_0]));
579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eas_0, 0);
580 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
582 if (ndr_flags & NDR_BUFFERS) {
584 return NDR_ERR_SUCCESS;
587 _PUBLIC_ void ndr_print_tdb_xattrs(struct ndr_print *ndr, const char *name, const struct tdb_xattrs *r)
590 ndr_print_struct(ndr, name, "tdb_xattrs");
591 if (r == NULL) { ndr_print_null(ndr); return; }
593 ndr_print_uint32(ndr, "num_eas", r->num_eas);
594 ndr->print(ndr, "%s: ARRAY(%d)", "eas", (int)r->num_eas);
596 for (cntr_eas_0=0;cntr_eas_0<r->num_eas;cntr_eas_0++) {
597 ndr_print_xattr_EA(ndr, "eas", &r->eas[cntr_eas_0]);
603 static enum ndr_err_code ndr_push_xattr_DosStream(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosStream *r)
605 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
606 if (ndr_flags & NDR_SCALARS) {
607 NDR_CHECK(ndr_push_align(ndr, 4));
608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
609 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->size));
610 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->alloc_size));
612 uint32_t _flags_save_string = ndr->flags;
613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
614 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
615 ndr->flags = _flags_save_string;
617 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
619 if (ndr_flags & NDR_BUFFERS) {
621 return NDR_ERR_SUCCESS;
624 static enum ndr_err_code ndr_pull_xattr_DosStream(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosStream *r)
626 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
627 if (ndr_flags & NDR_SCALARS) {
628 NDR_CHECK(ndr_pull_align(ndr, 4));
629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
630 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size));
631 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size));
633 uint32_t _flags_save_string = ndr->flags;
634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
635 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
636 ndr->flags = _flags_save_string;
638 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
640 if (ndr_flags & NDR_BUFFERS) {
642 return NDR_ERR_SUCCESS;
645 _PUBLIC_ void ndr_print_xattr_DosStream(struct ndr_print *ndr, const char *name, const struct xattr_DosStream *r)
647 ndr_print_struct(ndr, name, "xattr_DosStream");
648 if (r == NULL) { ndr_print_null(ndr); return; }
650 ndr_print_uint32(ndr, "flags", r->flags);
651 ndr_print_udlong(ndr, "size", r->size);
652 ndr_print_udlong(ndr, "alloc_size", r->alloc_size);
653 ndr_print_string(ndr, "name", r->name);
657 _PUBLIC_ enum ndr_err_code ndr_push_xattr_DosStreams(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosStreams *r)
659 uint32_t cntr_streams_1;
660 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
661 if (ndr_flags & NDR_SCALARS) {
662 NDR_CHECK(ndr_push_align(ndr, 5));
663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_streams));
664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->streams));
665 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
667 if (ndr_flags & NDR_BUFFERS) {
669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_streams));
670 for (cntr_streams_1 = 0; cntr_streams_1 < r->num_streams; cntr_streams_1++) {
671 NDR_CHECK(ndr_push_xattr_DosStream(ndr, NDR_SCALARS, &r->streams[cntr_streams_1]));
675 return NDR_ERR_SUCCESS;
678 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_DosStreams(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosStreams *r)
680 uint32_t _ptr_streams;
681 uint32_t size_streams_1 = 0;
682 uint32_t cntr_streams_1;
683 TALLOC_CTX *_mem_save_streams_0;
684 TALLOC_CTX *_mem_save_streams_1;
685 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
686 if (ndr_flags & NDR_SCALARS) {
687 NDR_CHECK(ndr_pull_align(ndr, 5));
688 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_streams));
689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_streams));
691 NDR_PULL_ALLOC(ndr, r->streams);
695 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
697 if (ndr_flags & NDR_BUFFERS) {
699 _mem_save_streams_0 = NDR_PULL_GET_MEM_CTX(ndr);
700 NDR_PULL_SET_MEM_CTX(ndr, r->streams, 0);
701 NDR_CHECK(ndr_pull_array_size(ndr, &r->streams));
702 size_streams_1 = ndr_get_array_size(ndr, &r->streams);
703 NDR_PULL_ALLOC_N(ndr, r->streams, size_streams_1);
704 _mem_save_streams_1 = NDR_PULL_GET_MEM_CTX(ndr);
705 NDR_PULL_SET_MEM_CTX(ndr, r->streams, 0);
706 for (cntr_streams_1 = 0; cntr_streams_1 < size_streams_1; cntr_streams_1++) {
707 NDR_CHECK(ndr_pull_xattr_DosStream(ndr, NDR_SCALARS, &r->streams[cntr_streams_1]));
709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_streams_1, 0);
710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_streams_0, 0);
713 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->streams, r->num_streams));
716 return NDR_ERR_SUCCESS;
719 _PUBLIC_ void ndr_print_xattr_DosStreams(struct ndr_print *ndr, const char *name, const struct xattr_DosStreams *r)
721 uint32_t cntr_streams_1;
722 ndr_print_struct(ndr, name, "xattr_DosStreams");
723 if (r == NULL) { ndr_print_null(ndr); return; }
725 ndr_print_uint32(ndr, "num_streams", r->num_streams);
726 ndr_print_ptr(ndr, "streams", r->streams);
729 ndr->print(ndr, "%s: ARRAY(%d)", "streams", (int)r->num_streams);
731 for (cntr_streams_1=0;cntr_streams_1<r->num_streams;cntr_streams_1++) {
732 ndr_print_xattr_DosStream(ndr, "streams", &r->streams[cntr_streams_1]);
740 _PUBLIC_ enum ndr_err_code ndr_push_security_descriptor_hash_v2(struct ndr_push *ndr, int ndr_flags, const struct security_descriptor_hash_v2 *r)
742 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
743 if (ndr_flags & NDR_SCALARS) {
744 NDR_CHECK(ndr_push_align(ndr, 5));
745 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
746 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->hash, 16));
747 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
749 if (ndr_flags & NDR_BUFFERS) {
751 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
754 return NDR_ERR_SUCCESS;
757 _PUBLIC_ enum ndr_err_code ndr_pull_security_descriptor_hash_v2(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor_hash_v2 *r)
760 TALLOC_CTX *_mem_save_sd_0;
761 uint32_t size_hash_0 = 0;
762 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
763 if (ndr_flags & NDR_SCALARS) {
764 NDR_CHECK(ndr_pull_align(ndr, 5));
765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
767 NDR_PULL_ALLOC(ndr, r->sd);
772 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, size_hash_0));
773 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
775 if (ndr_flags & NDR_BUFFERS) {
777 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
778 NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
779 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
783 return NDR_ERR_SUCCESS;
786 _PUBLIC_ void ndr_print_security_descriptor_hash_v2(struct ndr_print *ndr, const char *name, const struct security_descriptor_hash_v2 *r)
788 ndr_print_struct(ndr, name, "security_descriptor_hash_v2");
789 if (r == NULL) { ndr_print_null(ndr); return; }
791 ndr_print_ptr(ndr, "sd", r->sd);
794 ndr_print_security_descriptor(ndr, "sd", r->sd);
797 ndr_print_array_uint8(ndr, "hash", r->hash, 16);
801 _PUBLIC_ enum ndr_err_code ndr_push_security_descriptor_hash_v3(struct ndr_push *ndr, int ndr_flags, const struct security_descriptor_hash_v3 *r)
803 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
804 if (ndr_flags & NDR_SCALARS) {
805 NDR_CHECK(ndr_push_align(ndr, 5));
806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
807 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hash_type));
808 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->hash, 64));
809 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
811 if (ndr_flags & NDR_BUFFERS) {
813 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
816 return NDR_ERR_SUCCESS;
819 _PUBLIC_ enum ndr_err_code ndr_pull_security_descriptor_hash_v3(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor_hash_v3 *r)
822 TALLOC_CTX *_mem_save_sd_0;
823 uint32_t size_hash_0 = 0;
824 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
825 if (ndr_flags & NDR_SCALARS) {
826 NDR_CHECK(ndr_pull_align(ndr, 5));
827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
829 NDR_PULL_ALLOC(ndr, r->sd);
833 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hash_type));
835 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, size_hash_0));
836 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
838 if (ndr_flags & NDR_BUFFERS) {
840 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
841 NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
842 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
846 return NDR_ERR_SUCCESS;
849 _PUBLIC_ void ndr_print_security_descriptor_hash_v3(struct ndr_print *ndr, const char *name, const struct security_descriptor_hash_v3 *r)
851 ndr_print_struct(ndr, name, "security_descriptor_hash_v3");
852 if (r == NULL) { ndr_print_null(ndr); return; }
854 ndr_print_ptr(ndr, "sd", r->sd);
857 ndr_print_security_descriptor(ndr, "sd", r->sd);
860 ndr_print_uint16(ndr, "hash_type", r->hash_type);
861 ndr_print_array_uint8(ndr, "hash", r->hash, 64);
865 _PUBLIC_ enum ndr_err_code ndr_push_security_descriptor_hash_v4(struct ndr_push *ndr, int ndr_flags, const struct security_descriptor_hash_v4 *r)
867 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
868 if (ndr_flags & NDR_SCALARS) {
869 NDR_CHECK(ndr_push_align(ndr, 5));
870 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
871 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hash_type));
872 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->hash, 64));
874 uint32_t _flags_save_string = ndr->flags;
875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
876 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
877 ndr->flags = _flags_save_string;
879 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time));
880 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->sys_acl_hash, 64));
881 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
883 if (ndr_flags & NDR_BUFFERS) {
885 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
888 return NDR_ERR_SUCCESS;
891 _PUBLIC_ enum ndr_err_code ndr_pull_security_descriptor_hash_v4(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor_hash_v4 *r)
894 TALLOC_CTX *_mem_save_sd_0;
895 uint32_t size_hash_0 = 0;
896 uint32_t size_sys_acl_hash_0 = 0;
897 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
898 if (ndr_flags & NDR_SCALARS) {
899 NDR_CHECK(ndr_pull_align(ndr, 5));
900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
902 NDR_PULL_ALLOC(ndr, r->sd);
906 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hash_type));
908 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, size_hash_0));
910 uint32_t _flags_save_string = ndr->flags;
911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
912 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
913 ndr->flags = _flags_save_string;
915 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time));
916 size_sys_acl_hash_0 = 64;
917 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->sys_acl_hash, size_sys_acl_hash_0));
918 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
920 if (ndr_flags & NDR_BUFFERS) {
922 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
923 NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
924 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
928 return NDR_ERR_SUCCESS;
931 _PUBLIC_ void ndr_print_security_descriptor_hash_v4(struct ndr_print *ndr, const char *name, const struct security_descriptor_hash_v4 *r)
933 ndr_print_struct(ndr, name, "security_descriptor_hash_v4");
934 if (r == NULL) { ndr_print_null(ndr); return; }
936 ndr_print_ptr(ndr, "sd", r->sd);
939 ndr_print_security_descriptor(ndr, "sd", r->sd);
942 ndr_print_uint16(ndr, "hash_type", r->hash_type);
943 ndr_print_array_uint8(ndr, "hash", r->hash, 64);
944 ndr_print_string(ndr, "description", r->description);
945 ndr_print_NTTIME(ndr, "time", r->time);
946 ndr_print_array_uint8(ndr, "sys_acl_hash", r->sys_acl_hash, 64);
950 static enum ndr_err_code ndr_push_xattr_NTACL_Info(struct ndr_push *ndr, int ndr_flags, const union xattr_NTACL_Info *r)
952 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
953 if (ndr_flags & NDR_SCALARS) {
954 uint32_t level = ndr_push_get_switch_value(ndr, r);
955 NDR_CHECK(ndr_push_union_align(ndr, 5));
956 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
957 NDR_CHECK(ndr_push_union_align(ndr, 5));
960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd_hs2));
968 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd_hs3));
972 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd_hs4));
976 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
979 if (ndr_flags & NDR_BUFFERS) {
980 uint32_t level = ndr_push_get_switch_value(ndr, r);
984 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
990 NDR_CHECK(ndr_push_security_descriptor_hash_v2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs2));
996 NDR_CHECK(ndr_push_security_descriptor_hash_v3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs3));
1002 NDR_CHECK(ndr_push_security_descriptor_hash_v4(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs4));
1007 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1010 return NDR_ERR_SUCCESS;
1013 static enum ndr_err_code ndr_pull_xattr_NTACL_Info(struct ndr_pull *ndr, int ndr_flags, union xattr_NTACL_Info *r)
1017 TALLOC_CTX *_mem_save_sd_0;
1019 TALLOC_CTX *_mem_save_sd_hs2_0;
1020 uint32_t _ptr_sd_hs2;
1021 TALLOC_CTX *_mem_save_sd_hs3_0;
1022 uint32_t _ptr_sd_hs3;
1023 TALLOC_CTX *_mem_save_sd_hs4_0;
1024 uint32_t _ptr_sd_hs4;
1025 level = ndr_pull_get_switch_value(ndr, r);
1026 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1027 if (ndr_flags & NDR_SCALARS) {
1028 NDR_CHECK(ndr_pull_union_align(ndr, 5));
1029 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1030 if (_level != level) {
1031 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
1033 NDR_CHECK(ndr_pull_union_align(ndr, 5));
1036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
1038 NDR_PULL_ALLOC(ndr, r->sd);
1045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd_hs2));
1047 NDR_PULL_ALLOC(ndr, r->sd_hs2);
1054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd_hs3));
1056 NDR_PULL_ALLOC(ndr, r->sd_hs3);
1063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd_hs4));
1065 NDR_PULL_ALLOC(ndr, r->sd_hs4);
1072 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1075 if (ndr_flags & NDR_BUFFERS) {
1079 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1080 NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
1081 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
1082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
1088 _mem_save_sd_hs2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1089 NDR_PULL_SET_MEM_CTX(ndr, r->sd_hs2, 0);
1090 NDR_CHECK(ndr_pull_security_descriptor_hash_v2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs2));
1091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_hs2_0, 0);
1097 _mem_save_sd_hs3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1098 NDR_PULL_SET_MEM_CTX(ndr, r->sd_hs3, 0);
1099 NDR_CHECK(ndr_pull_security_descriptor_hash_v3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs3));
1100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_hs3_0, 0);
1106 _mem_save_sd_hs4_0 = NDR_PULL_GET_MEM_CTX(ndr);
1107 NDR_PULL_SET_MEM_CTX(ndr, r->sd_hs4, 0);
1108 NDR_CHECK(ndr_pull_security_descriptor_hash_v4(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs4));
1109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_hs4_0, 0);
1114 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1117 return NDR_ERR_SUCCESS;
1120 _PUBLIC_ void ndr_print_xattr_NTACL_Info(struct ndr_print *ndr, const char *name, const union xattr_NTACL_Info *r)
1123 level = ndr_print_get_switch_value(ndr, r);
1124 ndr_print_union(ndr, name, level, "xattr_NTACL_Info");
1127 ndr_print_ptr(ndr, "sd", r->sd);
1130 ndr_print_security_descriptor(ndr, "sd", r->sd);
1136 ndr_print_ptr(ndr, "sd_hs2", r->sd_hs2);
1139 ndr_print_security_descriptor_hash_v2(ndr, "sd_hs2", r->sd_hs2);
1145 ndr_print_ptr(ndr, "sd_hs3", r->sd_hs3);
1148 ndr_print_security_descriptor_hash_v3(ndr, "sd_hs3", r->sd_hs3);
1154 ndr_print_ptr(ndr, "sd_hs4", r->sd_hs4);
1157 ndr_print_security_descriptor_hash_v4(ndr, "sd_hs4", r->sd_hs4);
1163 ndr_print_bad_level(ndr, name, level);
1167 _PUBLIC_ enum ndr_err_code ndr_push_xattr_NTACL(struct ndr_push *ndr, int ndr_flags, const struct xattr_NTACL *r)
1169 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1170 if (ndr_flags & NDR_SCALARS) {
1171 NDR_CHECK(ndr_push_align(ndr, 5));
1172 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version));
1173 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
1174 NDR_CHECK(ndr_push_xattr_NTACL_Info(ndr, NDR_SCALARS, &r->info));
1175 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1177 if (ndr_flags & NDR_BUFFERS) {
1178 NDR_CHECK(ndr_push_xattr_NTACL_Info(ndr, NDR_BUFFERS, &r->info));
1180 return NDR_ERR_SUCCESS;
1183 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_NTACL(struct ndr_pull *ndr, int ndr_flags, struct xattr_NTACL *r)
1185 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1186 if (ndr_flags & NDR_SCALARS) {
1187 NDR_CHECK(ndr_pull_align(ndr, 5));
1188 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version));
1189 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
1190 NDR_CHECK(ndr_pull_xattr_NTACL_Info(ndr, NDR_SCALARS, &r->info));
1191 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1193 if (ndr_flags & NDR_BUFFERS) {
1194 NDR_CHECK(ndr_pull_xattr_NTACL_Info(ndr, NDR_BUFFERS, &r->info));
1196 return NDR_ERR_SUCCESS;
1199 _PUBLIC_ void ndr_print_xattr_NTACL(struct ndr_print *ndr, const char *name, const struct xattr_NTACL *r)
1201 ndr_print_struct(ndr, name, "xattr_NTACL");
1202 if (r == NULL) { ndr_print_null(ndr); return; }
1204 ndr_print_uint16(ndr, "version", r->version);
1205 ndr_print_set_switch_value(ndr, &r->info, r->version);
1206 ndr_print_xattr_NTACL_Info(ndr, "info", &r->info);
1210 _PUBLIC_ enum ndr_err_code ndr_push_xattr_sys_acl_hash_wrapper(struct ndr_push *ndr, int ndr_flags, const struct xattr_sys_acl_hash_wrapper *r)
1212 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1213 if (ndr_flags & NDR_SCALARS) {
1214 NDR_CHECK(ndr_push_align(ndr, 8));
1215 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->acl_as_blob));
1216 NDR_CHECK(ndr_push_uid_t(ndr, NDR_SCALARS, r->owner));
1217 NDR_CHECK(ndr_push_gid_t(ndr, NDR_SCALARS, r->group));
1218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mode));
1219 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1221 if (ndr_flags & NDR_BUFFERS) {
1223 return NDR_ERR_SUCCESS;
1226 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_sys_acl_hash_wrapper(struct ndr_pull *ndr, int ndr_flags, struct xattr_sys_acl_hash_wrapper *r)
1228 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1229 if (ndr_flags & NDR_SCALARS) {
1230 NDR_CHECK(ndr_pull_align(ndr, 8));
1231 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->acl_as_blob));
1232 NDR_CHECK(ndr_pull_uid_t(ndr, NDR_SCALARS, &r->owner));
1233 NDR_CHECK(ndr_pull_gid_t(ndr, NDR_SCALARS, &r->group));
1234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mode));
1235 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1237 if (ndr_flags & NDR_BUFFERS) {
1239 return NDR_ERR_SUCCESS;
1242 _PUBLIC_ void ndr_print_xattr_sys_acl_hash_wrapper(struct ndr_print *ndr, const char *name, const struct xattr_sys_acl_hash_wrapper *r)
1244 ndr_print_struct(ndr, name, "xattr_sys_acl_hash_wrapper");
1245 if (r == NULL) { ndr_print_null(ndr); return; }
1247 ndr_print_DATA_BLOB(ndr, "acl_as_blob", r->acl_as_blob);
1248 ndr_print_uid_t(ndr, "owner", r->owner);
1249 ndr_print_gid_t(ndr, "group", r->group);
1250 ndr_print_uint32(ndr, "mode", r->mode);
1254 static enum ndr_err_code ndr_push_xattr_parse_DOSATTRIB(struct ndr_push *ndr, int flags, const struct xattr_parse_DOSATTRIB *r)
1256 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
1257 if (flags & NDR_IN) {
1258 NDR_CHECK(ndr_push_xattr_DOSATTRIB(ndr, NDR_SCALARS, &r->in.x));
1260 if (flags & NDR_OUT) {
1262 return NDR_ERR_SUCCESS;
1265 static enum ndr_err_code ndr_pull_xattr_parse_DOSATTRIB(struct ndr_pull *ndr, int flags, struct xattr_parse_DOSATTRIB *r)
1267 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
1268 if (flags & NDR_IN) {
1269 NDR_CHECK(ndr_pull_xattr_DOSATTRIB(ndr, NDR_SCALARS, &r->in.x));
1271 if (flags & NDR_OUT) {
1273 return NDR_ERR_SUCCESS;
1276 _PUBLIC_ void ndr_print_xattr_parse_DOSATTRIB(struct ndr_print *ndr, const char *name, int flags, const struct xattr_parse_DOSATTRIB *r)
1278 ndr_print_struct(ndr, name, "xattr_parse_DOSATTRIB");
1279 if (r == NULL) { ndr_print_null(ndr); return; }
1281 if (flags & NDR_SET_VALUES) {
1282 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1284 if (flags & NDR_IN) {
1285 ndr_print_struct(ndr, "in", "xattr_parse_DOSATTRIB");
1287 ndr_print_xattr_DOSATTRIB(ndr, "x", &r->in.x);
1290 if (flags & NDR_OUT) {
1291 ndr_print_struct(ndr, "out", "xattr_parse_DOSATTRIB");
1298 static const struct ndr_interface_call xattr_calls[] = {
1300 "xattr_parse_DOSATTRIB",
1301 sizeof(struct xattr_parse_DOSATTRIB),
1302 (ndr_push_flags_fn_t) ndr_push_xattr_parse_DOSATTRIB,
1303 (ndr_pull_flags_fn_t) ndr_pull_xattr_parse_DOSATTRIB,
1304 (ndr_print_function_t) ndr_print_xattr_parse_DOSATTRIB,
1308 { NULL, 0, NULL, NULL, NULL }
1311 static const char * const xattr_endpoint_strings[] = {
1312 "ncacn_np:[\\pipe\\xattr]",
1315 static const struct ndr_interface_string_array xattr_endpoints = {
1317 .names = xattr_endpoint_strings
1320 static const char * const xattr_authservice_strings[] = {
1324 static const struct ndr_interface_string_array xattr_authservices = {
1326 .names = xattr_authservice_strings
1330 const struct ndr_interface_table ndr_table_xattr = {
1333 {0x12345778,0x1234,0xabcd,{0x00,0x01},{0x00,0x00,0x00,0x02}},
1336 .helpstring = NDR_XATTR_HELPSTRING,
1338 .calls = xattr_calls,
1339 .endpoints = &xattr_endpoints,
1340 .authservices = &xattr_authservices