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_DosInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_DosInfo1
*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_uint32(ndr
, NDR_SCALARS
, r
->ea_size
));
13 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->size
));
14 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->alloc_size
));
15 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->create_time
));
16 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->change_time
));
18 if (ndr_flags
& NDR_BUFFERS
) {
20 return NDR_ERR_SUCCESS
;
23 static enum ndr_err_code
ndr_pull_xattr_DosInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct xattr_DosInfo1
*r
)
25 if (ndr_flags
& NDR_SCALARS
) {
26 NDR_CHECK(ndr_pull_align(ndr
, 4));
27 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attrib
));
28 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ea_size
));
29 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->size
));
30 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->alloc_size
));
31 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->create_time
));
32 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->change_time
));
34 if (ndr_flags
& NDR_BUFFERS
) {
36 return NDR_ERR_SUCCESS
;
39 _PUBLIC_
void ndr_print_xattr_DosInfo1(struct ndr_print
*ndr
, const char *name
, const struct xattr_DosInfo1
*r
)
41 ndr_print_struct(ndr
, name
, "xattr_DosInfo1");
43 ndr_print_uint32(ndr
, "attrib", r
->attrib
);
44 ndr_print_uint32(ndr
, "ea_size", r
->ea_size
);
45 ndr_print_udlong(ndr
, "size", r
->size
);
46 ndr_print_udlong(ndr
, "alloc_size", r
->alloc_size
);
47 ndr_print_NTTIME(ndr
, "create_time", r
->create_time
);
48 ndr_print_NTTIME(ndr
, "change_time", r
->change_time
);
52 static enum ndr_err_code
ndr_push_xattr_DosInfo2Old(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_DosInfo2Old
*r
)
54 if (ndr_flags
& NDR_SCALARS
) {
55 NDR_CHECK(ndr_push_align(ndr
, 4));
56 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
57 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attrib
));
58 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ea_size
));
59 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->size
));
60 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->alloc_size
));
61 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->create_time
));
62 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->change_time
));
63 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->write_time
));
65 uint32_t _flags_save_string
= ndr
->flags
;
66 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_UTF8
|LIBNDR_FLAG_STR_NULLTERM
);
67 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
68 ndr
->flags
= _flags_save_string
;
71 if (ndr_flags
& NDR_BUFFERS
) {
73 return NDR_ERR_SUCCESS
;
76 static enum ndr_err_code
ndr_pull_xattr_DosInfo2Old(struct ndr_pull
*ndr
, int ndr_flags
, struct xattr_DosInfo2Old
*r
)
78 if (ndr_flags
& NDR_SCALARS
) {
79 NDR_CHECK(ndr_pull_align(ndr
, 4));
80 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
81 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attrib
));
82 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ea_size
));
83 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->size
));
84 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->alloc_size
));
85 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->create_time
));
86 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->change_time
));
87 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->write_time
));
89 uint32_t _flags_save_string
= ndr
->flags
;
90 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_UTF8
|LIBNDR_FLAG_STR_NULLTERM
);
91 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
92 ndr
->flags
= _flags_save_string
;
95 if (ndr_flags
& NDR_BUFFERS
) {
97 return NDR_ERR_SUCCESS
;
100 _PUBLIC_
void ndr_print_xattr_DosInfo2Old(struct ndr_print
*ndr
, const char *name
, const struct xattr_DosInfo2Old
*r
)
102 ndr_print_struct(ndr
, name
, "xattr_DosInfo2Old");
104 ndr_print_uint32(ndr
, "flags", r
->flags
);
105 ndr_print_uint32(ndr
, "attrib", r
->attrib
);
106 ndr_print_uint32(ndr
, "ea_size", r
->ea_size
);
107 ndr_print_udlong(ndr
, "size", r
->size
);
108 ndr_print_udlong(ndr
, "alloc_size", r
->alloc_size
);
109 ndr_print_NTTIME(ndr
, "create_time", r
->create_time
);
110 ndr_print_NTTIME(ndr
, "change_time", r
->change_time
);
111 ndr_print_NTTIME(ndr
, "write_time", r
->write_time
);
112 ndr_print_string(ndr
, "name", r
->name
);
116 static enum ndr_err_code
ndr_push_xattr_DosInfo(struct ndr_push
*ndr
, int ndr_flags
, const union xattr_DosInfo
*r
)
118 if (ndr_flags
& NDR_SCALARS
) {
119 int level
= ndr_push_get_switch_value(ndr
, r
);
120 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
123 NDR_CHECK(ndr_push_xattr_DosInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
127 NDR_CHECK(ndr_push_xattr_DosInfo2Old(ndr
, NDR_SCALARS
, &r
->oldinfo2
));
131 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
134 if (ndr_flags
& NDR_BUFFERS
) {
135 int level
= ndr_push_get_switch_value(ndr
, r
);
144 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
147 return NDR_ERR_SUCCESS
;
150 static enum ndr_err_code
ndr_pull_xattr_DosInfo(struct ndr_pull
*ndr
, int ndr_flags
, union xattr_DosInfo
*r
)
154 level
= ndr_pull_get_switch_value(ndr
, r
);
155 if (ndr_flags
& NDR_SCALARS
) {
156 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
157 if (_level
!= level
) {
158 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
162 NDR_CHECK(ndr_pull_xattr_DosInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
166 NDR_CHECK(ndr_pull_xattr_DosInfo2Old(ndr
, NDR_SCALARS
, &r
->oldinfo2
));
170 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
173 if (ndr_flags
& NDR_BUFFERS
) {
182 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
185 return NDR_ERR_SUCCESS
;
188 _PUBLIC_
void ndr_print_xattr_DosInfo(struct ndr_print
*ndr
, const char *name
, const union xattr_DosInfo
*r
)
191 level
= ndr_print_get_switch_value(ndr
, r
);
192 ndr_print_union(ndr
, name
, level
, "xattr_DosInfo");
195 ndr_print_xattr_DosInfo1(ndr
, "info1", &r
->info1
);
199 ndr_print_xattr_DosInfo2Old(ndr
, "oldinfo2", &r
->oldinfo2
);
203 ndr_print_bad_level(ndr
, name
, level
);
207 _PUBLIC_
enum ndr_err_code
ndr_push_xattr_DosAttrib(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_DosAttrib
*r
)
209 if (ndr_flags
& NDR_SCALARS
) {
210 NDR_CHECK(ndr_push_align(ndr
, 4));
211 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->version
));
212 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->version
));
213 NDR_CHECK(ndr_push_xattr_DosInfo(ndr
, NDR_SCALARS
, &r
->info
));
215 if (ndr_flags
& NDR_BUFFERS
) {
217 return NDR_ERR_SUCCESS
;
220 _PUBLIC_
enum ndr_err_code
ndr_pull_xattr_DosAttrib(struct ndr_pull
*ndr
, int ndr_flags
, struct xattr_DosAttrib
*r
)
222 if (ndr_flags
& NDR_SCALARS
) {
223 NDR_CHECK(ndr_pull_align(ndr
, 4));
224 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->version
));
225 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->version
));
226 NDR_CHECK(ndr_pull_xattr_DosInfo(ndr
, NDR_SCALARS
, &r
->info
));
228 if (ndr_flags
& NDR_BUFFERS
) {
230 return NDR_ERR_SUCCESS
;
233 _PUBLIC_
void ndr_print_xattr_DosAttrib(struct ndr_print
*ndr
, const char *name
, const struct xattr_DosAttrib
*r
)
235 ndr_print_struct(ndr
, name
, "xattr_DosAttrib");
237 ndr_print_uint16(ndr
, "version", r
->version
);
238 ndr_print_set_switch_value(ndr
, &r
->info
, r
->version
);
239 ndr_print_xattr_DosInfo(ndr
, "info", &r
->info
);
243 static enum ndr_err_code
ndr_push_xattr_EA(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_EA
*r
)
245 if (ndr_flags
& NDR_SCALARS
) {
246 NDR_CHECK(ndr_push_align(ndr
, 4));
248 uint32_t _flags_save_string
= ndr
->flags
;
249 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_UTF8
|LIBNDR_FLAG_STR_NULLTERM
);
250 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
251 ndr
->flags
= _flags_save_string
;
253 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->value
));
255 if (ndr_flags
& NDR_BUFFERS
) {
257 return NDR_ERR_SUCCESS
;
260 static enum ndr_err_code
ndr_pull_xattr_EA(struct ndr_pull
*ndr
, int ndr_flags
, struct xattr_EA
*r
)
262 if (ndr_flags
& NDR_SCALARS
) {
263 NDR_CHECK(ndr_pull_align(ndr
, 4));
265 uint32_t _flags_save_string
= ndr
->flags
;
266 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_UTF8
|LIBNDR_FLAG_STR_NULLTERM
);
267 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
268 ndr
->flags
= _flags_save_string
;
270 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->value
));
272 if (ndr_flags
& NDR_BUFFERS
) {
274 return NDR_ERR_SUCCESS
;
277 _PUBLIC_
void ndr_print_xattr_EA(struct ndr_print
*ndr
, const char *name
, const struct xattr_EA
*r
)
279 ndr_print_struct(ndr
, name
, "xattr_EA");
281 ndr_print_string(ndr
, "name", r
->name
);
282 ndr_print_DATA_BLOB(ndr
, "value", r
->value
);
286 _PUBLIC_
enum ndr_err_code
ndr_push_xattr_DosEAs(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_DosEAs
*r
)
289 if (ndr_flags
& NDR_SCALARS
) {
290 NDR_CHECK(ndr_push_align(ndr
, 4));
291 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->num_eas
));
292 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->eas
));
294 if (ndr_flags
& NDR_BUFFERS
) {
296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_eas
));
297 for (cntr_eas_1
= 0; cntr_eas_1
< r
->num_eas
; cntr_eas_1
++) {
298 NDR_CHECK(ndr_push_xattr_EA(ndr
, NDR_SCALARS
, &r
->eas
[cntr_eas_1
]));
302 return NDR_ERR_SUCCESS
;
305 _PUBLIC_
enum ndr_err_code
ndr_pull_xattr_DosEAs(struct ndr_pull
*ndr
, int ndr_flags
, struct xattr_DosEAs
*r
)
308 uint32_t size_eas_1
= 0;
310 TALLOC_CTX
*_mem_save_eas_0
;
311 TALLOC_CTX
*_mem_save_eas_1
;
312 if (ndr_flags
& NDR_SCALARS
) {
313 NDR_CHECK(ndr_pull_align(ndr
, 4));
314 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->num_eas
));
315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_eas
));
317 NDR_PULL_ALLOC(ndr
, r
->eas
);
322 if (ndr_flags
& NDR_BUFFERS
) {
324 _mem_save_eas_0
= NDR_PULL_GET_MEM_CTX(ndr
);
325 NDR_PULL_SET_MEM_CTX(ndr
, r
->eas
, 0);
326 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->eas
));
327 size_eas_1
= ndr_get_array_size(ndr
, &r
->eas
);
328 NDR_PULL_ALLOC_N(ndr
, r
->eas
, size_eas_1
);
329 _mem_save_eas_1
= NDR_PULL_GET_MEM_CTX(ndr
);
330 NDR_PULL_SET_MEM_CTX(ndr
, r
->eas
, 0);
331 for (cntr_eas_1
= 0; cntr_eas_1
< size_eas_1
; cntr_eas_1
++) {
332 NDR_CHECK(ndr_pull_xattr_EA(ndr
, NDR_SCALARS
, &r
->eas
[cntr_eas_1
]));
334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eas_1
, 0);
335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eas_0
, 0);
338 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->eas
, r
->num_eas
));
341 return NDR_ERR_SUCCESS
;
344 _PUBLIC_
void ndr_print_xattr_DosEAs(struct ndr_print
*ndr
, const char *name
, const struct xattr_DosEAs
*r
)
347 ndr_print_struct(ndr
, name
, "xattr_DosEAs");
349 ndr_print_uint16(ndr
, "num_eas", r
->num_eas
);
350 ndr_print_ptr(ndr
, "eas", r
->eas
);
353 ndr
->print(ndr
, "%s: ARRAY(%d)", "eas", (int)r
->num_eas
);
355 for (cntr_eas_1
=0;cntr_eas_1
<r
->num_eas
;cntr_eas_1
++) {
357 if (asprintf(&idx_1
, "[%d]", cntr_eas_1
) != -1) {
358 ndr_print_xattr_EA(ndr
, "eas", &r
->eas
[cntr_eas_1
]);
368 _PUBLIC_
enum ndr_err_code
ndr_push_tdb_xattrs(struct ndr_push
*ndr
, int ndr_flags
, const struct tdb_xattrs
*r
)
371 if (ndr_flags
& NDR_SCALARS
) {
372 NDR_CHECK(ndr_push_align(ndr
, 4));
373 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_eas
));
374 for (cntr_eas_0
= 0; cntr_eas_0
< r
->num_eas
; cntr_eas_0
++) {
375 NDR_CHECK(ndr_push_xattr_EA(ndr
, NDR_SCALARS
, &r
->eas
[cntr_eas_0
]));
378 if (ndr_flags
& NDR_BUFFERS
) {
380 return NDR_ERR_SUCCESS
;
383 _PUBLIC_
enum ndr_err_code
ndr_pull_tdb_xattrs(struct ndr_pull
*ndr
, int ndr_flags
, struct tdb_xattrs
*r
)
385 uint32_t size_eas_0
= 0;
387 TALLOC_CTX
*_mem_save_eas_0
;
388 if (ndr_flags
& NDR_SCALARS
) {
389 NDR_CHECK(ndr_pull_align(ndr
, 4));
390 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_eas
));
391 size_eas_0
= r
->num_eas
;
392 NDR_PULL_ALLOC_N(ndr
, r
->eas
, size_eas_0
);
393 _mem_save_eas_0
= NDR_PULL_GET_MEM_CTX(ndr
);
394 NDR_PULL_SET_MEM_CTX(ndr
, r
->eas
, 0);
395 for (cntr_eas_0
= 0; cntr_eas_0
< size_eas_0
; cntr_eas_0
++) {
396 NDR_CHECK(ndr_pull_xattr_EA(ndr
, NDR_SCALARS
, &r
->eas
[cntr_eas_0
]));
398 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eas_0
, 0);
400 if (ndr_flags
& NDR_BUFFERS
) {
402 return NDR_ERR_SUCCESS
;
405 _PUBLIC_
void ndr_print_tdb_xattrs(struct ndr_print
*ndr
, const char *name
, const struct tdb_xattrs
*r
)
408 ndr_print_struct(ndr
, name
, "tdb_xattrs");
410 ndr_print_uint32(ndr
, "num_eas", r
->num_eas
);
411 ndr
->print(ndr
, "%s: ARRAY(%d)", "eas", (int)r
->num_eas
);
413 for (cntr_eas_0
=0;cntr_eas_0
<r
->num_eas
;cntr_eas_0
++) {
415 if (asprintf(&idx_0
, "[%d]", cntr_eas_0
) != -1) {
416 ndr_print_xattr_EA(ndr
, "eas", &r
->eas
[cntr_eas_0
]);
424 static enum ndr_err_code
ndr_push_xattr_DosStream(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_DosStream
*r
)
426 if (ndr_flags
& NDR_SCALARS
) {
427 NDR_CHECK(ndr_push_align(ndr
, 4));
428 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
429 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->size
));
430 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->alloc_size
));
432 uint32_t _flags_save_string
= ndr
->flags
;
433 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_UTF8
|LIBNDR_FLAG_STR_NULLTERM
);
434 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
435 ndr
->flags
= _flags_save_string
;
438 if (ndr_flags
& NDR_BUFFERS
) {
440 return NDR_ERR_SUCCESS
;
443 static enum ndr_err_code
ndr_pull_xattr_DosStream(struct ndr_pull
*ndr
, int ndr_flags
, struct xattr_DosStream
*r
)
445 if (ndr_flags
& NDR_SCALARS
) {
446 NDR_CHECK(ndr_pull_align(ndr
, 4));
447 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
448 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->size
));
449 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->alloc_size
));
451 uint32_t _flags_save_string
= ndr
->flags
;
452 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_UTF8
|LIBNDR_FLAG_STR_NULLTERM
);
453 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
454 ndr
->flags
= _flags_save_string
;
457 if (ndr_flags
& NDR_BUFFERS
) {
459 return NDR_ERR_SUCCESS
;
462 _PUBLIC_
void ndr_print_xattr_DosStream(struct ndr_print
*ndr
, const char *name
, const struct xattr_DosStream
*r
)
464 ndr_print_struct(ndr
, name
, "xattr_DosStream");
466 ndr_print_uint32(ndr
, "flags", r
->flags
);
467 ndr_print_udlong(ndr
, "size", r
->size
);
468 ndr_print_udlong(ndr
, "alloc_size", r
->alloc_size
);
469 ndr_print_string(ndr
, "name", r
->name
);
473 _PUBLIC_
enum ndr_err_code
ndr_push_xattr_DosStreams(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_DosStreams
*r
)
475 uint32_t cntr_streams_1
;
476 if (ndr_flags
& NDR_SCALARS
) {
477 NDR_CHECK(ndr_push_align(ndr
, 4));
478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_streams
));
479 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->streams
));
481 if (ndr_flags
& NDR_BUFFERS
) {
483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_streams
));
484 for (cntr_streams_1
= 0; cntr_streams_1
< r
->num_streams
; cntr_streams_1
++) {
485 NDR_CHECK(ndr_push_xattr_DosStream(ndr
, NDR_SCALARS
, &r
->streams
[cntr_streams_1
]));
489 return NDR_ERR_SUCCESS
;
492 _PUBLIC_
enum ndr_err_code
ndr_pull_xattr_DosStreams(struct ndr_pull
*ndr
, int ndr_flags
, struct xattr_DosStreams
*r
)
494 uint32_t _ptr_streams
;
495 uint32_t size_streams_1
= 0;
496 uint32_t cntr_streams_1
;
497 TALLOC_CTX
*_mem_save_streams_0
;
498 TALLOC_CTX
*_mem_save_streams_1
;
499 if (ndr_flags
& NDR_SCALARS
) {
500 NDR_CHECK(ndr_pull_align(ndr
, 4));
501 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_streams
));
502 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_streams
));
504 NDR_PULL_ALLOC(ndr
, r
->streams
);
509 if (ndr_flags
& NDR_BUFFERS
) {
511 _mem_save_streams_0
= NDR_PULL_GET_MEM_CTX(ndr
);
512 NDR_PULL_SET_MEM_CTX(ndr
, r
->streams
, 0);
513 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->streams
));
514 size_streams_1
= ndr_get_array_size(ndr
, &r
->streams
);
515 NDR_PULL_ALLOC_N(ndr
, r
->streams
, size_streams_1
);
516 _mem_save_streams_1
= NDR_PULL_GET_MEM_CTX(ndr
);
517 NDR_PULL_SET_MEM_CTX(ndr
, r
->streams
, 0);
518 for (cntr_streams_1
= 0; cntr_streams_1
< size_streams_1
; cntr_streams_1
++) {
519 NDR_CHECK(ndr_pull_xattr_DosStream(ndr
, NDR_SCALARS
, &r
->streams
[cntr_streams_1
]));
521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_streams_1
, 0);
522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_streams_0
, 0);
525 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->streams
, r
->num_streams
));
528 return NDR_ERR_SUCCESS
;
531 _PUBLIC_
void ndr_print_xattr_DosStreams(struct ndr_print
*ndr
, const char *name
, const struct xattr_DosStreams
*r
)
533 uint32_t cntr_streams_1
;
534 ndr_print_struct(ndr
, name
, "xattr_DosStreams");
536 ndr_print_uint32(ndr
, "num_streams", r
->num_streams
);
537 ndr_print_ptr(ndr
, "streams", r
->streams
);
540 ndr
->print(ndr
, "%s: ARRAY(%d)", "streams", (int)r
->num_streams
);
542 for (cntr_streams_1
=0;cntr_streams_1
<r
->num_streams
;cntr_streams_1
++) {
544 if (asprintf(&idx_1
, "[%d]", cntr_streams_1
) != -1) {
545 ndr_print_xattr_DosStream(ndr
, "streams", &r
->streams
[cntr_streams_1
]);
555 _PUBLIC_
enum ndr_err_code
ndr_push_security_descriptor_hash(struct ndr_push
*ndr
, int ndr_flags
, const struct security_descriptor_hash
*r
)
557 if (ndr_flags
& NDR_SCALARS
) {
558 NDR_CHECK(ndr_push_align(ndr
, 4));
559 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sd
));
560 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->hash
, 16));
562 if (ndr_flags
& NDR_BUFFERS
) {
564 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd
));
567 return NDR_ERR_SUCCESS
;
570 _PUBLIC_
enum ndr_err_code
ndr_pull_security_descriptor_hash(struct ndr_pull
*ndr
, int ndr_flags
, struct security_descriptor_hash
*r
)
573 TALLOC_CTX
*_mem_save_sd_0
;
574 uint32_t size_hash_0
= 0;
575 if (ndr_flags
& NDR_SCALARS
) {
576 NDR_CHECK(ndr_pull_align(ndr
, 4));
577 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sd
));
579 NDR_PULL_ALLOC(ndr
, r
->sd
);
584 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->hash
, size_hash_0
));
586 if (ndr_flags
& NDR_BUFFERS
) {
588 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
589 NDR_PULL_SET_MEM_CTX(ndr
, r
->sd
, 0);
590 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd
));
591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, 0);
594 return NDR_ERR_SUCCESS
;
597 _PUBLIC_
void ndr_print_security_descriptor_hash(struct ndr_print
*ndr
, const char *name
, const struct security_descriptor_hash
*r
)
599 ndr_print_struct(ndr
, name
, "security_descriptor_hash");
601 ndr_print_ptr(ndr
, "sd", r
->sd
);
604 ndr_print_security_descriptor(ndr
, "sd", r
->sd
);
607 ndr_print_array_uint8(ndr
, "hash", r
->hash
, 16);
611 static enum ndr_err_code
ndr_push_xattr_NTACL_Info(struct ndr_push
*ndr
, int ndr_flags
, const union xattr_NTACL_Info
*r
)
613 if (ndr_flags
& NDR_SCALARS
) {
614 int level
= ndr_push_get_switch_value(ndr
, r
);
615 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
618 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sd
));
622 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sd_hs
));
626 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
629 if (ndr_flags
& NDR_BUFFERS
) {
630 int level
= ndr_push_get_switch_value(ndr
, r
);
634 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd
));
640 NDR_CHECK(ndr_push_security_descriptor_hash(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd_hs
));
645 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
648 return NDR_ERR_SUCCESS
;
651 static enum ndr_err_code
ndr_pull_xattr_NTACL_Info(struct ndr_pull
*ndr
, int ndr_flags
, union xattr_NTACL_Info
*r
)
655 TALLOC_CTX
*_mem_save_sd_0
;
657 TALLOC_CTX
*_mem_save_sd_hs_0
;
659 level
= ndr_pull_get_switch_value(ndr
, r
);
660 if (ndr_flags
& NDR_SCALARS
) {
661 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
662 if (_level
!= level
) {
663 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
667 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sd
));
669 NDR_PULL_ALLOC(ndr
, r
->sd
);
676 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sd_hs
));
678 NDR_PULL_ALLOC(ndr
, r
->sd_hs
);
685 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
688 if (ndr_flags
& NDR_BUFFERS
) {
692 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
693 NDR_PULL_SET_MEM_CTX(ndr
, r
->sd
, 0);
694 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd
));
695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, 0);
701 _mem_save_sd_hs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
702 NDR_PULL_SET_MEM_CTX(ndr
, r
->sd_hs
, 0);
703 NDR_CHECK(ndr_pull_security_descriptor_hash(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd_hs
));
704 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_hs_0
, 0);
709 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
712 return NDR_ERR_SUCCESS
;
715 _PUBLIC_
void ndr_print_xattr_NTACL_Info(struct ndr_print
*ndr
, const char *name
, const union xattr_NTACL_Info
*r
)
718 level
= ndr_print_get_switch_value(ndr
, r
);
719 ndr_print_union(ndr
, name
, level
, "xattr_NTACL_Info");
722 ndr_print_ptr(ndr
, "sd", r
->sd
);
725 ndr_print_security_descriptor(ndr
, "sd", r
->sd
);
731 ndr_print_ptr(ndr
, "sd_hs", r
->sd_hs
);
734 ndr_print_security_descriptor_hash(ndr
, "sd_hs", r
->sd_hs
);
740 ndr_print_bad_level(ndr
, name
, level
);
744 _PUBLIC_
enum ndr_err_code
ndr_push_xattr_NTACL(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_NTACL
*r
)
746 if (ndr_flags
& NDR_SCALARS
) {
747 NDR_CHECK(ndr_push_align(ndr
, 4));
748 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->version
));
749 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->version
));
750 NDR_CHECK(ndr_push_xattr_NTACL_Info(ndr
, NDR_SCALARS
, &r
->info
));
752 if (ndr_flags
& NDR_BUFFERS
) {
753 NDR_CHECK(ndr_push_xattr_NTACL_Info(ndr
, NDR_BUFFERS
, &r
->info
));
755 return NDR_ERR_SUCCESS
;
758 _PUBLIC_
enum ndr_err_code
ndr_pull_xattr_NTACL(struct ndr_pull
*ndr
, int ndr_flags
, struct xattr_NTACL
*r
)
760 if (ndr_flags
& NDR_SCALARS
) {
761 NDR_CHECK(ndr_pull_align(ndr
, 4));
762 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->version
));
763 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->version
));
764 NDR_CHECK(ndr_pull_xattr_NTACL_Info(ndr
, NDR_SCALARS
, &r
->info
));
766 if (ndr_flags
& NDR_BUFFERS
) {
767 NDR_CHECK(ndr_pull_xattr_NTACL_Info(ndr
, NDR_BUFFERS
, &r
->info
));
769 return NDR_ERR_SUCCESS
;
772 _PUBLIC_
void ndr_print_xattr_NTACL(struct ndr_print
*ndr
, const char *name
, const struct xattr_NTACL
*r
)
774 ndr_print_struct(ndr
, name
, "xattr_NTACL");
776 ndr_print_uint16(ndr
, "version", r
->version
);
777 ndr_print_set_switch_value(ndr
, &r
->info
, r
->version
);
778 ndr_print_xattr_NTACL_Info(ndr
, "info", &r
->info
);