1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_xattr.h"
6 _PUBLIC_
enum ndr_err_code
ndr_push_tdb_xattr(struct ndr_push
*ndr
, int ndr_flags
, const struct tdb_xattr
*r
)
8 if (ndr_flags
& NDR_SCALARS
) {
9 NDR_CHECK(ndr_push_align(ndr
, 4));
11 uint32_t _flags_save_string
= ndr
->flags
;
12 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_UTF8
|LIBNDR_FLAG_STR_NULLTERM
);
13 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
14 ndr
->flags
= _flags_save_string
;
16 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->value
));
18 if (ndr_flags
& NDR_BUFFERS
) {
20 return NDR_ERR_SUCCESS
;
23 _PUBLIC_
enum ndr_err_code
ndr_pull_tdb_xattr(struct ndr_pull
*ndr
, int ndr_flags
, struct tdb_xattr
*r
)
25 if (ndr_flags
& NDR_SCALARS
) {
26 NDR_CHECK(ndr_pull_align(ndr
, 4));
28 uint32_t _flags_save_string
= ndr
->flags
;
29 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_UTF8
|LIBNDR_FLAG_STR_NULLTERM
);
30 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
31 ndr
->flags
= _flags_save_string
;
33 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->value
));
35 if (ndr_flags
& NDR_BUFFERS
) {
37 return NDR_ERR_SUCCESS
;
40 _PUBLIC_
void ndr_print_tdb_xattr(struct ndr_print
*ndr
, const char *name
, const struct tdb_xattr
*r
)
42 ndr_print_struct(ndr
, name
, "tdb_xattr");
44 ndr_print_string(ndr
, "name", r
->name
);
45 ndr_print_DATA_BLOB(ndr
, "value", r
->value
);
49 _PUBLIC_
enum ndr_err_code
ndr_push_tdb_xattrs(struct ndr_push
*ndr
, int ndr_flags
, const struct tdb_xattrs
*r
)
51 uint32_t cntr_xattrs_0
;
52 if (ndr_flags
& NDR_SCALARS
) {
53 NDR_CHECK(ndr_push_align(ndr
, 4));
54 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_xattrs
));
55 for (cntr_xattrs_0
= 0; cntr_xattrs_0
< r
->num_xattrs
; cntr_xattrs_0
++) {
56 NDR_CHECK(ndr_push_tdb_xattr(ndr
, NDR_SCALARS
, &r
->xattrs
[cntr_xattrs_0
]));
59 if (ndr_flags
& NDR_BUFFERS
) {
61 return NDR_ERR_SUCCESS
;
64 _PUBLIC_
enum ndr_err_code
ndr_pull_tdb_xattrs(struct ndr_pull
*ndr
, int ndr_flags
, struct tdb_xattrs
*r
)
66 uint32_t cntr_xattrs_0
;
67 TALLOC_CTX
*_mem_save_xattrs_0
;
68 if (ndr_flags
& NDR_SCALARS
) {
69 NDR_CHECK(ndr_pull_align(ndr
, 4));
70 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_xattrs
));
71 NDR_PULL_ALLOC_N(ndr
, r
->xattrs
, r
->num_xattrs
);
72 _mem_save_xattrs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
73 NDR_PULL_SET_MEM_CTX(ndr
, r
->xattrs
, 0);
74 for (cntr_xattrs_0
= 0; cntr_xattrs_0
< r
->num_xattrs
; cntr_xattrs_0
++) {
75 NDR_CHECK(ndr_pull_tdb_xattr(ndr
, NDR_SCALARS
, &r
->xattrs
[cntr_xattrs_0
]));
77 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_xattrs_0
, 0);
79 if (ndr_flags
& NDR_BUFFERS
) {
81 return NDR_ERR_SUCCESS
;
84 _PUBLIC_
void ndr_print_tdb_xattrs(struct ndr_print
*ndr
, const char *name
, const struct tdb_xattrs
*r
)
86 uint32_t cntr_xattrs_0
;
87 ndr_print_struct(ndr
, name
, "tdb_xattrs");
89 ndr_print_uint32(ndr
, "num_xattrs", r
->num_xattrs
);
90 ndr
->print(ndr
, "%s: ARRAY(%d)", "xattrs", (int)r
->num_xattrs
);
92 for (cntr_xattrs_0
=0;cntr_xattrs_0
<r
->num_xattrs
;cntr_xattrs_0
++) {
94 if (asprintf(&idx_0
, "[%d]", cntr_xattrs_0
) != -1) {
95 ndr_print_tdb_xattr(ndr
, "xattrs", &r
->xattrs
[cntr_xattrs_0
]);
103 _PUBLIC_
enum ndr_err_code
ndr_push_security_descriptor_hash(struct ndr_push
*ndr
, int ndr_flags
, const struct security_descriptor_hash
*r
)
105 if (ndr_flags
& NDR_SCALARS
) {
106 NDR_CHECK(ndr_push_align(ndr
, 4));
107 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sd
));
108 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->hash
, 16));
110 if (ndr_flags
& NDR_BUFFERS
) {
112 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd
));
115 return NDR_ERR_SUCCESS
;
118 _PUBLIC_
enum ndr_err_code
ndr_pull_security_descriptor_hash(struct ndr_pull
*ndr
, int ndr_flags
, struct security_descriptor_hash
*r
)
121 TALLOC_CTX
*_mem_save_sd_0
;
122 if (ndr_flags
& NDR_SCALARS
) {
123 NDR_CHECK(ndr_pull_align(ndr
, 4));
124 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sd
));
126 NDR_PULL_ALLOC(ndr
, r
->sd
);
130 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->hash
, 16));
132 if (ndr_flags
& NDR_BUFFERS
) {
134 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
135 NDR_PULL_SET_MEM_CTX(ndr
, r
->sd
, 0);
136 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd
));
137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, 0);
140 return NDR_ERR_SUCCESS
;
143 _PUBLIC_
void ndr_print_security_descriptor_hash(struct ndr_print
*ndr
, const char *name
, const struct security_descriptor_hash
*r
)
145 ndr_print_struct(ndr
, name
, "security_descriptor_hash");
147 ndr_print_ptr(ndr
, "sd", r
->sd
);
150 ndr_print_security_descriptor(ndr
, "sd", r
->sd
);
153 ndr_print_array_uint8(ndr
, "hash", r
->hash
, 16);
157 static enum ndr_err_code
ndr_push_xattr_NTACL_Info(struct ndr_push
*ndr
, int ndr_flags
, const union xattr_NTACL_Info
*r
)
159 if (ndr_flags
& NDR_SCALARS
) {
160 int level
= ndr_push_get_switch_value(ndr
, r
);
161 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
164 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sd
));
168 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sd_hs
));
172 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
175 if (ndr_flags
& NDR_BUFFERS
) {
176 int level
= ndr_push_get_switch_value(ndr
, r
);
180 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd
));
186 NDR_CHECK(ndr_push_security_descriptor_hash(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd_hs
));
191 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
194 return NDR_ERR_SUCCESS
;
197 static enum ndr_err_code
ndr_pull_xattr_NTACL_Info(struct ndr_pull
*ndr
, int ndr_flags
, union xattr_NTACL_Info
*r
)
201 TALLOC_CTX
*_mem_save_sd_0
;
202 TALLOC_CTX
*_mem_save_sd_hs_0
;
203 level
= ndr_pull_get_switch_value(ndr
, r
);
204 if (ndr_flags
& NDR_SCALARS
) {
205 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
206 if (_level
!= level
) {
207 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
212 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sd
));
214 NDR_PULL_ALLOC(ndr
, r
->sd
);
222 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sd_hs
));
224 NDR_PULL_ALLOC(ndr
, r
->sd_hs
);
231 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
234 if (ndr_flags
& NDR_BUFFERS
) {
238 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
239 NDR_PULL_SET_MEM_CTX(ndr
, r
->sd
, 0);
240 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd
));
241 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, 0);
247 _mem_save_sd_hs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
248 NDR_PULL_SET_MEM_CTX(ndr
, r
->sd_hs
, 0);
249 NDR_CHECK(ndr_pull_security_descriptor_hash(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sd_hs
));
250 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_hs_0
, 0);
255 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
258 return NDR_ERR_SUCCESS
;
261 _PUBLIC_
void ndr_print_xattr_NTACL_Info(struct ndr_print
*ndr
, const char *name
, const union xattr_NTACL_Info
*r
)
264 level
= ndr_print_get_switch_value(ndr
, r
);
265 ndr_print_union(ndr
, name
, level
, "xattr_NTACL_Info");
268 ndr_print_ptr(ndr
, "sd", r
->sd
);
271 ndr_print_security_descriptor(ndr
, "sd", r
->sd
);
277 ndr_print_ptr(ndr
, "sd_hs", r
->sd_hs
);
280 ndr_print_security_descriptor_hash(ndr
, "sd_hs", r
->sd_hs
);
286 ndr_print_bad_level(ndr
, name
, level
);
290 _PUBLIC_
enum ndr_err_code
ndr_push_xattr_NTACL(struct ndr_push
*ndr
, int ndr_flags
, const struct xattr_NTACL
*r
)
292 if (ndr_flags
& NDR_SCALARS
) {
293 NDR_CHECK(ndr_push_align(ndr
, 4));
294 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->version
));
295 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->version
));
296 NDR_CHECK(ndr_push_xattr_NTACL_Info(ndr
, NDR_SCALARS
, &r
->info
));
298 if (ndr_flags
& NDR_BUFFERS
) {
299 NDR_CHECK(ndr_push_xattr_NTACL_Info(ndr
, NDR_BUFFERS
, &r
->info
));
301 return NDR_ERR_SUCCESS
;
304 _PUBLIC_
enum ndr_err_code
ndr_pull_xattr_NTACL(struct ndr_pull
*ndr
, int ndr_flags
, struct xattr_NTACL
*r
)
306 if (ndr_flags
& NDR_SCALARS
) {
307 NDR_CHECK(ndr_pull_align(ndr
, 4));
308 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->version
));
309 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->version
));
310 NDR_CHECK(ndr_pull_xattr_NTACL_Info(ndr
, NDR_SCALARS
, &r
->info
));
312 if (ndr_flags
& NDR_BUFFERS
) {
313 NDR_CHECK(ndr_pull_xattr_NTACL_Info(ndr
, NDR_BUFFERS
, &r
->info
));
315 return NDR_ERR_SUCCESS
;
318 _PUBLIC_
void ndr_print_xattr_NTACL(struct ndr_print
*ndr
, const char *name
, const struct xattr_NTACL
*r
)
320 ndr_print_struct(ndr
, name
, "xattr_NTACL");
322 ndr_print_uint16(ndr
, "version", r
->version
);
323 ndr_print_set_switch_value(ndr
, &r
->info
, r
->version
);
324 ndr_print_xattr_NTACL_Info(ndr
, "info", &r
->info
);