1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_misc.h"
6 _PUBLIC_
enum ndr_err_code
ndr_push_GUID(struct ndr_push
*ndr
, int ndr_flags
, const struct GUID
*r
)
8 if (ndr_flags
& NDR_SCALARS
) {
9 NDR_CHECK(ndr_push_align(ndr
, 4));
10 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time_low
));
11 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->time_mid
));
12 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->time_hi_and_version
));
13 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->clock_seq
, 2));
14 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->node
, 6));
15 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
17 if (ndr_flags
& NDR_BUFFERS
) {
19 return NDR_ERR_SUCCESS
;
22 _PUBLIC_
enum ndr_err_code
ndr_pull_GUID(struct ndr_pull
*ndr
, int ndr_flags
, struct GUID
*r
)
24 uint32_t size_clock_seq_0
= 0;
25 uint32_t size_node_0
= 0;
26 if (ndr_flags
& NDR_SCALARS
) {
27 NDR_CHECK(ndr_pull_align(ndr
, 4));
28 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time_low
));
29 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->time_mid
));
30 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->time_hi_and_version
));
32 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->clock_seq
, size_clock_seq_0
));
34 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->node
, size_node_0
));
35 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
37 if (ndr_flags
& NDR_BUFFERS
) {
39 return NDR_ERR_SUCCESS
;
42 _PUBLIC_
size_t ndr_size_GUID(const struct GUID
*r
, struct smb_iconv_convenience
*ic
, int flags
)
44 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_GUID
, ic
);
47 _PUBLIC_
enum ndr_err_code
ndr_push_ndr_syntax_id(struct ndr_push
*ndr
, int ndr_flags
, const struct ndr_syntax_id
*r
)
49 if (ndr_flags
& NDR_SCALARS
) {
50 NDR_CHECK(ndr_push_align(ndr
, 4));
51 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->uuid
));
52 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->if_version
));
53 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
55 if (ndr_flags
& NDR_BUFFERS
) {
57 return NDR_ERR_SUCCESS
;
60 _PUBLIC_
enum ndr_err_code
ndr_pull_ndr_syntax_id(struct ndr_pull
*ndr
, int ndr_flags
, struct ndr_syntax_id
*r
)
62 if (ndr_flags
& NDR_SCALARS
) {
63 NDR_CHECK(ndr_pull_align(ndr
, 4));
64 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->uuid
));
65 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->if_version
));
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_ndr_syntax_id(struct ndr_print
*ndr
, const char *name
, const struct ndr_syntax_id
*r
)
75 ndr_print_struct(ndr
, name
, "ndr_syntax_id");
77 ndr_print_GUID(ndr
, "uuid", &r
->uuid
);
78 ndr_print_uint32(ndr
, "if_version", r
->if_version
);
82 _PUBLIC_
enum ndr_err_code
ndr_push_policy_handle(struct ndr_push
*ndr
, int ndr_flags
, const struct policy_handle
*r
)
84 if (ndr_flags
& NDR_SCALARS
) {
85 NDR_CHECK(ndr_push_align(ndr
, 4));
86 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->handle_type
));
87 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->uuid
));
88 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
90 if (ndr_flags
& NDR_BUFFERS
) {
92 return NDR_ERR_SUCCESS
;
95 _PUBLIC_
enum ndr_err_code
ndr_pull_policy_handle(struct ndr_pull
*ndr
, int ndr_flags
, struct policy_handle
*r
)
97 if (ndr_flags
& NDR_SCALARS
) {
98 NDR_CHECK(ndr_pull_align(ndr
, 4));
99 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->handle_type
));
100 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->uuid
));
101 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
103 if (ndr_flags
& NDR_BUFFERS
) {
105 return NDR_ERR_SUCCESS
;
108 _PUBLIC_
void ndr_print_policy_handle(struct ndr_print
*ndr
, const char *name
, const struct policy_handle
*r
)
110 ndr_print_struct(ndr
, name
, "policy_handle");
112 ndr_print_uint32(ndr
, "handle_type", r
->handle_type
);
113 ndr_print_GUID(ndr
, "uuid", &r
->uuid
);
117 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SchannelType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_SchannelType r
)
119 NDR_CHECK(ndr_push_enum_uint1632(ndr
, NDR_SCALARS
, r
));
120 return NDR_ERR_SUCCESS
;
123 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SchannelType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_SchannelType
*r
)
126 NDR_CHECK(ndr_pull_enum_uint1632(ndr
, NDR_SCALARS
, &v
));
128 return NDR_ERR_SUCCESS
;
131 _PUBLIC_
void ndr_print_netr_SchannelType(struct ndr_print
*ndr
, const char *name
, enum netr_SchannelType r
)
133 const char *val
= NULL
;
136 case SEC_CHAN_NULL
: val
= "SEC_CHAN_NULL"; break;
137 case SEC_CHAN_WKSTA
: val
= "SEC_CHAN_WKSTA"; break;
138 case SEC_CHAN_DNS_DOMAIN
: val
= "SEC_CHAN_DNS_DOMAIN"; break;
139 case SEC_CHAN_DOMAIN
: val
= "SEC_CHAN_DOMAIN"; break;
140 case SEC_CHAN_BDC
: val
= "SEC_CHAN_BDC"; break;
142 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
145 _PUBLIC_
enum ndr_err_code
ndr_push_KRB5_EDATA_NTSTATUS(struct ndr_push
*ndr
, int ndr_flags
, const struct KRB5_EDATA_NTSTATUS
*r
)
147 if (ndr_flags
& NDR_SCALARS
) {
148 NDR_CHECK(ndr_push_align(ndr
, 4));
149 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->ntstatus
));
150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
151 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
152 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
154 if (ndr_flags
& NDR_BUFFERS
) {
156 return NDR_ERR_SUCCESS
;
159 _PUBLIC_
enum ndr_err_code
ndr_pull_KRB5_EDATA_NTSTATUS(struct ndr_pull
*ndr
, int ndr_flags
, struct KRB5_EDATA_NTSTATUS
*r
)
161 if (ndr_flags
& NDR_SCALARS
) {
162 NDR_CHECK(ndr_pull_align(ndr
, 4));
163 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->ntstatus
));
164 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
165 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
166 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
168 if (ndr_flags
& NDR_BUFFERS
) {
170 return NDR_ERR_SUCCESS
;
173 _PUBLIC_
void ndr_print_KRB5_EDATA_NTSTATUS(struct ndr_print
*ndr
, const char *name
, const struct KRB5_EDATA_NTSTATUS
*r
)
175 ndr_print_struct(ndr
, name
, "KRB5_EDATA_NTSTATUS");
177 ndr_print_NTSTATUS(ndr
, "ntstatus", r
->ntstatus
);
178 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
179 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
183 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_Type(struct ndr_push
*ndr
, int ndr_flags
, enum winreg_Type r
)
185 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
186 return NDR_ERR_SUCCESS
;
189 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_Type(struct ndr_pull
*ndr
, int ndr_flags
, enum winreg_Type
*r
)
192 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
194 return NDR_ERR_SUCCESS
;
197 _PUBLIC_
void ndr_print_winreg_Type(struct ndr_print
*ndr
, const char *name
, enum winreg_Type r
)
199 const char *val
= NULL
;
202 case REG_NONE
: val
= "REG_NONE"; break;
203 case REG_SZ
: val
= "REG_SZ"; break;
204 case REG_EXPAND_SZ
: val
= "REG_EXPAND_SZ"; break;
205 case REG_BINARY
: val
= "REG_BINARY"; break;
206 case REG_DWORD
: val
= "REG_DWORD"; break;
207 case REG_DWORD_BIG_ENDIAN
: val
= "REG_DWORD_BIG_ENDIAN"; break;
208 case REG_LINK
: val
= "REG_LINK"; break;
209 case REG_MULTI_SZ
: val
= "REG_MULTI_SZ"; break;
210 case REG_RESOURCE_LIST
: val
= "REG_RESOURCE_LIST"; break;
211 case REG_FULL_RESOURCE_DESCRIPTOR
: val
= "REG_FULL_RESOURCE_DESCRIPTOR"; break;
212 case REG_RESOURCE_REQUIREMENTS_LIST
: val
= "REG_RESOURCE_REQUIREMENTS_LIST"; break;
213 case REG_QWORD
: val
= "REG_QWORD"; break;
215 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
218 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_Data(struct ndr_push
*ndr
, int ndr_flags
, const union winreg_Data
*r
)
221 uint32_t _flags_save_UNION
= ndr
->flags
;
222 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_LITTLE_ENDIAN
);
223 if (ndr_flags
& NDR_SCALARS
) {
224 int level
= ndr_push_get_switch_value(ndr
, r
);
225 NDR_CHECK(ndr_push_union_align(ndr
, 4));
232 uint32_t _flags_save_string
= ndr
->flags
;
233 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
234 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
235 ndr
->flags
= _flags_save_string
;
239 case REG_EXPAND_SZ
: {
241 uint32_t _flags_save_string
= ndr
->flags
;
242 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
243 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
244 ndr
->flags
= _flags_save_string
;
250 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
251 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
252 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
253 ndr
->flags
= _flags_save_DATA_BLOB
;
258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
261 case REG_DWORD_BIG_ENDIAN
: {
263 uint32_t _flags_save_uint32
= ndr
->flags
;
264 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
266 ndr
->flags
= _flags_save_uint32
;
272 uint32_t _flags_save_string_array
= ndr
->flags
;
273 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
274 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
275 ndr
->flags
= _flags_save_string_array
;
281 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
282 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
283 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
284 ndr
->flags
= _flags_save_DATA_BLOB
;
290 if (ndr_flags
& NDR_BUFFERS
) {
291 int level
= ndr_push_get_switch_value(ndr
, r
);
308 case REG_DWORD_BIG_ENDIAN
:
319 ndr
->flags
= _flags_save_UNION
;
321 return NDR_ERR_SUCCESS
;
324 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_Data(struct ndr_pull
*ndr
, int ndr_flags
, union winreg_Data
*r
)
328 uint32_t _flags_save_UNION
= ndr
->flags
;
329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_LITTLE_ENDIAN
);
330 level
= ndr_pull_get_switch_value(ndr
, r
);
331 if (ndr_flags
& NDR_SCALARS
) {
332 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
339 uint32_t _flags_save_string
= ndr
->flags
;
340 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
341 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
342 ndr
->flags
= _flags_save_string
;
346 case REG_EXPAND_SZ
: {
348 uint32_t _flags_save_string
= ndr
->flags
;
349 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
350 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
351 ndr
->flags
= _flags_save_string
;
357 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
358 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
359 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
360 ndr
->flags
= _flags_save_DATA_BLOB
;
365 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
368 case REG_DWORD_BIG_ENDIAN
: {
370 uint32_t _flags_save_uint32
= ndr
->flags
;
371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
372 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
373 ndr
->flags
= _flags_save_uint32
;
379 uint32_t _flags_save_string_array
= ndr
->flags
;
380 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
381 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
382 ndr
->flags
= _flags_save_string_array
;
388 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
390 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
391 ndr
->flags
= _flags_save_DATA_BLOB
;
397 if (ndr_flags
& NDR_BUFFERS
) {
414 case REG_DWORD_BIG_ENDIAN
:
425 ndr
->flags
= _flags_save_UNION
;
427 return NDR_ERR_SUCCESS
;
430 _PUBLIC_
void ndr_print_winreg_Data(struct ndr_print
*ndr
, const char *name
, const union winreg_Data
*r
)
434 uint32_t _flags_save_UNION
= ndr
->flags
;
435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_LITTLE_ENDIAN
);
436 level
= ndr_print_get_switch_value(ndr
, r
);
437 ndr_print_union(ndr
, name
, level
, "winreg_Data");
443 ndr_print_string(ndr
, "string", r
->string
);
447 ndr_print_string(ndr
, "string", r
->string
);
451 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
455 ndr_print_uint32(ndr
, "value", r
->value
);
458 case REG_DWORD_BIG_ENDIAN
:
459 ndr_print_uint32(ndr
, "value", r
->value
);
463 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
467 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
471 ndr
->flags
= _flags_save_UNION
;