1/* parser auto-generated by pidl */
2
3#include "includes.h"
4#include "../librpc/gen_ndr/ndr_misc.h"
5
6_PUBLIC_ enum ndr_err_code ndr_push_GUID(struct ndr_push *ndr, int ndr_flags, const struct GUID *r)
7{
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));
16	}
17	if (ndr_flags & NDR_BUFFERS) {
18	}
19	return NDR_ERR_SUCCESS;
20}
21
22_PUBLIC_ enum ndr_err_code ndr_pull_GUID(struct ndr_pull *ndr, int ndr_flags, struct GUID *r)
23{
24	if (ndr_flags & NDR_SCALARS) {
25		NDR_CHECK(ndr_pull_align(ndr, 4));
26		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time_low));
27		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->time_mid));
28		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->time_hi_and_version));
29		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->clock_seq, 2));
30		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->node, 6));
31		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
32	}
33	if (ndr_flags & NDR_BUFFERS) {
34	}
35	return NDR_ERR_SUCCESS;
36}
37
38_PUBLIC_ size_t ndr_size_GUID(const struct GUID *r, struct smb_iconv_convenience *ic, int flags)
39{
40	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_GUID, ic);
41}
42
43_PUBLIC_ enum ndr_err_code ndr_push_ndr_syntax_id(struct ndr_push *ndr, int ndr_flags, const struct ndr_syntax_id *r)
44{
45	if (ndr_flags & NDR_SCALARS) {
46		NDR_CHECK(ndr_push_align(ndr, 4));
47		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->uuid));
48		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->if_version));
49		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
50	}
51	if (ndr_flags & NDR_BUFFERS) {
52	}
53	return NDR_ERR_SUCCESS;
54}
55
56_PUBLIC_ enum ndr_err_code ndr_pull_ndr_syntax_id(struct ndr_pull *ndr, int ndr_flags, struct ndr_syntax_id *r)
57{
58	if (ndr_flags & NDR_SCALARS) {
59		NDR_CHECK(ndr_pull_align(ndr, 4));
60		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->uuid));
61		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->if_version));
62		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
63	}
64	if (ndr_flags & NDR_BUFFERS) {
65	}
66	return NDR_ERR_SUCCESS;
67}
68
69_PUBLIC_ void ndr_print_ndr_syntax_id(struct ndr_print *ndr, const char *name, const struct ndr_syntax_id *r)
70{
71	ndr_print_struct(ndr, name, "ndr_syntax_id");
72	ndr->depth++;
73	ndr_print_GUID(ndr, "uuid", &r->uuid);
74	ndr_print_uint32(ndr, "if_version", r->if_version);
75	ndr->depth--;
76}
77
78_PUBLIC_ enum ndr_err_code ndr_push_policy_handle(struct ndr_push *ndr, int ndr_flags, const struct policy_handle *r)
79{
80	if (ndr_flags & NDR_SCALARS) {
81		NDR_CHECK(ndr_push_align(ndr, 4));
82		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->handle_type));
83		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->uuid));
84		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
85	}
86	if (ndr_flags & NDR_BUFFERS) {
87	}
88	return NDR_ERR_SUCCESS;
89}
90
91_PUBLIC_ enum ndr_err_code ndr_pull_policy_handle(struct ndr_pull *ndr, int ndr_flags, struct policy_handle *r)
92{
93	if (ndr_flags & NDR_SCALARS) {
94		NDR_CHECK(ndr_pull_align(ndr, 4));
95		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->handle_type));
96		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->uuid));
97		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
98	}
99	if (ndr_flags & NDR_BUFFERS) {
100	}
101	return NDR_ERR_SUCCESS;
102}
103
104_PUBLIC_ void ndr_print_policy_handle(struct ndr_print *ndr, const char *name, const struct policy_handle *r)
105{
106	ndr_print_struct(ndr, name, "policy_handle");
107	ndr->depth++;
108	ndr_print_uint32(ndr, "handle_type", r->handle_type);
109	ndr_print_GUID(ndr, "uuid", &r->uuid);
110	ndr->depth--;
111}
112
113_PUBLIC_ enum ndr_err_code ndr_push_netr_SchannelType(struct ndr_push *ndr, int ndr_flags, enum netr_SchannelType r)
114{
115	NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
116	return NDR_ERR_SUCCESS;
117}
118
119_PUBLIC_ enum ndr_err_code ndr_pull_netr_SchannelType(struct ndr_pull *ndr, int ndr_flags, enum netr_SchannelType *r)
120{
121	uint16_t v;
122	NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
123	*r = v;
124	return NDR_ERR_SUCCESS;
125}
126
127_PUBLIC_ void ndr_print_netr_SchannelType(struct ndr_print *ndr, const char *name, enum netr_SchannelType r)
128{
129	const char *val = NULL;
130
131	switch (r) {
132		case SEC_CHAN_NULL: val = "SEC_CHAN_NULL"; break;
133		case SEC_CHAN_WKSTA: val = "SEC_CHAN_WKSTA"; break;
134		case SEC_CHAN_DNS_DOMAIN: val = "SEC_CHAN_DNS_DOMAIN"; break;
135		case SEC_CHAN_DOMAIN: val = "SEC_CHAN_DOMAIN"; break;
136		case SEC_CHAN_BDC: val = "SEC_CHAN_BDC"; break;
137	}
138	ndr_print_enum(ndr, name, "ENUM", val, r);
139}
140
141_PUBLIC_ enum ndr_err_code ndr_push_KRB5_EDATA_NTSTATUS(struct ndr_push *ndr, int ndr_flags, const struct KRB5_EDATA_NTSTATUS *r)
142{
143	if (ndr_flags & NDR_SCALARS) {
144		NDR_CHECK(ndr_push_align(ndr, 4));
145		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->ntstatus));
146		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
147		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
148		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
149	}
150	if (ndr_flags & NDR_BUFFERS) {
151	}
152	return NDR_ERR_SUCCESS;
153}
154
155_PUBLIC_ enum ndr_err_code ndr_pull_KRB5_EDATA_NTSTATUS(struct ndr_pull *ndr, int ndr_flags, struct KRB5_EDATA_NTSTATUS *r)
156{
157	if (ndr_flags & NDR_SCALARS) {
158		NDR_CHECK(ndr_pull_align(ndr, 4));
159		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->ntstatus));
160		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
161		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
162		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
163	}
164	if (ndr_flags & NDR_BUFFERS) {
165	}
166	return NDR_ERR_SUCCESS;
167}
168
169_PUBLIC_ void ndr_print_KRB5_EDATA_NTSTATUS(struct ndr_print *ndr, const char *name, const struct KRB5_EDATA_NTSTATUS *r)
170{
171	ndr_print_struct(ndr, name, "KRB5_EDATA_NTSTATUS");
172	ndr->depth++;
173	ndr_print_NTSTATUS(ndr, "ntstatus", r->ntstatus);
174	ndr_print_uint32(ndr, "unknown1", r->unknown1);
175	ndr_print_uint32(ndr, "unknown2", r->unknown2);
176	ndr->depth--;
177}
178
179_PUBLIC_ enum ndr_err_code ndr_push_winreg_Type(struct ndr_push *ndr, int ndr_flags, enum winreg_Type r)
180{
181	NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
182	return NDR_ERR_SUCCESS;
183}
184
185_PUBLIC_ enum ndr_err_code ndr_pull_winreg_Type(struct ndr_pull *ndr, int ndr_flags, enum winreg_Type *r)
186{
187	uint32_t v;
188	NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
189	*r = v;
190	return NDR_ERR_SUCCESS;
191}
192
193_PUBLIC_ void ndr_print_winreg_Type(struct ndr_print *ndr, const char *name, enum winreg_Type r)
194{
195	const char *val = NULL;
196
197	switch (r) {
198		case REG_NONE: val = "REG_NONE"; break;
199		case REG_SZ: val = "REG_SZ"; break;
200		case REG_EXPAND_SZ: val = "REG_EXPAND_SZ"; break;
201		case REG_BINARY: val = "REG_BINARY"; break;
202		case REG_DWORD: val = "REG_DWORD"; break;
203		case REG_DWORD_BIG_ENDIAN: val = "REG_DWORD_BIG_ENDIAN"; break;
204		case REG_LINK: val = "REG_LINK"; break;
205		case REG_MULTI_SZ: val = "REG_MULTI_SZ"; break;
206		case REG_RESOURCE_LIST: val = "REG_RESOURCE_LIST"; break;
207		case REG_FULL_RESOURCE_DESCRIPTOR: val = "REG_FULL_RESOURCE_DESCRIPTOR"; break;
208		case REG_RESOURCE_REQUIREMENTS_LIST: val = "REG_RESOURCE_REQUIREMENTS_LIST"; break;
209		case REG_QWORD: val = "REG_QWORD"; break;
210	}
211	ndr_print_enum(ndr, name, "ENUM", val, r);
212}
213
214_PUBLIC_ enum ndr_err_code ndr_push_winreg_Data(struct ndr_push *ndr, int ndr_flags, const union winreg_Data *r)
215{
216	{
217		uint32_t _flags_save_UNION = ndr->flags;
218		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
219		if (ndr_flags & NDR_SCALARS) {
220			int level = ndr_push_get_switch_value(ndr, r);
221			NDR_CHECK(ndr_push_union_align(ndr, 4));
222			switch (level) {
223				case REG_NONE: {
224				break; }
225
226				case REG_SZ: {
227					{
228						uint32_t _flags_save_string = ndr->flags;
229						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
230						NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
231						ndr->flags = _flags_save_string;
232					}
233				break; }
234
235				case REG_EXPAND_SZ: {
236					{
237						uint32_t _flags_save_string = ndr->flags;
238						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
239						NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
240						ndr->flags = _flags_save_string;
241					}
242				break; }
243
244				case REG_BINARY: {
245					{
246						uint32_t _flags_save_DATA_BLOB = ndr->flags;
247						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
248						NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
249						ndr->flags = _flags_save_DATA_BLOB;
250					}
251				break; }
252
253				case REG_DWORD: {
254					NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
255				break; }
256
257				case REG_DWORD_BIG_ENDIAN: {
258					{
259						uint32_t _flags_save_uint32 = ndr->flags;
260						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
261						NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
262						ndr->flags = _flags_save_uint32;
263					}
264				break; }
265
266				case REG_MULTI_SZ: {
267					{
268						uint32_t _flags_save_string_array = ndr->flags;
269						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
270						NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
271						ndr->flags = _flags_save_string_array;
272					}
273				break; }
274
275				default: {
276					{
277						uint32_t _flags_save_DATA_BLOB = ndr->flags;
278						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
279						NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
280						ndr->flags = _flags_save_DATA_BLOB;
281					}
282				break; }
283
284			}
285		}
286		if (ndr_flags & NDR_BUFFERS) {
287			int level = ndr_push_get_switch_value(ndr, r);
288			switch (level) {
289				case REG_NONE:
290				break;
291
292				case REG_SZ:
293				break;
294
295				case REG_EXPAND_SZ:
296				break;
297
298				case REG_BINARY:
299				break;
300
301				case REG_DWORD:
302				break;
303
304				case REG_DWORD_BIG_ENDIAN:
305				break;
306
307				case REG_MULTI_SZ:
308				break;
309
310				default:
311				break;
312
313			}
314		}
315		ndr->flags = _flags_save_UNION;
316	}
317	return NDR_ERR_SUCCESS;
318}
319
320_PUBLIC_ enum ndr_err_code ndr_pull_winreg_Data(struct ndr_pull *ndr, int ndr_flags, union winreg_Data *r)
321{
322	int level;
323	{
324		uint32_t _flags_save_UNION = ndr->flags;
325		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
326		level = ndr_pull_get_switch_value(ndr, r);
327		if (ndr_flags & NDR_SCALARS) {
328			NDR_CHECK(ndr_pull_union_align(ndr, 4));
329			switch (level) {
330				case REG_NONE: {
331				break; }
332
333				case REG_SZ: {
334					{
335						uint32_t _flags_save_string = ndr->flags;
336						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
337						NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
338						ndr->flags = _flags_save_string;
339					}
340				break; }
341
342				case REG_EXPAND_SZ: {
343					{
344						uint32_t _flags_save_string = ndr->flags;
345						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
346						NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
347						ndr->flags = _flags_save_string;
348					}
349				break; }
350
351				case REG_BINARY: {
352					{
353						uint32_t _flags_save_DATA_BLOB = ndr->flags;
354						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
355						NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
356						ndr->flags = _flags_save_DATA_BLOB;
357					}
358				break; }
359
360				case REG_DWORD: {
361					NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
362				break; }
363
364				case REG_DWORD_BIG_ENDIAN: {
365					{
366						uint32_t _flags_save_uint32 = ndr->flags;
367						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
368						NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
369						ndr->flags = _flags_save_uint32;
370					}
371				break; }
372
373				case REG_MULTI_SZ: {
374					{
375						uint32_t _flags_save_string_array = ndr->flags;
376						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
377						NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
378						ndr->flags = _flags_save_string_array;
379					}
380				break; }
381
382				default: {
383					{
384						uint32_t _flags_save_DATA_BLOB = ndr->flags;
385						ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
386						NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
387						ndr->flags = _flags_save_DATA_BLOB;
388					}
389				break; }
390
391			}
392		}
393		if (ndr_flags & NDR_BUFFERS) {
394			switch (level) {
395				case REG_NONE:
396				break;
397
398				case REG_SZ:
399				break;
400
401				case REG_EXPAND_SZ:
402				break;
403
404				case REG_BINARY:
405				break;
406
407				case REG_DWORD:
408				break;
409
410				case REG_DWORD_BIG_ENDIAN:
411				break;
412
413				case REG_MULTI_SZ:
414				break;
415
416				default:
417				break;
418
419			}
420		}
421		ndr->flags = _flags_save_UNION;
422	}
423	return NDR_ERR_SUCCESS;
424}
425
426_PUBLIC_ void ndr_print_winreg_Data(struct ndr_print *ndr, const char *name, const union winreg_Data *r)
427{
428	int level;
429	{
430		uint32_t _flags_save_UNION = ndr->flags;
431		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
432		level = ndr_print_get_switch_value(ndr, r);
433		ndr_print_union(ndr, name, level, "winreg_Data");
434		switch (level) {
435			case REG_NONE:
436			break;
437
438			case REG_SZ:
439				ndr_print_string(ndr, "string", r->string);
440			break;
441
442			case REG_EXPAND_SZ:
443				ndr_print_string(ndr, "string", r->string);
444			break;
445
446			case REG_BINARY:
447				ndr_print_DATA_BLOB(ndr, "binary", r->binary);
448			break;
449
450			case REG_DWORD:
451				ndr_print_uint32(ndr, "value", r->value);
452			break;
453
454			case REG_DWORD_BIG_ENDIAN:
455				ndr_print_uint32(ndr, "value", r->value);
456			break;
457
458			case REG_MULTI_SZ:
459				ndr_print_string_array(ndr, "string_array", r->string_array);
460			break;
461
462			default:
463				ndr_print_DATA_BLOB(ndr, "data", r->data);
464			break;
465
466		}
467		ndr->flags = _flags_save_UNION;
468	}
469}
470
471