1 /* parser auto-generated by pidl */
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");
35 ndr_print_uint32(ndr
, "attrib", r
->attrib
);
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");
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
);
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");
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
);
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
)
161 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &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
);
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
);
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");
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
);
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));
237 NDR_CHECK(ndr_push_xattr_DosInfoFFFFCompat(ndr
, NDR_SCALARS
, &r
->compatinfoFFFF
));
241 NDR_CHECK(ndr_push_xattr_DosInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
245 NDR_CHECK(ndr_push_xattr_DosInfo2Old(ndr
, NDR_SCALARS
, &r
->oldinfo2
));
249 NDR_CHECK(ndr_push_xattr_DosInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
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
);
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
)
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));
291 NDR_CHECK(ndr_pull_xattr_DosInfoFFFFCompat(ndr
, NDR_SCALARS
, &r
->compatinfoFFFF
));
295 NDR_CHECK(ndr_pull_xattr_DosInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
299 NDR_CHECK(ndr_pull_xattr_DosInfo2Old(ndr
, NDR_SCALARS
, &r
->oldinfo2
));
303 NDR_CHECK(ndr_pull_xattr_DosInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
307 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
310 if (ndr_flags
& NDR_BUFFERS
) {
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
)
334 level
= ndr_print_get_switch_value(ndr
, r
);
335 ndr_print_union(ndr
, name
, level
, "xattr_DosInfo");
338 ndr_print_xattr_DosInfoFFFFCompat(ndr
, "compatinfoFFFF", &r
->compatinfoFFFF
);
342 ndr_print_xattr_DosInfo1(ndr
, "info1", &r
->info1
);
346 ndr_print_xattr_DosInfo2Old(ndr
, "oldinfo2", &r
->oldinfo2
);
350 ndr_print_xattr_DosInfo3(ndr
, "info3", &r
->info3
);
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");
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
);
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");
436 ndr_print_string(ndr
, "name", r
->name
);
437 ndr_print_DATA_BLOB(ndr
, "value", r
->value
);
441 _PUBLIC_
enum ndr_err_code
ndr_push_xattr_DosEAs(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_DosEAs
*r
)
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
) {
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
)
464 uint32_t size_eas_1
= 0;
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
));
473 NDR_PULL_ALLOC(ndr
, r
->eas
);
477 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
479 if (ndr_flags
& NDR_BUFFERS
) {
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);
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
)
504 ndr_print_struct(ndr
, name
, "xattr_DosEAs");
506 ndr_print_uint16(ndr
, "num_eas", r
->num_eas
);
507 ndr_print_ptr(ndr
, "eas", r
->eas
);
510 ndr
->print(ndr
, "%s: ARRAY(%d)", "eas", (int)r
->num_eas
);
512 for (cntr_eas_1
=0;cntr_eas_1
<r
->num_eas
;cntr_eas_1
++) {
514 if (asprintf(&idx_1
, "[%d]", cntr_eas_1
) != -1) {
515 ndr_print_xattr_EA(ndr
, "eas", &r
->eas
[cntr_eas_1
]);
525 _PUBLIC_
enum ndr_err_code
ndr_push_tdb_xattrs(struct ndr_push
*ndr
, int ndr_flags
, const struct tdb_xattrs
*r
)
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;
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
)
567 ndr_print_struct(ndr
, name
, "tdb_xattrs");
569 ndr_print_uint32(ndr
, "num_eas", r
->num_eas
);
570 ndr
->print(ndr
, "%s: ARRAY(%d)", "eas", (int)r
->num_eas
);
572 for (cntr_eas_0
=0;cntr_eas_0
<r
->num_eas
;cntr_eas_0
++) {
574 if (asprintf(&idx_0
, "[%d]", cntr_eas_0
) != -1) {
575 ndr_print_xattr_EA(ndr
, "eas", &r
->eas
[cntr_eas_0
]);
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");
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
);
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
) {
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
));
666 NDR_PULL_ALLOC(ndr
, r
->streams
);
670 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
672 if (ndr_flags
& NDR_BUFFERS
) {
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);
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");
699 ndr_print_uint32(ndr
, "num_streams", r
->num_streams
);
700 ndr_print_ptr(ndr
, "streams", r
->streams
);
703 ndr
->print(ndr
, "%s: ARRAY(%d)", "streams", (int)r
->num_streams
);
705 for (cntr_streams_1
=0;cntr_streams_1
<r
->num_streams
;cntr_streams_1
++) {
707 if (asprintf(&idx_1
, "[%d]", cntr_streams_1
) != -1) {
708 ndr_print_xattr_DosStream(ndr
, "streams", &r
->streams
[cntr_streams_1
]);
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
) {
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
)
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
));
743 NDR_PULL_ALLOC(ndr
, r
->sd
);
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
) {
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");
766 ndr_print_ptr(ndr
, "sd", r
->sd
);
769 ndr_print_security_descriptor(ndr
, "sd", r
->sd
);
772 ndr_print_array_uint8(ndr
, "hash", r
->hash
, 16);
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
) {
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
)
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
));
802 NDR_PULL_ALLOC(ndr
, r
->sd
);
806 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->hash_type
));
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
) {
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");
826 ndr_print_ptr(ndr
, "sd", r
->sd
);
829 ndr_print_security_descriptor(ndr
, "sd", r
->sd
);
832 ndr_print_uint16(ndr
, "hash_type", r
->hash_type
);
833 ndr_print_array_uint8(ndr
, "hash", r
->hash
, 64);
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));
845 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sd
));
849 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sd_hs2
));
853 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sd_hs3
));
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
);
865 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd
));
871 NDR_CHECK(ndr_push_security_descriptor_hash_v2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd_hs2
));
877 NDR_CHECK(ndr_push_security_descriptor_hash_v3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd_hs3
));
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
)
892 TALLOC_CTX
*_mem_save_sd_0
;
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));
907 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sd
));
909 NDR_PULL_ALLOC(ndr
, r
->sd
);
916 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sd_hs2
));
918 NDR_PULL_ALLOC(ndr
, r
->sd_hs2
);
925 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sd_hs3
));
927 NDR_PULL_ALLOC(ndr
, r
->sd_hs3
);
934 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
937 if (ndr_flags
& NDR_BUFFERS
) {
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);
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);
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);
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
)
976 level
= ndr_print_get_switch_value(ndr
, r
);
977 ndr_print_union(ndr
, name
, level
, "xattr_NTACL_Info");
980 ndr_print_ptr(ndr
, "sd", r
->sd
);
983 ndr_print_security_descriptor(ndr
, "sd", r
->sd
);
989 ndr_print_ptr(ndr
, "sd_hs2", r
->sd_hs2
);
992 ndr_print_security_descriptor_hash_v2(ndr
, "sd_hs2", r
->sd_hs2
);
998 ndr_print_ptr(ndr
, "sd_hs3", r
->sd_hs3
);
1001 ndr_print_security_descriptor_hash_v3(ndr
, "sd_hs3", r
->sd_hs3
);
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");
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
);
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");
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");
1081 ndr_print_xattr_DOSATTRIB(ndr
, "x", &r
->in
.x
);
1084 if (flags
& NDR_OUT
) {
1085 ndr_print_struct(ndr
, "out", "xattr_parse_DOSATTRIB");
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
,
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
= {
1110 .names
= xattr_endpoint_strings
1113 static const char * const xattr_authservice_strings
[] = {
1117 static const struct ndr_interface_string_array xattr_authservices
= {
1119 .names
= xattr_authservice_strings
1123 const struct ndr_interface_table ndr_table_xattr
= {
1126 {0x12345778,0x1234,0xabcd,{0x00,0x01},{0x00,0x00,0x00,0x02}},
1129 .helpstring
= NDR_XATTR_HELPSTRING
,
1131 .calls
= xattr_calls
,
1132 .endpoints
= &xattr_endpoints
,
1133 .authservices
= &xattr_authservices