WHATSNEW: Start release notes for Samba 3.5.21.
[Samba.git] / librpc / gen_ndr / ndr_xattr.c
blob5cce8c3a60d6d1e57e970f82e183091387d1ce6e
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "../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 if (ndr_flags & NDR_SCALARS) {
10 NDR_CHECK(ndr_push_align(ndr, 4));
11 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attrib));
12 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14 if (ndr_flags & NDR_BUFFERS) {
16 return NDR_ERR_SUCCESS;
19 static enum ndr_err_code ndr_pull_xattr_DosInfoFFFFCompat(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosInfoFFFFCompat *r)
21 if (ndr_flags & NDR_SCALARS) {
22 NDR_CHECK(ndr_pull_align(ndr, 4));
23 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attrib));
24 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
26 if (ndr_flags & NDR_BUFFERS) {
28 return NDR_ERR_SUCCESS;
31 _PUBLIC_ void ndr_print_xattr_DosInfoFFFFCompat(struct ndr_print *ndr, const char *name, const struct xattr_DosInfoFFFFCompat *r)
33 ndr_print_struct(ndr, name, "xattr_DosInfoFFFFCompat");
34 ndr->depth++;
35 ndr_print_uint32(ndr, "attrib", r->attrib);
36 ndr->depth--;
39 static enum ndr_err_code ndr_push_xattr_DosInfo1(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosInfo1 *r)
41 if (ndr_flags & NDR_SCALARS) {
42 NDR_CHECK(ndr_push_align(ndr, 4));
43 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attrib));
44 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ea_size));
45 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->size));
46 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->alloc_size));
47 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->create_time));
48 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
49 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
51 if (ndr_flags & NDR_BUFFERS) {
53 return NDR_ERR_SUCCESS;
56 static enum ndr_err_code ndr_pull_xattr_DosInfo1(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosInfo1 *r)
58 if (ndr_flags & NDR_SCALARS) {
59 NDR_CHECK(ndr_pull_align(ndr, 4));
60 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attrib));
61 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ea_size));
62 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size));
63 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size));
64 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->create_time));
65 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
66 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
68 if (ndr_flags & NDR_BUFFERS) {
70 return NDR_ERR_SUCCESS;
73 _PUBLIC_ void ndr_print_xattr_DosInfo1(struct ndr_print *ndr, const char *name, const struct xattr_DosInfo1 *r)
75 ndr_print_struct(ndr, name, "xattr_DosInfo1");
76 ndr->depth++;
77 ndr_print_uint32(ndr, "attrib", r->attrib);
78 ndr_print_uint32(ndr, "ea_size", r->ea_size);
79 ndr_print_udlong(ndr, "size", r->size);
80 ndr_print_udlong(ndr, "alloc_size", r->alloc_size);
81 ndr_print_NTTIME(ndr, "create_time", r->create_time);
82 ndr_print_NTTIME(ndr, "change_time", r->change_time);
83 ndr->depth--;
86 static enum ndr_err_code ndr_push_xattr_DosInfo2Old(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosInfo2Old *r)
88 if (ndr_flags & NDR_SCALARS) {
89 NDR_CHECK(ndr_push_align(ndr, 4));
90 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
91 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attrib));
92 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ea_size));
93 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->size));
94 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->alloc_size));
95 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->create_time));
96 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
97 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->write_time));
99 uint32_t _flags_save_string = ndr->flags;
100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
101 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
102 ndr->flags = _flags_save_string;
104 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
106 if (ndr_flags & NDR_BUFFERS) {
108 return NDR_ERR_SUCCESS;
111 static enum ndr_err_code ndr_pull_xattr_DosInfo2Old(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosInfo2Old *r)
113 if (ndr_flags & NDR_SCALARS) {
114 NDR_CHECK(ndr_pull_align(ndr, 4));
115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attrib));
117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ea_size));
118 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size));
119 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size));
120 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->create_time));
121 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
122 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->write_time));
124 uint32_t _flags_save_string = ndr->flags;
125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
126 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
127 ndr->flags = _flags_save_string;
129 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
131 if (ndr_flags & NDR_BUFFERS) {
133 return NDR_ERR_SUCCESS;
136 _PUBLIC_ void ndr_print_xattr_DosInfo2Old(struct ndr_print *ndr, const char *name, const struct xattr_DosInfo2Old *r)
138 ndr_print_struct(ndr, name, "xattr_DosInfo2Old");
139 ndr->depth++;
140 ndr_print_uint32(ndr, "flags", r->flags);
141 ndr_print_uint32(ndr, "attrib", r->attrib);
142 ndr_print_uint32(ndr, "ea_size", r->ea_size);
143 ndr_print_udlong(ndr, "size", r->size);
144 ndr_print_udlong(ndr, "alloc_size", r->alloc_size);
145 ndr_print_NTTIME(ndr, "create_time", r->create_time);
146 ndr_print_NTTIME(ndr, "change_time", r->change_time);
147 ndr_print_NTTIME(ndr, "write_time", r->write_time);
148 ndr_print_string(ndr, "name", r->name);
149 ndr->depth--;
152 static enum ndr_err_code ndr_push_xattr_DosInfoValidFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
155 return NDR_ERR_SUCCESS;
158 static enum ndr_err_code ndr_pull_xattr_DosInfoValidFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
160 uint32_t v;
161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
162 *r = v;
163 return NDR_ERR_SUCCESS;
166 _PUBLIC_ void ndr_print_xattr_DosInfoValidFlags(struct ndr_print *ndr, const char *name, uint32_t r)
168 ndr_print_uint32(ndr, name, r);
169 ndr->depth++;
170 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_ATTRIB", XATTR_DOSINFO_ATTRIB, r);
171 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_EA_SIZE", XATTR_DOSINFO_EA_SIZE, r);
172 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_SIZE", XATTR_DOSINFO_SIZE, r);
173 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_ALLOC_SIZE", XATTR_DOSINFO_ALLOC_SIZE, r);
174 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_CREATE_TIME", XATTR_DOSINFO_CREATE_TIME, r);
175 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "XATTR_DOSINFO_CHANGE_TIME", XATTR_DOSINFO_CHANGE_TIME, r);
176 ndr->depth--;
179 static enum ndr_err_code ndr_push_xattr_DosInfo3(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosInfo3 *r)
181 if (ndr_flags & NDR_SCALARS) {
182 NDR_CHECK(ndr_push_align(ndr, 4));
183 NDR_CHECK(ndr_push_xattr_DosInfoValidFlags(ndr, NDR_SCALARS, r->valid_flags));
184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attrib));
185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ea_size));
186 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->size));
187 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->alloc_size));
188 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->create_time));
189 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
190 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
192 if (ndr_flags & NDR_BUFFERS) {
194 return NDR_ERR_SUCCESS;
197 static enum ndr_err_code ndr_pull_xattr_DosInfo3(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosInfo3 *r)
199 if (ndr_flags & NDR_SCALARS) {
200 NDR_CHECK(ndr_pull_align(ndr, 4));
201 NDR_CHECK(ndr_pull_xattr_DosInfoValidFlags(ndr, NDR_SCALARS, &r->valid_flags));
202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attrib));
203 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ea_size));
204 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size));
205 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size));
206 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->create_time));
207 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
208 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
210 if (ndr_flags & NDR_BUFFERS) {
212 return NDR_ERR_SUCCESS;
215 _PUBLIC_ void ndr_print_xattr_DosInfo3(struct ndr_print *ndr, const char *name, const struct xattr_DosInfo3 *r)
217 ndr_print_struct(ndr, name, "xattr_DosInfo3");
218 ndr->depth++;
219 ndr_print_xattr_DosInfoValidFlags(ndr, "valid_flags", r->valid_flags);
220 ndr_print_uint32(ndr, "attrib", r->attrib);
221 ndr_print_uint32(ndr, "ea_size", r->ea_size);
222 ndr_print_udlong(ndr, "size", r->size);
223 ndr_print_udlong(ndr, "alloc_size", r->alloc_size);
224 ndr_print_NTTIME(ndr, "create_time", r->create_time);
225 ndr_print_NTTIME(ndr, "change_time", r->change_time);
226 ndr->depth--;
229 _PUBLIC_ enum ndr_err_code ndr_push_xattr_DosInfo(struct ndr_push *ndr, int ndr_flags, const union xattr_DosInfo *r)
231 if (ndr_flags & NDR_SCALARS) {
232 int level = ndr_push_get_switch_value(ndr, r);
233 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
234 NDR_CHECK(ndr_push_union_align(ndr, 4));
235 switch (level) {
236 case 0xFFFF: {
237 NDR_CHECK(ndr_push_xattr_DosInfoFFFFCompat(ndr, NDR_SCALARS, &r->compatinfoFFFF));
238 break; }
240 case 1: {
241 NDR_CHECK(ndr_push_xattr_DosInfo1(ndr, NDR_SCALARS, &r->info1));
242 break; }
244 case 2: {
245 NDR_CHECK(ndr_push_xattr_DosInfo2Old(ndr, NDR_SCALARS, &r->oldinfo2));
246 break; }
248 case 3: {
249 NDR_CHECK(ndr_push_xattr_DosInfo3(ndr, NDR_SCALARS, &r->info3));
250 break; }
252 default:
253 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
256 if (ndr_flags & NDR_BUFFERS) {
257 int level = ndr_push_get_switch_value(ndr, r);
258 switch (level) {
259 case 0xFFFF:
260 break;
262 case 1:
263 break;
265 case 2:
266 break;
268 case 3:
269 break;
271 default:
272 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
275 return NDR_ERR_SUCCESS;
278 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_DosInfo(struct ndr_pull *ndr, int ndr_flags, union xattr_DosInfo *r)
280 int level;
281 uint16_t _level;
282 level = ndr_pull_get_switch_value(ndr, r);
283 if (ndr_flags & NDR_SCALARS) {
284 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
285 if (_level != level) {
286 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
288 NDR_CHECK(ndr_pull_union_align(ndr, 4));
289 switch (level) {
290 case 0xFFFF: {
291 NDR_CHECK(ndr_pull_xattr_DosInfoFFFFCompat(ndr, NDR_SCALARS, &r->compatinfoFFFF));
292 break; }
294 case 1: {
295 NDR_CHECK(ndr_pull_xattr_DosInfo1(ndr, NDR_SCALARS, &r->info1));
296 break; }
298 case 2: {
299 NDR_CHECK(ndr_pull_xattr_DosInfo2Old(ndr, NDR_SCALARS, &r->oldinfo2));
300 break; }
302 case 3: {
303 NDR_CHECK(ndr_pull_xattr_DosInfo3(ndr, NDR_SCALARS, &r->info3));
304 break; }
306 default:
307 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
310 if (ndr_flags & NDR_BUFFERS) {
311 switch (level) {
312 case 0xFFFF:
313 break;
315 case 1:
316 break;
318 case 2:
319 break;
321 case 3:
322 break;
324 default:
325 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
328 return NDR_ERR_SUCCESS;
331 _PUBLIC_ void ndr_print_xattr_DosInfo(struct ndr_print *ndr, const char *name, const union xattr_DosInfo *r)
333 int level;
334 level = ndr_print_get_switch_value(ndr, r);
335 ndr_print_union(ndr, name, level, "xattr_DosInfo");
336 switch (level) {
337 case 0xFFFF:
338 ndr_print_xattr_DosInfoFFFFCompat(ndr, "compatinfoFFFF", &r->compatinfoFFFF);
339 break;
341 case 1:
342 ndr_print_xattr_DosInfo1(ndr, "info1", &r->info1);
343 break;
345 case 2:
346 ndr_print_xattr_DosInfo2Old(ndr, "oldinfo2", &r->oldinfo2);
347 break;
349 case 3:
350 ndr_print_xattr_DosInfo3(ndr, "info3", &r->info3);
351 break;
353 default:
354 ndr_print_bad_level(ndr, name, level);
358 _PUBLIC_ enum ndr_err_code ndr_push_xattr_DosAttrib(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosAttrib *r)
360 if (ndr_flags & NDR_SCALARS) {
361 NDR_CHECK(ndr_push_align(ndr, 4));
362 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version));
363 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
364 NDR_CHECK(ndr_push_xattr_DosInfo(ndr, NDR_SCALARS, &r->info));
365 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
367 if (ndr_flags & NDR_BUFFERS) {
369 return NDR_ERR_SUCCESS;
372 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_DosAttrib(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosAttrib *r)
374 if (ndr_flags & NDR_SCALARS) {
375 NDR_CHECK(ndr_pull_align(ndr, 4));
376 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version));
377 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
378 NDR_CHECK(ndr_pull_xattr_DosInfo(ndr, NDR_SCALARS, &r->info));
379 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
381 if (ndr_flags & NDR_BUFFERS) {
383 return NDR_ERR_SUCCESS;
386 _PUBLIC_ void ndr_print_xattr_DosAttrib(struct ndr_print *ndr, const char *name, const struct xattr_DosAttrib *r)
388 ndr_print_struct(ndr, name, "xattr_DosAttrib");
389 ndr->depth++;
390 ndr_print_uint16(ndr, "version", r->version);
391 ndr_print_set_switch_value(ndr, &r->info, r->version);
392 ndr_print_xattr_DosInfo(ndr, "info", &r->info);
393 ndr->depth--;
396 static enum ndr_err_code ndr_push_xattr_EA(struct ndr_push *ndr, int ndr_flags, const struct xattr_EA *r)
398 if (ndr_flags & NDR_SCALARS) {
399 NDR_CHECK(ndr_push_align(ndr, 4));
401 uint32_t _flags_save_string = ndr->flags;
402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
403 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
404 ndr->flags = _flags_save_string;
406 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->value));
407 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
409 if (ndr_flags & NDR_BUFFERS) {
411 return NDR_ERR_SUCCESS;
414 static enum ndr_err_code ndr_pull_xattr_EA(struct ndr_pull *ndr, int ndr_flags, struct xattr_EA *r)
416 if (ndr_flags & NDR_SCALARS) {
417 NDR_CHECK(ndr_pull_align(ndr, 4));
419 uint32_t _flags_save_string = ndr->flags;
420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
421 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
422 ndr->flags = _flags_save_string;
424 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->value));
425 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
427 if (ndr_flags & NDR_BUFFERS) {
429 return NDR_ERR_SUCCESS;
432 _PUBLIC_ void ndr_print_xattr_EA(struct ndr_print *ndr, const char *name, const struct xattr_EA *r)
434 ndr_print_struct(ndr, name, "xattr_EA");
435 ndr->depth++;
436 ndr_print_string(ndr, "name", r->name);
437 ndr_print_DATA_BLOB(ndr, "value", r->value);
438 ndr->depth--;
441 _PUBLIC_ enum ndr_err_code ndr_push_xattr_DosEAs(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosEAs *r)
443 uint32_t cntr_eas_1;
444 if (ndr_flags & NDR_SCALARS) {
445 NDR_CHECK(ndr_push_align(ndr, 5));
446 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->num_eas));
447 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eas));
448 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
450 if (ndr_flags & NDR_BUFFERS) {
451 if (r->eas) {
452 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_eas));
453 for (cntr_eas_1 = 0; cntr_eas_1 < r->num_eas; cntr_eas_1++) {
454 NDR_CHECK(ndr_push_xattr_EA(ndr, NDR_SCALARS, &r->eas[cntr_eas_1]));
458 return NDR_ERR_SUCCESS;
461 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_DosEAs(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosEAs *r)
463 uint32_t _ptr_eas;
464 uint32_t size_eas_1 = 0;
465 uint32_t cntr_eas_1;
466 TALLOC_CTX *_mem_save_eas_0;
467 TALLOC_CTX *_mem_save_eas_1;
468 if (ndr_flags & NDR_SCALARS) {
469 NDR_CHECK(ndr_pull_align(ndr, 5));
470 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->num_eas));
471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eas));
472 if (_ptr_eas) {
473 NDR_PULL_ALLOC(ndr, r->eas);
474 } else {
475 r->eas = NULL;
477 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
479 if (ndr_flags & NDR_BUFFERS) {
480 if (r->eas) {
481 _mem_save_eas_0 = NDR_PULL_GET_MEM_CTX(ndr);
482 NDR_PULL_SET_MEM_CTX(ndr, r->eas, 0);
483 NDR_CHECK(ndr_pull_array_size(ndr, &r->eas));
484 size_eas_1 = ndr_get_array_size(ndr, &r->eas);
485 NDR_PULL_ALLOC_N(ndr, r->eas, size_eas_1);
486 _mem_save_eas_1 = NDR_PULL_GET_MEM_CTX(ndr);
487 NDR_PULL_SET_MEM_CTX(ndr, r->eas, 0);
488 for (cntr_eas_1 = 0; cntr_eas_1 < size_eas_1; cntr_eas_1++) {
489 NDR_CHECK(ndr_pull_xattr_EA(ndr, NDR_SCALARS, &r->eas[cntr_eas_1]));
491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eas_1, 0);
492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eas_0, 0);
494 if (r->eas) {
495 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eas, r->num_eas));
498 return NDR_ERR_SUCCESS;
501 _PUBLIC_ void ndr_print_xattr_DosEAs(struct ndr_print *ndr, const char *name, const struct xattr_DosEAs *r)
503 uint32_t cntr_eas_1;
504 ndr_print_struct(ndr, name, "xattr_DosEAs");
505 ndr->depth++;
506 ndr_print_uint16(ndr, "num_eas", r->num_eas);
507 ndr_print_ptr(ndr, "eas", r->eas);
508 ndr->depth++;
509 if (r->eas) {
510 ndr->print(ndr, "%s: ARRAY(%d)", "eas", (int)r->num_eas);
511 ndr->depth++;
512 for (cntr_eas_1=0;cntr_eas_1<r->num_eas;cntr_eas_1++) {
513 char *idx_1=NULL;
514 if (asprintf(&idx_1, "[%d]", cntr_eas_1) != -1) {
515 ndr_print_xattr_EA(ndr, "eas", &r->eas[cntr_eas_1]);
516 free(idx_1);
519 ndr->depth--;
521 ndr->depth--;
522 ndr->depth--;
525 _PUBLIC_ enum ndr_err_code ndr_push_tdb_xattrs(struct ndr_push *ndr, int ndr_flags, const struct tdb_xattrs *r)
527 uint32_t cntr_eas_0;
528 if (ndr_flags & NDR_SCALARS) {
529 NDR_CHECK(ndr_push_align(ndr, 4));
530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_eas));
531 for (cntr_eas_0 = 0; cntr_eas_0 < r->num_eas; cntr_eas_0++) {
532 NDR_CHECK(ndr_push_xattr_EA(ndr, NDR_SCALARS, &r->eas[cntr_eas_0]));
534 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
536 if (ndr_flags & NDR_BUFFERS) {
538 return NDR_ERR_SUCCESS;
541 _PUBLIC_ enum ndr_err_code ndr_pull_tdb_xattrs(struct ndr_pull *ndr, int ndr_flags, struct tdb_xattrs *r)
543 uint32_t size_eas_0 = 0;
544 uint32_t cntr_eas_0;
545 TALLOC_CTX *_mem_save_eas_0;
546 if (ndr_flags & NDR_SCALARS) {
547 NDR_CHECK(ndr_pull_align(ndr, 4));
548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_eas));
549 size_eas_0 = r->num_eas;
550 NDR_PULL_ALLOC_N(ndr, r->eas, size_eas_0);
551 _mem_save_eas_0 = NDR_PULL_GET_MEM_CTX(ndr);
552 NDR_PULL_SET_MEM_CTX(ndr, r->eas, 0);
553 for (cntr_eas_0 = 0; cntr_eas_0 < size_eas_0; cntr_eas_0++) {
554 NDR_CHECK(ndr_pull_xattr_EA(ndr, NDR_SCALARS, &r->eas[cntr_eas_0]));
556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eas_0, 0);
557 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
559 if (ndr_flags & NDR_BUFFERS) {
561 return NDR_ERR_SUCCESS;
564 _PUBLIC_ void ndr_print_tdb_xattrs(struct ndr_print *ndr, const char *name, const struct tdb_xattrs *r)
566 uint32_t cntr_eas_0;
567 ndr_print_struct(ndr, name, "tdb_xattrs");
568 ndr->depth++;
569 ndr_print_uint32(ndr, "num_eas", r->num_eas);
570 ndr->print(ndr, "%s: ARRAY(%d)", "eas", (int)r->num_eas);
571 ndr->depth++;
572 for (cntr_eas_0=0;cntr_eas_0<r->num_eas;cntr_eas_0++) {
573 char *idx_0=NULL;
574 if (asprintf(&idx_0, "[%d]", cntr_eas_0) != -1) {
575 ndr_print_xattr_EA(ndr, "eas", &r->eas[cntr_eas_0]);
576 free(idx_0);
579 ndr->depth--;
580 ndr->depth--;
583 static enum ndr_err_code ndr_push_xattr_DosStream(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosStream *r)
585 if (ndr_flags & NDR_SCALARS) {
586 NDR_CHECK(ndr_push_align(ndr, 4));
587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
588 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->size));
589 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->alloc_size));
591 uint32_t _flags_save_string = ndr->flags;
592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
593 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
594 ndr->flags = _flags_save_string;
596 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
598 if (ndr_flags & NDR_BUFFERS) {
600 return NDR_ERR_SUCCESS;
603 static enum ndr_err_code ndr_pull_xattr_DosStream(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosStream *r)
605 if (ndr_flags & NDR_SCALARS) {
606 NDR_CHECK(ndr_pull_align(ndr, 4));
607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
608 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size));
609 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size));
611 uint32_t _flags_save_string = ndr->flags;
612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
613 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
614 ndr->flags = _flags_save_string;
616 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
618 if (ndr_flags & NDR_BUFFERS) {
620 return NDR_ERR_SUCCESS;
623 _PUBLIC_ void ndr_print_xattr_DosStream(struct ndr_print *ndr, const char *name, const struct xattr_DosStream *r)
625 ndr_print_struct(ndr, name, "xattr_DosStream");
626 ndr->depth++;
627 ndr_print_uint32(ndr, "flags", r->flags);
628 ndr_print_udlong(ndr, "size", r->size);
629 ndr_print_udlong(ndr, "alloc_size", r->alloc_size);
630 ndr_print_string(ndr, "name", r->name);
631 ndr->depth--;
634 _PUBLIC_ enum ndr_err_code ndr_push_xattr_DosStreams(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosStreams *r)
636 uint32_t cntr_streams_1;
637 if (ndr_flags & NDR_SCALARS) {
638 NDR_CHECK(ndr_push_align(ndr, 5));
639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_streams));
640 NDR_CHECK(ndr_push_unique_ptr(ndr, r->streams));
641 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
643 if (ndr_flags & NDR_BUFFERS) {
644 if (r->streams) {
645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_streams));
646 for (cntr_streams_1 = 0; cntr_streams_1 < r->num_streams; cntr_streams_1++) {
647 NDR_CHECK(ndr_push_xattr_DosStream(ndr, NDR_SCALARS, &r->streams[cntr_streams_1]));
651 return NDR_ERR_SUCCESS;
654 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_DosStreams(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosStreams *r)
656 uint32_t _ptr_streams;
657 uint32_t size_streams_1 = 0;
658 uint32_t cntr_streams_1;
659 TALLOC_CTX *_mem_save_streams_0;
660 TALLOC_CTX *_mem_save_streams_1;
661 if (ndr_flags & NDR_SCALARS) {
662 NDR_CHECK(ndr_pull_align(ndr, 5));
663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_streams));
664 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_streams));
665 if (_ptr_streams) {
666 NDR_PULL_ALLOC(ndr, r->streams);
667 } else {
668 r->streams = NULL;
670 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
672 if (ndr_flags & NDR_BUFFERS) {
673 if (r->streams) {
674 _mem_save_streams_0 = NDR_PULL_GET_MEM_CTX(ndr);
675 NDR_PULL_SET_MEM_CTX(ndr, r->streams, 0);
676 NDR_CHECK(ndr_pull_array_size(ndr, &r->streams));
677 size_streams_1 = ndr_get_array_size(ndr, &r->streams);
678 NDR_PULL_ALLOC_N(ndr, r->streams, size_streams_1);
679 _mem_save_streams_1 = NDR_PULL_GET_MEM_CTX(ndr);
680 NDR_PULL_SET_MEM_CTX(ndr, r->streams, 0);
681 for (cntr_streams_1 = 0; cntr_streams_1 < size_streams_1; cntr_streams_1++) {
682 NDR_CHECK(ndr_pull_xattr_DosStream(ndr, NDR_SCALARS, &r->streams[cntr_streams_1]));
684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_streams_1, 0);
685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_streams_0, 0);
687 if (r->streams) {
688 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->streams, r->num_streams));
691 return NDR_ERR_SUCCESS;
694 _PUBLIC_ void ndr_print_xattr_DosStreams(struct ndr_print *ndr, const char *name, const struct xattr_DosStreams *r)
696 uint32_t cntr_streams_1;
697 ndr_print_struct(ndr, name, "xattr_DosStreams");
698 ndr->depth++;
699 ndr_print_uint32(ndr, "num_streams", r->num_streams);
700 ndr_print_ptr(ndr, "streams", r->streams);
701 ndr->depth++;
702 if (r->streams) {
703 ndr->print(ndr, "%s: ARRAY(%d)", "streams", (int)r->num_streams);
704 ndr->depth++;
705 for (cntr_streams_1=0;cntr_streams_1<r->num_streams;cntr_streams_1++) {
706 char *idx_1=NULL;
707 if (asprintf(&idx_1, "[%d]", cntr_streams_1) != -1) {
708 ndr_print_xattr_DosStream(ndr, "streams", &r->streams[cntr_streams_1]);
709 free(idx_1);
712 ndr->depth--;
714 ndr->depth--;
715 ndr->depth--;
718 _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)
720 if (ndr_flags & NDR_SCALARS) {
721 NDR_CHECK(ndr_push_align(ndr, 5));
722 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
723 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->hash, 16));
724 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
726 if (ndr_flags & NDR_BUFFERS) {
727 if (r->sd) {
728 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
731 return NDR_ERR_SUCCESS;
734 _PUBLIC_ enum ndr_err_code ndr_pull_security_descriptor_hash_v2(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor_hash_v2 *r)
736 uint32_t _ptr_sd;
737 TALLOC_CTX *_mem_save_sd_0;
738 uint32_t size_hash_0 = 0;
739 if (ndr_flags & NDR_SCALARS) {
740 NDR_CHECK(ndr_pull_align(ndr, 5));
741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
742 if (_ptr_sd) {
743 NDR_PULL_ALLOC(ndr, r->sd);
744 } else {
745 r->sd = NULL;
747 size_hash_0 = 16;
748 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, size_hash_0));
749 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
751 if (ndr_flags & NDR_BUFFERS) {
752 if (r->sd) {
753 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
754 NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
755 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
759 return NDR_ERR_SUCCESS;
762 _PUBLIC_ void ndr_print_security_descriptor_hash_v2(struct ndr_print *ndr, const char *name, const struct security_descriptor_hash_v2 *r)
764 ndr_print_struct(ndr, name, "security_descriptor_hash_v2");
765 ndr->depth++;
766 ndr_print_ptr(ndr, "sd", r->sd);
767 ndr->depth++;
768 if (r->sd) {
769 ndr_print_security_descriptor(ndr, "sd", r->sd);
771 ndr->depth--;
772 ndr_print_array_uint8(ndr, "hash", r->hash, 16);
773 ndr->depth--;
776 _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)
778 if (ndr_flags & NDR_SCALARS) {
779 NDR_CHECK(ndr_push_align(ndr, 5));
780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
781 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hash_type));
782 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->hash, 64));
783 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
785 if (ndr_flags & NDR_BUFFERS) {
786 if (r->sd) {
787 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
790 return NDR_ERR_SUCCESS;
793 _PUBLIC_ enum ndr_err_code ndr_pull_security_descriptor_hash_v3(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor_hash_v3 *r)
795 uint32_t _ptr_sd;
796 TALLOC_CTX *_mem_save_sd_0;
797 uint32_t size_hash_0 = 0;
798 if (ndr_flags & NDR_SCALARS) {
799 NDR_CHECK(ndr_pull_align(ndr, 5));
800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
801 if (_ptr_sd) {
802 NDR_PULL_ALLOC(ndr, r->sd);
803 } else {
804 r->sd = NULL;
806 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hash_type));
807 size_hash_0 = 64;
808 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, size_hash_0));
809 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
811 if (ndr_flags & NDR_BUFFERS) {
812 if (r->sd) {
813 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
814 NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
815 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
819 return NDR_ERR_SUCCESS;
822 _PUBLIC_ void ndr_print_security_descriptor_hash_v3(struct ndr_print *ndr, const char *name, const struct security_descriptor_hash_v3 *r)
824 ndr_print_struct(ndr, name, "security_descriptor_hash_v3");
825 ndr->depth++;
826 ndr_print_ptr(ndr, "sd", r->sd);
827 ndr->depth++;
828 if (r->sd) {
829 ndr_print_security_descriptor(ndr, "sd", r->sd);
831 ndr->depth--;
832 ndr_print_uint16(ndr, "hash_type", r->hash_type);
833 ndr_print_array_uint8(ndr, "hash", r->hash, 64);
834 ndr->depth--;
837 static enum ndr_err_code ndr_push_xattr_NTACL_Info(struct ndr_push *ndr, int ndr_flags, const union xattr_NTACL_Info *r)
839 if (ndr_flags & NDR_SCALARS) {
840 int level = ndr_push_get_switch_value(ndr, r);
841 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
842 NDR_CHECK(ndr_push_union_align(ndr, 5));
843 switch (level) {
844 case 1: {
845 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
846 break; }
848 case 2: {
849 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd_hs2));
850 break; }
852 case 3: {
853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd_hs3));
854 break; }
856 default:
857 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
860 if (ndr_flags & NDR_BUFFERS) {
861 int level = ndr_push_get_switch_value(ndr, r);
862 switch (level) {
863 case 1:
864 if (r->sd) {
865 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
867 break;
869 case 2:
870 if (r->sd_hs2) {
871 NDR_CHECK(ndr_push_security_descriptor_hash_v2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs2));
873 break;
875 case 3:
876 if (r->sd_hs3) {
877 NDR_CHECK(ndr_push_security_descriptor_hash_v3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs3));
879 break;
881 default:
882 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
885 return NDR_ERR_SUCCESS;
888 static enum ndr_err_code ndr_pull_xattr_NTACL_Info(struct ndr_pull *ndr, int ndr_flags, union xattr_NTACL_Info *r)
890 int level;
891 uint16_t _level;
892 TALLOC_CTX *_mem_save_sd_0;
893 uint32_t _ptr_sd;
894 TALLOC_CTX *_mem_save_sd_hs2_0;
895 uint32_t _ptr_sd_hs2;
896 TALLOC_CTX *_mem_save_sd_hs3_0;
897 uint32_t _ptr_sd_hs3;
898 level = ndr_pull_get_switch_value(ndr, r);
899 if (ndr_flags & NDR_SCALARS) {
900 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
901 if (_level != level) {
902 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
904 NDR_CHECK(ndr_pull_union_align(ndr, 5));
905 switch (level) {
906 case 1: {
907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
908 if (_ptr_sd) {
909 NDR_PULL_ALLOC(ndr, r->sd);
910 } else {
911 r->sd = NULL;
913 break; }
915 case 2: {
916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd_hs2));
917 if (_ptr_sd_hs2) {
918 NDR_PULL_ALLOC(ndr, r->sd_hs2);
919 } else {
920 r->sd_hs2 = NULL;
922 break; }
924 case 3: {
925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd_hs3));
926 if (_ptr_sd_hs3) {
927 NDR_PULL_ALLOC(ndr, r->sd_hs3);
928 } else {
929 r->sd_hs3 = NULL;
931 break; }
933 default:
934 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
937 if (ndr_flags & NDR_BUFFERS) {
938 switch (level) {
939 case 1:
940 if (r->sd) {
941 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
942 NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
943 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
946 break;
948 case 2:
949 if (r->sd_hs2) {
950 _mem_save_sd_hs2_0 = NDR_PULL_GET_MEM_CTX(ndr);
951 NDR_PULL_SET_MEM_CTX(ndr, r->sd_hs2, 0);
952 NDR_CHECK(ndr_pull_security_descriptor_hash_v2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs2));
953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_hs2_0, 0);
955 break;
957 case 3:
958 if (r->sd_hs3) {
959 _mem_save_sd_hs3_0 = NDR_PULL_GET_MEM_CTX(ndr);
960 NDR_PULL_SET_MEM_CTX(ndr, r->sd_hs3, 0);
961 NDR_CHECK(ndr_pull_security_descriptor_hash_v3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd_hs3));
962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_hs3_0, 0);
964 break;
966 default:
967 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
970 return NDR_ERR_SUCCESS;
973 _PUBLIC_ void ndr_print_xattr_NTACL_Info(struct ndr_print *ndr, const char *name, const union xattr_NTACL_Info *r)
975 int level;
976 level = ndr_print_get_switch_value(ndr, r);
977 ndr_print_union(ndr, name, level, "xattr_NTACL_Info");
978 switch (level) {
979 case 1:
980 ndr_print_ptr(ndr, "sd", r->sd);
981 ndr->depth++;
982 if (r->sd) {
983 ndr_print_security_descriptor(ndr, "sd", r->sd);
985 ndr->depth--;
986 break;
988 case 2:
989 ndr_print_ptr(ndr, "sd_hs2", r->sd_hs2);
990 ndr->depth++;
991 if (r->sd_hs2) {
992 ndr_print_security_descriptor_hash_v2(ndr, "sd_hs2", r->sd_hs2);
994 ndr->depth--;
995 break;
997 case 3:
998 ndr_print_ptr(ndr, "sd_hs3", r->sd_hs3);
999 ndr->depth++;
1000 if (r->sd_hs3) {
1001 ndr_print_security_descriptor_hash_v3(ndr, "sd_hs3", r->sd_hs3);
1003 ndr->depth--;
1004 break;
1006 default:
1007 ndr_print_bad_level(ndr, name, level);
1011 _PUBLIC_ enum ndr_err_code ndr_push_xattr_NTACL(struct ndr_push *ndr, int ndr_flags, const struct xattr_NTACL *r)
1013 if (ndr_flags & NDR_SCALARS) {
1014 NDR_CHECK(ndr_push_align(ndr, 5));
1015 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version));
1016 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
1017 NDR_CHECK(ndr_push_xattr_NTACL_Info(ndr, NDR_SCALARS, &r->info));
1018 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1020 if (ndr_flags & NDR_BUFFERS) {
1021 NDR_CHECK(ndr_push_xattr_NTACL_Info(ndr, NDR_BUFFERS, &r->info));
1023 return NDR_ERR_SUCCESS;
1026 _PUBLIC_ enum ndr_err_code ndr_pull_xattr_NTACL(struct ndr_pull *ndr, int ndr_flags, struct xattr_NTACL *r)
1028 if (ndr_flags & NDR_SCALARS) {
1029 NDR_CHECK(ndr_pull_align(ndr, 5));
1030 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version));
1031 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
1032 NDR_CHECK(ndr_pull_xattr_NTACL_Info(ndr, NDR_SCALARS, &r->info));
1033 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1035 if (ndr_flags & NDR_BUFFERS) {
1036 NDR_CHECK(ndr_pull_xattr_NTACL_Info(ndr, NDR_BUFFERS, &r->info));
1038 return NDR_ERR_SUCCESS;
1041 _PUBLIC_ void ndr_print_xattr_NTACL(struct ndr_print *ndr, const char *name, const struct xattr_NTACL *r)
1043 ndr_print_struct(ndr, name, "xattr_NTACL");
1044 ndr->depth++;
1045 ndr_print_uint16(ndr, "version", r->version);
1046 ndr_print_set_switch_value(ndr, &r->info, r->version);
1047 ndr_print_xattr_NTACL_Info(ndr, "info", &r->info);
1048 ndr->depth--;
1051 static enum ndr_err_code ndr_push_xattr_parse_DOSATTRIB(struct ndr_push *ndr, int flags, const struct xattr_parse_DOSATTRIB *r)
1053 if (flags & NDR_IN) {
1054 NDR_CHECK(ndr_push_xattr_DOSATTRIB(ndr, NDR_SCALARS, &r->in.x));
1056 if (flags & NDR_OUT) {
1058 return NDR_ERR_SUCCESS;
1061 static enum ndr_err_code ndr_pull_xattr_parse_DOSATTRIB(struct ndr_pull *ndr, int flags, struct xattr_parse_DOSATTRIB *r)
1063 if (flags & NDR_IN) {
1064 NDR_CHECK(ndr_pull_xattr_DOSATTRIB(ndr, NDR_SCALARS, &r->in.x));
1066 if (flags & NDR_OUT) {
1068 return NDR_ERR_SUCCESS;
1071 _PUBLIC_ void ndr_print_xattr_parse_DOSATTRIB(struct ndr_print *ndr, const char *name, int flags, const struct xattr_parse_DOSATTRIB *r)
1073 ndr_print_struct(ndr, name, "xattr_parse_DOSATTRIB");
1074 ndr->depth++;
1075 if (flags & NDR_SET_VALUES) {
1076 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1078 if (flags & NDR_IN) {
1079 ndr_print_struct(ndr, "in", "xattr_parse_DOSATTRIB");
1080 ndr->depth++;
1081 ndr_print_xattr_DOSATTRIB(ndr, "x", &r->in.x);
1082 ndr->depth--;
1084 if (flags & NDR_OUT) {
1085 ndr_print_struct(ndr, "out", "xattr_parse_DOSATTRIB");
1086 ndr->depth++;
1087 ndr->depth--;
1089 ndr->depth--;
1092 static const struct ndr_interface_call xattr_calls[] = {
1094 "xattr_parse_DOSATTRIB",
1095 sizeof(struct xattr_parse_DOSATTRIB),
1096 (ndr_push_flags_fn_t) ndr_push_xattr_parse_DOSATTRIB,
1097 (ndr_pull_flags_fn_t) ndr_pull_xattr_parse_DOSATTRIB,
1098 (ndr_print_function_t) ndr_print_xattr_parse_DOSATTRIB,
1099 false,
1101 { NULL, 0, NULL, NULL, NULL, false }
1104 static const char * const xattr_endpoint_strings[] = {
1105 "ncacn_np:[\\pipe\\xattr]",
1108 static const struct ndr_interface_string_array xattr_endpoints = {
1109 .count = 1,
1110 .names = xattr_endpoint_strings
1113 static const char * const xattr_authservice_strings[] = {
1114 "host",
1117 static const struct ndr_interface_string_array xattr_authservices = {
1118 .count = 1,
1119 .names = xattr_authservice_strings
1123 const struct ndr_interface_table ndr_table_xattr = {
1124 .name = "xattr",
1125 .syntax_id = {
1126 {0x12345778,0x1234,0xabcd,{0x00,0x01},{0x00,0x00,0x00,0x02}},
1127 NDR_XATTR_VERSION
1129 .helpstring = NDR_XATTR_HELPSTRING,
1130 .num_calls = 1,
1131 .calls = xattr_calls,
1132 .endpoints = &xattr_endpoints,
1133 .authservices = &xattr_authservices