• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/librpc/gen_ndr/
1/* parser auto-generated by pidl */
2
3#include "includes.h"
4#include "../librpc/gen_ndr/ndr_dcerpc.h"
5
6#include "librpc/gen_ndr/ndr_misc.h"
7static enum ndr_err_code ndr_push_dcerpc_ctx_list(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_ctx_list *r)
8{
9	uint32_t cntr_transfer_syntaxes_0;
10	if (ndr_flags & NDR_SCALARS) {
11		NDR_CHECK(ndr_push_align(ndr, 4));
12		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->context_id));
13		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_transfer_syntaxes));
14		NDR_CHECK(ndr_push_ndr_syntax_id(ndr, NDR_SCALARS, &r->abstract_syntax));
15		for (cntr_transfer_syntaxes_0 = 0; cntr_transfer_syntaxes_0 < r->num_transfer_syntaxes; cntr_transfer_syntaxes_0++) {
16			NDR_CHECK(ndr_push_ndr_syntax_id(ndr, NDR_SCALARS, &r->transfer_syntaxes[cntr_transfer_syntaxes_0]));
17		}
18		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19	}
20	if (ndr_flags & NDR_BUFFERS) {
21	}
22	return NDR_ERR_SUCCESS;
23}
24
25static enum ndr_err_code ndr_pull_dcerpc_ctx_list(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_ctx_list *r)
26{
27	uint32_t cntr_transfer_syntaxes_0;
28	TALLOC_CTX *_mem_save_transfer_syntaxes_0;
29	if (ndr_flags & NDR_SCALARS) {
30		NDR_CHECK(ndr_pull_align(ndr, 4));
31		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->context_id));
32		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_transfer_syntaxes));
33		NDR_CHECK(ndr_pull_ndr_syntax_id(ndr, NDR_SCALARS, &r->abstract_syntax));
34		NDR_PULL_ALLOC_N(ndr, r->transfer_syntaxes, r->num_transfer_syntaxes);
35		_mem_save_transfer_syntaxes_0 = NDR_PULL_GET_MEM_CTX(ndr);
36		NDR_PULL_SET_MEM_CTX(ndr, r->transfer_syntaxes, 0);
37		for (cntr_transfer_syntaxes_0 = 0; cntr_transfer_syntaxes_0 < r->num_transfer_syntaxes; cntr_transfer_syntaxes_0++) {
38			NDR_CHECK(ndr_pull_ndr_syntax_id(ndr, NDR_SCALARS, &r->transfer_syntaxes[cntr_transfer_syntaxes_0]));
39		}
40		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transfer_syntaxes_0, 0);
41		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
42	}
43	if (ndr_flags & NDR_BUFFERS) {
44	}
45	return NDR_ERR_SUCCESS;
46}
47
48_PUBLIC_ void ndr_print_dcerpc_ctx_list(struct ndr_print *ndr, const char *name, const struct dcerpc_ctx_list *r)
49{
50	uint32_t cntr_transfer_syntaxes_0;
51	ndr_print_struct(ndr, name, "dcerpc_ctx_list");
52	ndr->depth++;
53	ndr_print_uint16(ndr, "context_id", r->context_id);
54	ndr_print_uint8(ndr, "num_transfer_syntaxes", r->num_transfer_syntaxes);
55	ndr_print_ndr_syntax_id(ndr, "abstract_syntax", &r->abstract_syntax);
56	ndr->print(ndr, "%s: ARRAY(%d)", "transfer_syntaxes", (int)r->num_transfer_syntaxes);
57	ndr->depth++;
58	for (cntr_transfer_syntaxes_0=0;cntr_transfer_syntaxes_0<r->num_transfer_syntaxes;cntr_transfer_syntaxes_0++) {
59		char *idx_0=NULL;
60		if (asprintf(&idx_0, "[%d]", cntr_transfer_syntaxes_0) != -1) {
61			ndr_print_ndr_syntax_id(ndr, "transfer_syntaxes", &r->transfer_syntaxes[cntr_transfer_syntaxes_0]);
62			free(idx_0);
63		}
64	}
65	ndr->depth--;
66	ndr->depth--;
67}
68
69static enum ndr_err_code ndr_push_dcerpc_bind(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_bind *r)
70{
71	uint32_t cntr_ctx_list_0;
72	if (ndr_flags & NDR_SCALARS) {
73		NDR_CHECK(ndr_push_align(ndr, 4));
74		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_xmit_frag));
75		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_recv_frag));
76		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->assoc_group_id));
77		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_contexts));
78		for (cntr_ctx_list_0 = 0; cntr_ctx_list_0 < r->num_contexts; cntr_ctx_list_0++) {
79			NDR_CHECK(ndr_push_dcerpc_ctx_list(ndr, NDR_SCALARS, &r->ctx_list[cntr_ctx_list_0]));
80		}
81		{
82			uint32_t _flags_save_DATA_BLOB = ndr->flags;
83			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
84			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
85			ndr->flags = _flags_save_DATA_BLOB;
86		}
87		{
88			uint32_t _flags_save_DATA_BLOB = ndr->flags;
89			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
90			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
91			ndr->flags = _flags_save_DATA_BLOB;
92		}
93		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
94	}
95	if (ndr_flags & NDR_BUFFERS) {
96	}
97	return NDR_ERR_SUCCESS;
98}
99
100static enum ndr_err_code ndr_pull_dcerpc_bind(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_bind *r)
101{
102	uint32_t cntr_ctx_list_0;
103	TALLOC_CTX *_mem_save_ctx_list_0;
104	if (ndr_flags & NDR_SCALARS) {
105		NDR_CHECK(ndr_pull_align(ndr, 4));
106		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_xmit_frag));
107		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_recv_frag));
108		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->assoc_group_id));
109		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_contexts));
110		NDR_PULL_ALLOC_N(ndr, r->ctx_list, r->num_contexts);
111		_mem_save_ctx_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
112		NDR_PULL_SET_MEM_CTX(ndr, r->ctx_list, 0);
113		for (cntr_ctx_list_0 = 0; cntr_ctx_list_0 < r->num_contexts; cntr_ctx_list_0++) {
114			NDR_CHECK(ndr_pull_dcerpc_ctx_list(ndr, NDR_SCALARS, &r->ctx_list[cntr_ctx_list_0]));
115		}
116		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctx_list_0, 0);
117		{
118			uint32_t _flags_save_DATA_BLOB = ndr->flags;
119			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
120			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
121			ndr->flags = _flags_save_DATA_BLOB;
122		}
123		{
124			uint32_t _flags_save_DATA_BLOB = ndr->flags;
125			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
126			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
127			ndr->flags = _flags_save_DATA_BLOB;
128		}
129		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
130	}
131	if (ndr_flags & NDR_BUFFERS) {
132	}
133	return NDR_ERR_SUCCESS;
134}
135
136_PUBLIC_ void ndr_print_dcerpc_bind(struct ndr_print *ndr, const char *name, const struct dcerpc_bind *r)
137{
138	uint32_t cntr_ctx_list_0;
139	ndr_print_struct(ndr, name, "dcerpc_bind");
140	ndr->depth++;
141	ndr_print_uint16(ndr, "max_xmit_frag", r->max_xmit_frag);
142	ndr_print_uint16(ndr, "max_recv_frag", r->max_recv_frag);
143	ndr_print_uint32(ndr, "assoc_group_id", r->assoc_group_id);
144	ndr_print_uint8(ndr, "num_contexts", r->num_contexts);
145	ndr->print(ndr, "%s: ARRAY(%d)", "ctx_list", (int)r->num_contexts);
146	ndr->depth++;
147	for (cntr_ctx_list_0=0;cntr_ctx_list_0<r->num_contexts;cntr_ctx_list_0++) {
148		char *idx_0=NULL;
149		if (asprintf(&idx_0, "[%d]", cntr_ctx_list_0) != -1) {
150			ndr_print_dcerpc_ctx_list(ndr, "ctx_list", &r->ctx_list[cntr_ctx_list_0]);
151			free(idx_0);
152		}
153	}
154	ndr->depth--;
155	ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
156	ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
157	ndr->depth--;
158}
159
160static enum ndr_err_code ndr_push_dcerpc_empty(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_empty *r)
161{
162	if (ndr_flags & NDR_SCALARS) {
163		NDR_CHECK(ndr_push_align(ndr, 1));
164		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
165	}
166	if (ndr_flags & NDR_BUFFERS) {
167	}
168	return NDR_ERR_SUCCESS;
169}
170
171static enum ndr_err_code ndr_pull_dcerpc_empty(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_empty *r)
172{
173	if (ndr_flags & NDR_SCALARS) {
174		NDR_CHECK(ndr_pull_align(ndr, 1));
175		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
176	}
177	if (ndr_flags & NDR_BUFFERS) {
178	}
179	return NDR_ERR_SUCCESS;
180}
181
182_PUBLIC_ void ndr_print_dcerpc_empty(struct ndr_print *ndr, const char *name, const struct dcerpc_empty *r)
183{
184	ndr_print_struct(ndr, name, "dcerpc_empty");
185	ndr->depth++;
186	ndr->depth--;
187}
188
189static enum ndr_err_code ndr_push_dcerpc_object(struct ndr_push *ndr, int ndr_flags, const union dcerpc_object *r)
190{
191	if (ndr_flags & NDR_SCALARS) {
192		int level = ndr_push_get_switch_value(ndr, r);
193		NDR_CHECK(ndr_push_union_align(ndr, 4));
194		switch (level) {
195			default: {
196				NDR_CHECK(ndr_push_dcerpc_empty(ndr, NDR_SCALARS, &r->empty));
197			break; }
198
199			case LIBNDR_FLAG_OBJECT_PRESENT: {
200				NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->object));
201			break; }
202
203		}
204	}
205	if (ndr_flags & NDR_BUFFERS) {
206		int level = ndr_push_get_switch_value(ndr, r);
207		switch (level) {
208			default:
209			break;
210
211			case LIBNDR_FLAG_OBJECT_PRESENT:
212			break;
213
214		}
215	}
216	return NDR_ERR_SUCCESS;
217}
218
219static enum ndr_err_code ndr_pull_dcerpc_object(struct ndr_pull *ndr, int ndr_flags, union dcerpc_object *r)
220{
221	int level;
222	level = ndr_pull_get_switch_value(ndr, r);
223	if (ndr_flags & NDR_SCALARS) {
224		NDR_CHECK(ndr_pull_union_align(ndr, 4));
225		switch (level) {
226			default: {
227				NDR_CHECK(ndr_pull_dcerpc_empty(ndr, NDR_SCALARS, &r->empty));
228			break; }
229
230			case LIBNDR_FLAG_OBJECT_PRESENT: {
231				NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->object));
232			break; }
233
234		}
235	}
236	if (ndr_flags & NDR_BUFFERS) {
237		switch (level) {
238			default:
239			break;
240
241			case LIBNDR_FLAG_OBJECT_PRESENT:
242			break;
243
244		}
245	}
246	return NDR_ERR_SUCCESS;
247}
248
249_PUBLIC_ void ndr_print_dcerpc_object(struct ndr_print *ndr, const char *name, const union dcerpc_object *r)
250{
251	int level;
252	level = ndr_print_get_switch_value(ndr, r);
253	ndr_print_union(ndr, name, level, "dcerpc_object");
254	switch (level) {
255		default:
256			ndr_print_dcerpc_empty(ndr, "empty", &r->empty);
257		break;
258
259		case LIBNDR_FLAG_OBJECT_PRESENT:
260			ndr_print_GUID(ndr, "object", &r->object);
261		break;
262
263	}
264}
265
266static enum ndr_err_code ndr_push_dcerpc_request(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_request *r)
267{
268	if (ndr_flags & NDR_SCALARS) {
269		NDR_CHECK(ndr_push_align(ndr, 4));
270		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->alloc_hint));
271		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->context_id));
272		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->opnum));
273		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT));
274		NDR_CHECK(ndr_push_dcerpc_object(ndr, NDR_SCALARS, &r->object));
275		{
276			uint32_t _flags_save_DATA_BLOB = ndr->flags;
277			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
278			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
279			ndr->flags = _flags_save_DATA_BLOB;
280		}
281		{
282			uint32_t _flags_save_DATA_BLOB = ndr->flags;
283			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
284			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->stub_and_verifier));
285			ndr->flags = _flags_save_DATA_BLOB;
286		}
287		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
288	}
289	if (ndr_flags & NDR_BUFFERS) {
290	}
291	return NDR_ERR_SUCCESS;
292}
293
294static enum ndr_err_code ndr_pull_dcerpc_request(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_request *r)
295{
296	if (ndr_flags & NDR_SCALARS) {
297		NDR_CHECK(ndr_pull_align(ndr, 4));
298		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->alloc_hint));
299		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->context_id));
300		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->opnum));
301		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT));
302		NDR_CHECK(ndr_pull_dcerpc_object(ndr, NDR_SCALARS, &r->object));
303		{
304			uint32_t _flags_save_DATA_BLOB = ndr->flags;
305			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
306			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
307			ndr->flags = _flags_save_DATA_BLOB;
308		}
309		{
310			uint32_t _flags_save_DATA_BLOB = ndr->flags;
311			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
312			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->stub_and_verifier));
313			ndr->flags = _flags_save_DATA_BLOB;
314		}
315		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
316	}
317	if (ndr_flags & NDR_BUFFERS) {
318	}
319	return NDR_ERR_SUCCESS;
320}
321
322_PUBLIC_ void ndr_print_dcerpc_request(struct ndr_print *ndr, const char *name, const struct dcerpc_request *r)
323{
324	ndr_print_struct(ndr, name, "dcerpc_request");
325	ndr->depth++;
326	ndr_print_uint32(ndr, "alloc_hint", r->alloc_hint);
327	ndr_print_uint16(ndr, "context_id", r->context_id);
328	ndr_print_uint16(ndr, "opnum", r->opnum);
329	ndr_print_set_switch_value(ndr, &r->object, ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT);
330	ndr_print_dcerpc_object(ndr, "object", &r->object);
331	ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
332	ndr_print_DATA_BLOB(ndr, "stub_and_verifier", r->stub_and_verifier);
333	ndr->depth--;
334}
335
336static enum ndr_err_code ndr_push_dcerpc_ack_ctx(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_ack_ctx *r)
337{
338	if (ndr_flags & NDR_SCALARS) {
339		NDR_CHECK(ndr_push_align(ndr, 4));
340		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->result));
341		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reason));
342		NDR_CHECK(ndr_push_ndr_syntax_id(ndr, NDR_SCALARS, &r->syntax));
343		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
344	}
345	if (ndr_flags & NDR_BUFFERS) {
346	}
347	return NDR_ERR_SUCCESS;
348}
349
350static enum ndr_err_code ndr_pull_dcerpc_ack_ctx(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_ack_ctx *r)
351{
352	if (ndr_flags & NDR_SCALARS) {
353		NDR_CHECK(ndr_pull_align(ndr, 4));
354		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->result));
355		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reason));
356		NDR_CHECK(ndr_pull_ndr_syntax_id(ndr, NDR_SCALARS, &r->syntax));
357		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
358	}
359	if (ndr_flags & NDR_BUFFERS) {
360	}
361	return NDR_ERR_SUCCESS;
362}
363
364_PUBLIC_ void ndr_print_dcerpc_ack_ctx(struct ndr_print *ndr, const char *name, const struct dcerpc_ack_ctx *r)
365{
366	ndr_print_struct(ndr, name, "dcerpc_ack_ctx");
367	ndr->depth++;
368	ndr_print_uint16(ndr, "result", r->result);
369	ndr_print_uint16(ndr, "reason", r->reason);
370	ndr_print_ndr_syntax_id(ndr, "syntax", &r->syntax);
371	ndr->depth--;
372}
373
374static enum ndr_err_code ndr_push_dcerpc_bind_ack(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_bind_ack *r)
375{
376	uint32_t cntr_ctx_list_0;
377	if (ndr_flags & NDR_SCALARS) {
378		NDR_CHECK(ndr_push_align(ndr, 4));
379		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_xmit_frag));
380		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_recv_frag));
381		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->assoc_group_id));
382		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->secondary_address) + 1));
383		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->secondary_address, strlen(r->secondary_address) + 1, sizeof(uint8_t), CH_DOS));
384		{
385			uint32_t _flags_save_DATA_BLOB = ndr->flags;
386			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
387			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
388			ndr->flags = _flags_save_DATA_BLOB;
389		}
390		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_results));
391		for (cntr_ctx_list_0 = 0; cntr_ctx_list_0 < r->num_results; cntr_ctx_list_0++) {
392			NDR_CHECK(ndr_push_dcerpc_ack_ctx(ndr, NDR_SCALARS, &r->ctx_list[cntr_ctx_list_0]));
393		}
394		{
395			uint32_t _flags_save_DATA_BLOB = ndr->flags;
396			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
397			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
398			ndr->flags = _flags_save_DATA_BLOB;
399		}
400		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
401	}
402	if (ndr_flags & NDR_BUFFERS) {
403	}
404	return NDR_ERR_SUCCESS;
405}
406
407static enum ndr_err_code ndr_pull_dcerpc_bind_ack(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_bind_ack *r)
408{
409	uint32_t cntr_ctx_list_0;
410	TALLOC_CTX *_mem_save_ctx_list_0;
411	if (ndr_flags & NDR_SCALARS) {
412		NDR_CHECK(ndr_pull_align(ndr, 4));
413		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_xmit_frag));
414		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_recv_frag));
415		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->assoc_group_id));
416		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->secondary_address_size));
417		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->secondary_address, r->secondary_address_size, sizeof(uint8_t), CH_DOS));
418		{
419			uint32_t _flags_save_DATA_BLOB = ndr->flags;
420			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
421			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
422			ndr->flags = _flags_save_DATA_BLOB;
423		}
424		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_results));
425		NDR_PULL_ALLOC_N(ndr, r->ctx_list, r->num_results);
426		_mem_save_ctx_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
427		NDR_PULL_SET_MEM_CTX(ndr, r->ctx_list, 0);
428		for (cntr_ctx_list_0 = 0; cntr_ctx_list_0 < r->num_results; cntr_ctx_list_0++) {
429			NDR_CHECK(ndr_pull_dcerpc_ack_ctx(ndr, NDR_SCALARS, &r->ctx_list[cntr_ctx_list_0]));
430		}
431		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctx_list_0, 0);
432		{
433			uint32_t _flags_save_DATA_BLOB = ndr->flags;
434			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
435			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
436			ndr->flags = _flags_save_DATA_BLOB;
437		}
438		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
439	}
440	if (ndr_flags & NDR_BUFFERS) {
441	}
442	return NDR_ERR_SUCCESS;
443}
444
445_PUBLIC_ void ndr_print_dcerpc_bind_ack(struct ndr_print *ndr, const char *name, const struct dcerpc_bind_ack *r)
446{
447	uint32_t cntr_ctx_list_0;
448	ndr_print_struct(ndr, name, "dcerpc_bind_ack");
449	ndr->depth++;
450	ndr_print_uint16(ndr, "max_xmit_frag", r->max_xmit_frag);
451	ndr_print_uint16(ndr, "max_recv_frag", r->max_recv_frag);
452	ndr_print_uint32(ndr, "assoc_group_id", r->assoc_group_id);
453	ndr_print_uint16(ndr, "secondary_address_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->secondary_address) + 1:r->secondary_address_size);
454	ndr_print_string(ndr, "secondary_address", r->secondary_address);
455	ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
456	ndr_print_uint8(ndr, "num_results", r->num_results);
457	ndr->print(ndr, "%s: ARRAY(%d)", "ctx_list", (int)r->num_results);
458	ndr->depth++;
459	for (cntr_ctx_list_0=0;cntr_ctx_list_0<r->num_results;cntr_ctx_list_0++) {
460		char *idx_0=NULL;
461		if (asprintf(&idx_0, "[%d]", cntr_ctx_list_0) != -1) {
462			ndr_print_dcerpc_ack_ctx(ndr, "ctx_list", &r->ctx_list[cntr_ctx_list_0]);
463			free(idx_0);
464		}
465	}
466	ndr->depth--;
467	ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
468	ndr->depth--;
469}
470
471static enum ndr_err_code ndr_push_dcerpc_bind_nak_versions(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_bind_nak_versions *r)
472{
473	uint32_t cntr_versions_0;
474	if (ndr_flags & NDR_SCALARS) {
475		NDR_CHECK(ndr_push_align(ndr, 4));
476		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_versions));
477		for (cntr_versions_0 = 0; cntr_versions_0 < r->num_versions; cntr_versions_0++) {
478			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->versions[cntr_versions_0]));
479		}
480		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
481	}
482	if (ndr_flags & NDR_BUFFERS) {
483	}
484	return NDR_ERR_SUCCESS;
485}
486
487static enum ndr_err_code ndr_pull_dcerpc_bind_nak_versions(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_bind_nak_versions *r)
488{
489	uint32_t cntr_versions_0;
490	TALLOC_CTX *_mem_save_versions_0;
491	if (ndr_flags & NDR_SCALARS) {
492		NDR_CHECK(ndr_pull_align(ndr, 4));
493		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_versions));
494		NDR_PULL_ALLOC_N(ndr, r->versions, r->num_versions);
495		_mem_save_versions_0 = NDR_PULL_GET_MEM_CTX(ndr);
496		NDR_PULL_SET_MEM_CTX(ndr, r->versions, 0);
497		for (cntr_versions_0 = 0; cntr_versions_0 < r->num_versions; cntr_versions_0++) {
498			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->versions[cntr_versions_0]));
499		}
500		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_versions_0, 0);
501		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
502	}
503	if (ndr_flags & NDR_BUFFERS) {
504	}
505	return NDR_ERR_SUCCESS;
506}
507
508_PUBLIC_ void ndr_print_dcerpc_bind_nak_versions(struct ndr_print *ndr, const char *name, const struct dcerpc_bind_nak_versions *r)
509{
510	uint32_t cntr_versions_0;
511	ndr_print_struct(ndr, name, "dcerpc_bind_nak_versions");
512	ndr->depth++;
513	ndr_print_uint32(ndr, "num_versions", r->num_versions);
514	ndr->print(ndr, "%s: ARRAY(%d)", "versions", (int)r->num_versions);
515	ndr->depth++;
516	for (cntr_versions_0=0;cntr_versions_0<r->num_versions;cntr_versions_0++) {
517		char *idx_0=NULL;
518		if (asprintf(&idx_0, "[%d]", cntr_versions_0) != -1) {
519			ndr_print_uint32(ndr, "versions", r->versions[cntr_versions_0]);
520			free(idx_0);
521		}
522	}
523	ndr->depth--;
524	ndr->depth--;
525}
526
527static enum ndr_err_code ndr_push_dcerpc_bind_nak_versions_ctr(struct ndr_push *ndr, int ndr_flags, const union dcerpc_bind_nak_versions_ctr *r)
528{
529	if (ndr_flags & NDR_SCALARS) {
530		int level = ndr_push_get_switch_value(ndr, r);
531		NDR_CHECK(ndr_push_union_align(ndr, 4));
532		switch (level) {
533			case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED: {
534				NDR_CHECK(ndr_push_dcerpc_bind_nak_versions(ndr, NDR_SCALARS, &r->v));
535			break; }
536
537			default: {
538			break; }
539
540		}
541	}
542	if (ndr_flags & NDR_BUFFERS) {
543		int level = ndr_push_get_switch_value(ndr, r);
544		switch (level) {
545			case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED:
546			break;
547
548			default:
549			break;
550
551		}
552	}
553	return NDR_ERR_SUCCESS;
554}
555
556static enum ndr_err_code ndr_pull_dcerpc_bind_nak_versions_ctr(struct ndr_pull *ndr, int ndr_flags, union dcerpc_bind_nak_versions_ctr *r)
557{
558	int level;
559	level = ndr_pull_get_switch_value(ndr, r);
560	if (ndr_flags & NDR_SCALARS) {
561		NDR_CHECK(ndr_pull_union_align(ndr, 4));
562		switch (level) {
563			case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED: {
564				NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions(ndr, NDR_SCALARS, &r->v));
565			break; }
566
567			default: {
568			break; }
569
570		}
571	}
572	if (ndr_flags & NDR_BUFFERS) {
573		switch (level) {
574			case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED:
575			break;
576
577			default:
578			break;
579
580		}
581	}
582	return NDR_ERR_SUCCESS;
583}
584
585_PUBLIC_ void ndr_print_dcerpc_bind_nak_versions_ctr(struct ndr_print *ndr, const char *name, const union dcerpc_bind_nak_versions_ctr *r)
586{
587	int level;
588	level = ndr_print_get_switch_value(ndr, r);
589	ndr_print_union(ndr, name, level, "dcerpc_bind_nak_versions_ctr");
590	switch (level) {
591		case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED:
592			ndr_print_dcerpc_bind_nak_versions(ndr, "v", &r->v);
593		break;
594
595		default:
596		break;
597
598	}
599}
600
601static enum ndr_err_code ndr_push_dcerpc_bind_nak(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_bind_nak *r)
602{
603	if (ndr_flags & NDR_SCALARS) {
604		NDR_CHECK(ndr_push_align(ndr, 4));
605		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reject_reason));
606		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->versions, r->reject_reason));
607		NDR_CHECK(ndr_push_dcerpc_bind_nak_versions_ctr(ndr, NDR_SCALARS, &r->versions));
608		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
609	}
610	if (ndr_flags & NDR_BUFFERS) {
611		NDR_CHECK(ndr_push_dcerpc_bind_nak_versions_ctr(ndr, NDR_BUFFERS, &r->versions));
612	}
613	return NDR_ERR_SUCCESS;
614}
615
616static enum ndr_err_code ndr_pull_dcerpc_bind_nak(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_bind_nak *r)
617{
618	if (ndr_flags & NDR_SCALARS) {
619		NDR_CHECK(ndr_pull_align(ndr, 4));
620		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reject_reason));
621		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->versions, r->reject_reason));
622		NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions_ctr(ndr, NDR_SCALARS, &r->versions));
623		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
624	}
625	if (ndr_flags & NDR_BUFFERS) {
626		NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions_ctr(ndr, NDR_BUFFERS, &r->versions));
627	}
628	return NDR_ERR_SUCCESS;
629}
630
631_PUBLIC_ void ndr_print_dcerpc_bind_nak(struct ndr_print *ndr, const char *name, const struct dcerpc_bind_nak *r)
632{
633	ndr_print_struct(ndr, name, "dcerpc_bind_nak");
634	ndr->depth++;
635	ndr_print_uint16(ndr, "reject_reason", r->reject_reason);
636	ndr_print_set_switch_value(ndr, &r->versions, r->reject_reason);
637	ndr_print_dcerpc_bind_nak_versions_ctr(ndr, "versions", &r->versions);
638	ndr->depth--;
639}
640
641static enum ndr_err_code ndr_push_dcerpc_response(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_response *r)
642{
643	if (ndr_flags & NDR_SCALARS) {
644		NDR_CHECK(ndr_push_align(ndr, 4));
645		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->alloc_hint));
646		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->context_id));
647		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->cancel_count));
648		{
649			uint32_t _flags_save_DATA_BLOB = ndr->flags;
650			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
651			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
652			ndr->flags = _flags_save_DATA_BLOB;
653		}
654		{
655			uint32_t _flags_save_DATA_BLOB = ndr->flags;
656			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
657			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->stub_and_verifier));
658			ndr->flags = _flags_save_DATA_BLOB;
659		}
660		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
661	}
662	if (ndr_flags & NDR_BUFFERS) {
663	}
664	return NDR_ERR_SUCCESS;
665}
666
667static enum ndr_err_code ndr_pull_dcerpc_response(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_response *r)
668{
669	if (ndr_flags & NDR_SCALARS) {
670		NDR_CHECK(ndr_pull_align(ndr, 4));
671		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->alloc_hint));
672		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->context_id));
673		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->cancel_count));
674		{
675			uint32_t _flags_save_DATA_BLOB = ndr->flags;
676			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
677			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
678			ndr->flags = _flags_save_DATA_BLOB;
679		}
680		{
681			uint32_t _flags_save_DATA_BLOB = ndr->flags;
682			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
683			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->stub_and_verifier));
684			ndr->flags = _flags_save_DATA_BLOB;
685		}
686		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
687	}
688	if (ndr_flags & NDR_BUFFERS) {
689	}
690	return NDR_ERR_SUCCESS;
691}
692
693_PUBLIC_ void ndr_print_dcerpc_response(struct ndr_print *ndr, const char *name, const struct dcerpc_response *r)
694{
695	ndr_print_struct(ndr, name, "dcerpc_response");
696	ndr->depth++;
697	ndr_print_uint32(ndr, "alloc_hint", r->alloc_hint);
698	ndr_print_uint16(ndr, "context_id", r->context_id);
699	ndr_print_uint8(ndr, "cancel_count", r->cancel_count);
700	ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
701	ndr_print_DATA_BLOB(ndr, "stub_and_verifier", r->stub_and_verifier);
702	ndr->depth--;
703}
704
705static enum ndr_err_code ndr_push_dcerpc_fault(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_fault *r)
706{
707	if (ndr_flags & NDR_SCALARS) {
708		NDR_CHECK(ndr_push_align(ndr, 4));
709		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->alloc_hint));
710		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->context_id));
711		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->cancel_count));
712		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
713		{
714			uint32_t _flags_save_DATA_BLOB = ndr->flags;
715			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
716			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
717			ndr->flags = _flags_save_DATA_BLOB;
718		}
719		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
720	}
721	if (ndr_flags & NDR_BUFFERS) {
722	}
723	return NDR_ERR_SUCCESS;
724}
725
726static enum ndr_err_code ndr_pull_dcerpc_fault(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_fault *r)
727{
728	if (ndr_flags & NDR_SCALARS) {
729		NDR_CHECK(ndr_pull_align(ndr, 4));
730		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->alloc_hint));
731		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->context_id));
732		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->cancel_count));
733		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
734		{
735			uint32_t _flags_save_DATA_BLOB = ndr->flags;
736			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
737			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
738			ndr->flags = _flags_save_DATA_BLOB;
739		}
740		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
741	}
742	if (ndr_flags & NDR_BUFFERS) {
743	}
744	return NDR_ERR_SUCCESS;
745}
746
747_PUBLIC_ void ndr_print_dcerpc_fault(struct ndr_print *ndr, const char *name, const struct dcerpc_fault *r)
748{
749	ndr_print_struct(ndr, name, "dcerpc_fault");
750	ndr->depth++;
751	ndr_print_uint32(ndr, "alloc_hint", r->alloc_hint);
752	ndr_print_uint16(ndr, "context_id", r->context_id);
753	ndr_print_uint8(ndr, "cancel_count", r->cancel_count);
754	ndr_print_uint32(ndr, "status", r->status);
755	ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
756	ndr->depth--;
757}
758
759static enum ndr_err_code ndr_push_dcerpc_AuthType(struct ndr_push *ndr, int ndr_flags, enum dcerpc_AuthType r)
760{
761	NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
762	return NDR_ERR_SUCCESS;
763}
764
765static enum ndr_err_code ndr_pull_dcerpc_AuthType(struct ndr_pull *ndr, int ndr_flags, enum dcerpc_AuthType *r)
766{
767	uint8_t v;
768	NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
769	*r = v;
770	return NDR_ERR_SUCCESS;
771}
772
773_PUBLIC_ void ndr_print_dcerpc_AuthType(struct ndr_print *ndr, const char *name, enum dcerpc_AuthType r)
774{
775	const char *val = NULL;
776
777	switch (r) {
778		case DCERPC_AUTH_TYPE_NONE: val = "DCERPC_AUTH_TYPE_NONE"; break;
779		case DCERPC_AUTH_TYPE_KRB5_1: val = "DCERPC_AUTH_TYPE_KRB5_1"; break;
780		case DCERPC_AUTH_TYPE_SPNEGO: val = "DCERPC_AUTH_TYPE_SPNEGO"; break;
781		case DCERPC_AUTH_TYPE_NTLMSSP: val = "DCERPC_AUTH_TYPE_NTLMSSP"; break;
782		case DCERPC_AUTH_TYPE_KRB5: val = "DCERPC_AUTH_TYPE_KRB5"; break;
783		case DCERPC_AUTH_TYPE_DPA: val = "DCERPC_AUTH_TYPE_DPA"; break;
784		case DCERPC_AUTH_TYPE_MSN: val = "DCERPC_AUTH_TYPE_MSN"; break;
785		case DCERPC_AUTH_TYPE_DIGEST: val = "DCERPC_AUTH_TYPE_DIGEST"; break;
786		case DCERPC_AUTH_TYPE_SCHANNEL: val = "DCERPC_AUTH_TYPE_SCHANNEL"; break;
787		case DCERPC_AUTH_TYPE_MSMQ: val = "DCERPC_AUTH_TYPE_MSMQ"; break;
788	}
789	ndr_print_enum(ndr, name, "ENUM", val, r);
790}
791
792static enum ndr_err_code ndr_push_dcerpc_AuthLevel(struct ndr_push *ndr, int ndr_flags, enum dcerpc_AuthLevel r)
793{
794	NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
795	return NDR_ERR_SUCCESS;
796}
797
798static enum ndr_err_code ndr_pull_dcerpc_AuthLevel(struct ndr_pull *ndr, int ndr_flags, enum dcerpc_AuthLevel *r)
799{
800	uint8_t v;
801	NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
802	*r = v;
803	return NDR_ERR_SUCCESS;
804}
805
806_PUBLIC_ void ndr_print_dcerpc_AuthLevel(struct ndr_print *ndr, const char *name, enum dcerpc_AuthLevel r)
807{
808	const char *val = NULL;
809
810	switch (r) {
811		case DCERPC_AUTH_LEVEL_NONE: val = "DCERPC_AUTH_LEVEL_NONE"; break;
812		case DCERPC_AUTH_LEVEL_CONNECT: val = "DCERPC_AUTH_LEVEL_CONNECT"; break;
813		case DCERPC_AUTH_LEVEL_CALL: val = "DCERPC_AUTH_LEVEL_CALL"; break;
814		case DCERPC_AUTH_LEVEL_PACKET: val = "DCERPC_AUTH_LEVEL_PACKET"; break;
815		case DCERPC_AUTH_LEVEL_INTEGRITY: val = "DCERPC_AUTH_LEVEL_INTEGRITY"; break;
816		case DCERPC_AUTH_LEVEL_PRIVACY: val = "DCERPC_AUTH_LEVEL_PRIVACY"; break;
817	}
818	ndr_print_enum(ndr, name, "ENUM", val, r);
819}
820
821_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_auth(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_auth *r)
822{
823	if (ndr_flags & NDR_SCALARS) {
824		NDR_CHECK(ndr_push_align(ndr, 4));
825		NDR_CHECK(ndr_push_dcerpc_AuthType(ndr, NDR_SCALARS, r->auth_type));
826		NDR_CHECK(ndr_push_dcerpc_AuthLevel(ndr, NDR_SCALARS, r->auth_level));
827		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auth_pad_length));
828		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auth_reserved));
829		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_context_id));
830		{
831			uint32_t _flags_save_DATA_BLOB = ndr->flags;
832			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
833			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->credentials));
834			ndr->flags = _flags_save_DATA_BLOB;
835		}
836		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
837	}
838	if (ndr_flags & NDR_BUFFERS) {
839	}
840	return NDR_ERR_SUCCESS;
841}
842
843_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_auth(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_auth *r)
844{
845	if (ndr_flags & NDR_SCALARS) {
846		NDR_CHECK(ndr_pull_align(ndr, 4));
847		NDR_CHECK(ndr_pull_dcerpc_AuthType(ndr, NDR_SCALARS, &r->auth_type));
848		NDR_CHECK(ndr_pull_dcerpc_AuthLevel(ndr, NDR_SCALARS, &r->auth_level));
849		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auth_pad_length));
850		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auth_reserved));
851		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_context_id));
852		{
853			uint32_t _flags_save_DATA_BLOB = ndr->flags;
854			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
855			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->credentials));
856			ndr->flags = _flags_save_DATA_BLOB;
857		}
858		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
859	}
860	if (ndr_flags & NDR_BUFFERS) {
861	}
862	return NDR_ERR_SUCCESS;
863}
864
865_PUBLIC_ void ndr_print_dcerpc_auth(struct ndr_print *ndr, const char *name, const struct dcerpc_auth *r)
866{
867	ndr_print_struct(ndr, name, "dcerpc_auth");
868	ndr->depth++;
869	ndr_print_dcerpc_AuthType(ndr, "auth_type", r->auth_type);
870	ndr_print_dcerpc_AuthLevel(ndr, "auth_level", r->auth_level);
871	ndr_print_uint8(ndr, "auth_pad_length", r->auth_pad_length);
872	ndr_print_uint8(ndr, "auth_reserved", r->auth_reserved);
873	ndr_print_uint32(ndr, "auth_context_id", r->auth_context_id);
874	ndr_print_DATA_BLOB(ndr, "credentials", r->credentials);
875	ndr->depth--;
876}
877
878_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_auth3(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_auth3 *r)
879{
880	if (ndr_flags & NDR_SCALARS) {
881		NDR_CHECK(ndr_push_align(ndr, 4));
882		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_pad));
883		{
884			uint32_t _flags_save_DATA_BLOB = ndr->flags;
885			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
886			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
887			ndr->flags = _flags_save_DATA_BLOB;
888		}
889		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
890	}
891	if (ndr_flags & NDR_BUFFERS) {
892	}
893	return NDR_ERR_SUCCESS;
894}
895
896_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_auth3(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_auth3 *r)
897{
898	if (ndr_flags & NDR_SCALARS) {
899		NDR_CHECK(ndr_pull_align(ndr, 4));
900		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
901		{
902			uint32_t _flags_save_DATA_BLOB = ndr->flags;
903			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
904			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
905			ndr->flags = _flags_save_DATA_BLOB;
906		}
907		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
908	}
909	if (ndr_flags & NDR_BUFFERS) {
910	}
911	return NDR_ERR_SUCCESS;
912}
913
914_PUBLIC_ void ndr_print_dcerpc_auth3(struct ndr_print *ndr, const char *name, const struct dcerpc_auth3 *r)
915{
916	ndr_print_struct(ndr, name, "dcerpc_auth3");
917	ndr->depth++;
918	ndr_print_uint32(ndr, "_pad", r->_pad);
919	ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
920	ndr->depth--;
921}
922
923_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_orphaned(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_orphaned *r)
924{
925	if (ndr_flags & NDR_SCALARS) {
926		NDR_CHECK(ndr_push_align(ndr, 4));
927		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_pad));
928		{
929			uint32_t _flags_save_DATA_BLOB = ndr->flags;
930			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
931			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
932			ndr->flags = _flags_save_DATA_BLOB;
933		}
934		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
935	}
936	if (ndr_flags & NDR_BUFFERS) {
937	}
938	return NDR_ERR_SUCCESS;
939}
940
941_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_orphaned(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_orphaned *r)
942{
943	if (ndr_flags & NDR_SCALARS) {
944		NDR_CHECK(ndr_pull_align(ndr, 4));
945		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
946		{
947			uint32_t _flags_save_DATA_BLOB = ndr->flags;
948			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
949			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
950			ndr->flags = _flags_save_DATA_BLOB;
951		}
952		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
953	}
954	if (ndr_flags & NDR_BUFFERS) {
955	}
956	return NDR_ERR_SUCCESS;
957}
958
959_PUBLIC_ void ndr_print_dcerpc_orphaned(struct ndr_print *ndr, const char *name, const struct dcerpc_orphaned *r)
960{
961	ndr_print_struct(ndr, name, "dcerpc_orphaned");
962	ndr->depth++;
963	ndr_print_uint32(ndr, "_pad", r->_pad);
964	ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
965	ndr->depth--;
966}
967
968_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_co_cancel(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_co_cancel *r)
969{
970	if (ndr_flags & NDR_SCALARS) {
971		NDR_CHECK(ndr_push_align(ndr, 4));
972		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_pad));
973		{
974			uint32_t _flags_save_DATA_BLOB = ndr->flags;
975			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
976			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
977			ndr->flags = _flags_save_DATA_BLOB;
978		}
979		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
980	}
981	if (ndr_flags & NDR_BUFFERS) {
982	}
983	return NDR_ERR_SUCCESS;
984}
985
986_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_co_cancel(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_co_cancel *r)
987{
988	if (ndr_flags & NDR_SCALARS) {
989		NDR_CHECK(ndr_pull_align(ndr, 4));
990		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
991		{
992			uint32_t _flags_save_DATA_BLOB = ndr->flags;
993			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
994			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
995			ndr->flags = _flags_save_DATA_BLOB;
996		}
997		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
998	}
999	if (ndr_flags & NDR_BUFFERS) {
1000	}
1001	return NDR_ERR_SUCCESS;
1002}
1003
1004_PUBLIC_ void ndr_print_dcerpc_co_cancel(struct ndr_print *ndr, const char *name, const struct dcerpc_co_cancel *r)
1005{
1006	ndr_print_struct(ndr, name, "dcerpc_co_cancel");
1007	ndr->depth++;
1008	ndr_print_uint32(ndr, "_pad", r->_pad);
1009	ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
1010	ndr->depth--;
1011}
1012
1013_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_cl_cancel(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_cl_cancel *r)
1014{
1015	if (ndr_flags & NDR_SCALARS) {
1016		NDR_CHECK(ndr_push_align(ndr, 4));
1017		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
1018		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->id));
1019		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1020	}
1021	if (ndr_flags & NDR_BUFFERS) {
1022	}
1023	return NDR_ERR_SUCCESS;
1024}
1025
1026_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_cl_cancel(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_cl_cancel *r)
1027{
1028	if (ndr_flags & NDR_SCALARS) {
1029		NDR_CHECK(ndr_pull_align(ndr, 4));
1030		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1031		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->id));
1032		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1033	}
1034	if (ndr_flags & NDR_BUFFERS) {
1035	}
1036	return NDR_ERR_SUCCESS;
1037}
1038
1039_PUBLIC_ void ndr_print_dcerpc_cl_cancel(struct ndr_print *ndr, const char *name, const struct dcerpc_cl_cancel *r)
1040{
1041	ndr_print_struct(ndr, name, "dcerpc_cl_cancel");
1042	ndr->depth++;
1043	ndr_print_uint32(ndr, "version", r->version);
1044	ndr_print_uint32(ndr, "id", r->id);
1045	ndr->depth--;
1046}
1047
1048_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_cancel_ack(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_cancel_ack *r)
1049{
1050	if (ndr_flags & NDR_SCALARS) {
1051		NDR_CHECK(ndr_push_align(ndr, 4));
1052		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
1053		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->id));
1054		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->server_is_accepting));
1055		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1056	}
1057	if (ndr_flags & NDR_BUFFERS) {
1058	}
1059	return NDR_ERR_SUCCESS;
1060}
1061
1062_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_cancel_ack(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_cancel_ack *r)
1063{
1064	if (ndr_flags & NDR_SCALARS) {
1065		NDR_CHECK(ndr_pull_align(ndr, 4));
1066		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1067		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->id));
1068		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->server_is_accepting));
1069		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1070	}
1071	if (ndr_flags & NDR_BUFFERS) {
1072	}
1073	return NDR_ERR_SUCCESS;
1074}
1075
1076_PUBLIC_ void ndr_print_dcerpc_cancel_ack(struct ndr_print *ndr, const char *name, const struct dcerpc_cancel_ack *r)
1077{
1078	ndr_print_struct(ndr, name, "dcerpc_cancel_ack");
1079	ndr->depth++;
1080	ndr_print_uint32(ndr, "version", r->version);
1081	ndr_print_uint32(ndr, "id", r->id);
1082	ndr_print_uint32(ndr, "server_is_accepting", r->server_is_accepting);
1083	ndr->depth--;
1084}
1085
1086_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_fack(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_fack *r)
1087{
1088	uint32_t cntr_selack_0;
1089	if (ndr_flags & NDR_SCALARS) {
1090		NDR_CHECK(ndr_push_align(ndr, 4));
1091		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
1092		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->_pad1));
1093		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->window_size));
1094		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_tdsu));
1095		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_frag_size));
1096		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->serial_no));
1097		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->selack_size));
1098		for (cntr_selack_0 = 0; cntr_selack_0 < r->selack_size; cntr_selack_0++) {
1099			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->selack[cntr_selack_0]));
1100		}
1101		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1102	}
1103	if (ndr_flags & NDR_BUFFERS) {
1104	}
1105	return NDR_ERR_SUCCESS;
1106}
1107
1108_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_fack(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_fack *r)
1109{
1110	uint32_t cntr_selack_0;
1111	TALLOC_CTX *_mem_save_selack_0;
1112	if (ndr_flags & NDR_SCALARS) {
1113		NDR_CHECK(ndr_pull_align(ndr, 4));
1114		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1115		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->_pad1));
1116		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->window_size));
1117		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_tdsu));
1118		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_frag_size));
1119		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->serial_no));
1120		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->selack_size));
1121		NDR_PULL_ALLOC_N(ndr, r->selack, r->selack_size);
1122		_mem_save_selack_0 = NDR_PULL_GET_MEM_CTX(ndr);
1123		NDR_PULL_SET_MEM_CTX(ndr, r->selack, 0);
1124		for (cntr_selack_0 = 0; cntr_selack_0 < r->selack_size; cntr_selack_0++) {
1125			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->selack[cntr_selack_0]));
1126		}
1127		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_selack_0, 0);
1128		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1129	}
1130	if (ndr_flags & NDR_BUFFERS) {
1131	}
1132	return NDR_ERR_SUCCESS;
1133}
1134
1135_PUBLIC_ void ndr_print_dcerpc_fack(struct ndr_print *ndr, const char *name, const struct dcerpc_fack *r)
1136{
1137	uint32_t cntr_selack_0;
1138	ndr_print_struct(ndr, name, "dcerpc_fack");
1139	ndr->depth++;
1140	ndr_print_uint32(ndr, "version", r->version);
1141	ndr_print_uint8(ndr, "_pad1", r->_pad1);
1142	ndr_print_uint16(ndr, "window_size", r->window_size);
1143	ndr_print_uint32(ndr, "max_tdsu", r->max_tdsu);
1144	ndr_print_uint32(ndr, "max_frag_size", r->max_frag_size);
1145	ndr_print_uint16(ndr, "serial_no", r->serial_no);
1146	ndr_print_uint16(ndr, "selack_size", r->selack_size);
1147	ndr->print(ndr, "%s: ARRAY(%d)", "selack", (int)r->selack_size);
1148	ndr->depth++;
1149	for (cntr_selack_0=0;cntr_selack_0<r->selack_size;cntr_selack_0++) {
1150		char *idx_0=NULL;
1151		if (asprintf(&idx_0, "[%d]", cntr_selack_0) != -1) {
1152			ndr_print_uint32(ndr, "selack", r->selack[cntr_selack_0]);
1153			free(idx_0);
1154		}
1155	}
1156	ndr->depth--;
1157	ndr->depth--;
1158}
1159
1160_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_ack(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_ack *r)
1161{
1162	if (ndr_flags & NDR_SCALARS) {
1163		NDR_CHECK(ndr_push_align(ndr, 1));
1164		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
1165	}
1166	if (ndr_flags & NDR_BUFFERS) {
1167	}
1168	return NDR_ERR_SUCCESS;
1169}
1170
1171_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_ack(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_ack *r)
1172{
1173	if (ndr_flags & NDR_SCALARS) {
1174		NDR_CHECK(ndr_pull_align(ndr, 1));
1175		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
1176	}
1177	if (ndr_flags & NDR_BUFFERS) {
1178	}
1179	return NDR_ERR_SUCCESS;
1180}
1181
1182_PUBLIC_ void ndr_print_dcerpc_ack(struct ndr_print *ndr, const char *name, const struct dcerpc_ack *r)
1183{
1184	ndr_print_struct(ndr, name, "dcerpc_ack");
1185	ndr->depth++;
1186	ndr->depth--;
1187}
1188
1189_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_ping(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_ping *r)
1190{
1191	if (ndr_flags & NDR_SCALARS) {
1192		NDR_CHECK(ndr_push_align(ndr, 1));
1193		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
1194	}
1195	if (ndr_flags & NDR_BUFFERS) {
1196	}
1197	return NDR_ERR_SUCCESS;
1198}
1199
1200_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_ping(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_ping *r)
1201{
1202	if (ndr_flags & NDR_SCALARS) {
1203		NDR_CHECK(ndr_pull_align(ndr, 1));
1204		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
1205	}
1206	if (ndr_flags & NDR_BUFFERS) {
1207	}
1208	return NDR_ERR_SUCCESS;
1209}
1210
1211_PUBLIC_ void ndr_print_dcerpc_ping(struct ndr_print *ndr, const char *name, const struct dcerpc_ping *r)
1212{
1213	ndr_print_struct(ndr, name, "dcerpc_ping");
1214	ndr->depth++;
1215	ndr->depth--;
1216}
1217
1218_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_shutdown(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_shutdown *r)
1219{
1220	if (ndr_flags & NDR_SCALARS) {
1221		NDR_CHECK(ndr_push_align(ndr, 1));
1222		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
1223	}
1224	if (ndr_flags & NDR_BUFFERS) {
1225	}
1226	return NDR_ERR_SUCCESS;
1227}
1228
1229_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_shutdown(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_shutdown *r)
1230{
1231	if (ndr_flags & NDR_SCALARS) {
1232		NDR_CHECK(ndr_pull_align(ndr, 1));
1233		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
1234	}
1235	if (ndr_flags & NDR_BUFFERS) {
1236	}
1237	return NDR_ERR_SUCCESS;
1238}
1239
1240_PUBLIC_ void ndr_print_dcerpc_shutdown(struct ndr_print *ndr, const char *name, const struct dcerpc_shutdown *r)
1241{
1242	ndr_print_struct(ndr, name, "dcerpc_shutdown");
1243	ndr->depth++;
1244	ndr->depth--;
1245}
1246
1247_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_working(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_working *r)
1248{
1249	if (ndr_flags & NDR_SCALARS) {
1250		NDR_CHECK(ndr_push_align(ndr, 1));
1251		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
1252	}
1253	if (ndr_flags & NDR_BUFFERS) {
1254	}
1255	return NDR_ERR_SUCCESS;
1256}
1257
1258_PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_working(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_working *r)
1259{
1260	if (ndr_flags & NDR_SCALARS) {
1261		NDR_CHECK(ndr_pull_align(ndr, 1));
1262		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
1263	}
1264	if (ndr_flags & NDR_BUFFERS) {
1265	}
1266	return NDR_ERR_SUCCESS;
1267}
1268
1269_PUBLIC_ void ndr_print_dcerpc_working(struct ndr_print *ndr, const char *name, const struct dcerpc_working *r)
1270{
1271	ndr_print_struct(ndr, name, "dcerpc_working");
1272	ndr->depth++;
1273	ndr->depth--;
1274}
1275
1276static enum ndr_err_code ndr_push_dcerpc_pkt_type(struct ndr_push *ndr, int ndr_flags, enum dcerpc_pkt_type r)
1277{
1278	NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
1279	return NDR_ERR_SUCCESS;
1280}
1281
1282static enum ndr_err_code ndr_pull_dcerpc_pkt_type(struct ndr_pull *ndr, int ndr_flags, enum dcerpc_pkt_type *r)
1283{
1284	uint8_t v;
1285	NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
1286	*r = v;
1287	return NDR_ERR_SUCCESS;
1288}
1289
1290_PUBLIC_ void ndr_print_dcerpc_pkt_type(struct ndr_print *ndr, const char *name, enum dcerpc_pkt_type r)
1291{
1292	const char *val = NULL;
1293
1294	switch (r) {
1295		case DCERPC_PKT_REQUEST: val = "DCERPC_PKT_REQUEST"; break;
1296		case DCERPC_PKT_PING: val = "DCERPC_PKT_PING"; break;
1297		case DCERPC_PKT_RESPONSE: val = "DCERPC_PKT_RESPONSE"; break;
1298		case DCERPC_PKT_FAULT: val = "DCERPC_PKT_FAULT"; break;
1299		case DCERPC_PKT_WORKING: val = "DCERPC_PKT_WORKING"; break;
1300		case DCERPC_PKT_NOCALL: val = "DCERPC_PKT_NOCALL"; break;
1301		case DCERPC_PKT_REJECT: val = "DCERPC_PKT_REJECT"; break;
1302		case DCERPC_PKT_ACK: val = "DCERPC_PKT_ACK"; break;
1303		case DCERPC_PKT_CL_CANCEL: val = "DCERPC_PKT_CL_CANCEL"; break;
1304		case DCERPC_PKT_FACK: val = "DCERPC_PKT_FACK"; break;
1305		case DCERPC_PKT_CANCEL_ACK: val = "DCERPC_PKT_CANCEL_ACK"; break;
1306		case DCERPC_PKT_BIND: val = "DCERPC_PKT_BIND"; break;
1307		case DCERPC_PKT_BIND_ACK: val = "DCERPC_PKT_BIND_ACK"; break;
1308		case DCERPC_PKT_BIND_NAK: val = "DCERPC_PKT_BIND_NAK"; break;
1309		case DCERPC_PKT_ALTER: val = "DCERPC_PKT_ALTER"; break;
1310		case DCERPC_PKT_ALTER_RESP: val = "DCERPC_PKT_ALTER_RESP"; break;
1311		case DCERPC_PKT_AUTH3: val = "DCERPC_PKT_AUTH3"; break;
1312		case DCERPC_PKT_SHUTDOWN: val = "DCERPC_PKT_SHUTDOWN"; break;
1313		case DCERPC_PKT_CO_CANCEL: val = "DCERPC_PKT_CO_CANCEL"; break;
1314		case DCERPC_PKT_ORPHANED: val = "DCERPC_PKT_ORPHANED"; break;
1315	}
1316	ndr_print_enum(ndr, name, "ENUM", val, r);
1317}
1318
1319static enum ndr_err_code ndr_push_dcerpc_payload(struct ndr_push *ndr, int ndr_flags, const union dcerpc_payload *r)
1320{
1321	if (ndr_flags & NDR_SCALARS) {
1322		int level = ndr_push_get_switch_value(ndr, r);
1323		NDR_CHECK(ndr_push_union_align(ndr, 4));
1324		switch (level) {
1325			case DCERPC_PKT_REQUEST: {
1326				NDR_CHECK(ndr_push_dcerpc_request(ndr, NDR_SCALARS, &r->request));
1327			break; }
1328
1329			case DCERPC_PKT_PING: {
1330				NDR_CHECK(ndr_push_dcerpc_ping(ndr, NDR_SCALARS, &r->ping));
1331			break; }
1332
1333			case DCERPC_PKT_RESPONSE: {
1334				NDR_CHECK(ndr_push_dcerpc_response(ndr, NDR_SCALARS, &r->response));
1335			break; }
1336
1337			case DCERPC_PKT_FAULT: {
1338				NDR_CHECK(ndr_push_dcerpc_fault(ndr, NDR_SCALARS, &r->fault));
1339			break; }
1340
1341			case DCERPC_PKT_WORKING: {
1342				NDR_CHECK(ndr_push_dcerpc_working(ndr, NDR_SCALARS, &r->working));
1343			break; }
1344
1345			case DCERPC_PKT_NOCALL: {
1346				NDR_CHECK(ndr_push_dcerpc_fack(ndr, NDR_SCALARS, &r->nocall));
1347			break; }
1348
1349			case DCERPC_PKT_REJECT: {
1350				NDR_CHECK(ndr_push_dcerpc_fault(ndr, NDR_SCALARS, &r->reject));
1351			break; }
1352
1353			case DCERPC_PKT_ACK: {
1354				NDR_CHECK(ndr_push_dcerpc_ack(ndr, NDR_SCALARS, &r->ack));
1355			break; }
1356
1357			case DCERPC_PKT_CL_CANCEL: {
1358				NDR_CHECK(ndr_push_dcerpc_cl_cancel(ndr, NDR_SCALARS, &r->cl_cancel));
1359			break; }
1360
1361			case DCERPC_PKT_FACK: {
1362				NDR_CHECK(ndr_push_dcerpc_fack(ndr, NDR_SCALARS, &r->fack));
1363			break; }
1364
1365			case DCERPC_PKT_CANCEL_ACK: {
1366				NDR_CHECK(ndr_push_dcerpc_cancel_ack(ndr, NDR_SCALARS, &r->cancel_ack));
1367			break; }
1368
1369			case DCERPC_PKT_BIND: {
1370				NDR_CHECK(ndr_push_dcerpc_bind(ndr, NDR_SCALARS, &r->bind));
1371			break; }
1372
1373			case DCERPC_PKT_BIND_ACK: {
1374				NDR_CHECK(ndr_push_dcerpc_bind_ack(ndr, NDR_SCALARS, &r->bind_ack));
1375			break; }
1376
1377			case DCERPC_PKT_BIND_NAK: {
1378				NDR_CHECK(ndr_push_dcerpc_bind_nak(ndr, NDR_SCALARS, &r->bind_nak));
1379			break; }
1380
1381			case DCERPC_PKT_ALTER: {
1382				NDR_CHECK(ndr_push_dcerpc_bind(ndr, NDR_SCALARS, &r->alter));
1383			break; }
1384
1385			case DCERPC_PKT_ALTER_RESP: {
1386				NDR_CHECK(ndr_push_dcerpc_bind_ack(ndr, NDR_SCALARS, &r->alter_resp));
1387			break; }
1388
1389			case DCERPC_PKT_SHUTDOWN: {
1390				NDR_CHECK(ndr_push_dcerpc_shutdown(ndr, NDR_SCALARS, &r->shutdown));
1391			break; }
1392
1393			case DCERPC_PKT_CO_CANCEL: {
1394				NDR_CHECK(ndr_push_dcerpc_co_cancel(ndr, NDR_SCALARS, &r->co_cancel));
1395			break; }
1396
1397			case DCERPC_PKT_ORPHANED: {
1398				NDR_CHECK(ndr_push_dcerpc_orphaned(ndr, NDR_SCALARS, &r->orphaned));
1399			break; }
1400
1401			case DCERPC_PKT_AUTH3: {
1402				NDR_CHECK(ndr_push_dcerpc_auth3(ndr, NDR_SCALARS, &r->auth3));
1403			break; }
1404
1405			default:
1406				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1407		}
1408	}
1409	if (ndr_flags & NDR_BUFFERS) {
1410		int level = ndr_push_get_switch_value(ndr, r);
1411		switch (level) {
1412			case DCERPC_PKT_REQUEST:
1413			break;
1414
1415			case DCERPC_PKT_PING:
1416			break;
1417
1418			case DCERPC_PKT_RESPONSE:
1419			break;
1420
1421			case DCERPC_PKT_FAULT:
1422			break;
1423
1424			case DCERPC_PKT_WORKING:
1425			break;
1426
1427			case DCERPC_PKT_NOCALL:
1428			break;
1429
1430			case DCERPC_PKT_REJECT:
1431			break;
1432
1433			case DCERPC_PKT_ACK:
1434			break;
1435
1436			case DCERPC_PKT_CL_CANCEL:
1437			break;
1438
1439			case DCERPC_PKT_FACK:
1440			break;
1441
1442			case DCERPC_PKT_CANCEL_ACK:
1443			break;
1444
1445			case DCERPC_PKT_BIND:
1446			break;
1447
1448			case DCERPC_PKT_BIND_ACK:
1449			break;
1450
1451			case DCERPC_PKT_BIND_NAK:
1452				NDR_CHECK(ndr_push_dcerpc_bind_nak(ndr, NDR_BUFFERS, &r->bind_nak));
1453			break;
1454
1455			case DCERPC_PKT_ALTER:
1456			break;
1457
1458			case DCERPC_PKT_ALTER_RESP:
1459			break;
1460
1461			case DCERPC_PKT_SHUTDOWN:
1462			break;
1463
1464			case DCERPC_PKT_CO_CANCEL:
1465			break;
1466
1467			case DCERPC_PKT_ORPHANED:
1468			break;
1469
1470			case DCERPC_PKT_AUTH3:
1471			break;
1472
1473			default:
1474				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1475		}
1476	}
1477	return NDR_ERR_SUCCESS;
1478}
1479
1480static enum ndr_err_code ndr_pull_dcerpc_payload(struct ndr_pull *ndr, int ndr_flags, union dcerpc_payload *r)
1481{
1482	int level;
1483	level = ndr_pull_get_switch_value(ndr, r);
1484	if (ndr_flags & NDR_SCALARS) {
1485		NDR_CHECK(ndr_pull_union_align(ndr, 4));
1486		switch (level) {
1487			case DCERPC_PKT_REQUEST: {
1488				NDR_CHECK(ndr_pull_dcerpc_request(ndr, NDR_SCALARS, &r->request));
1489			break; }
1490
1491			case DCERPC_PKT_PING: {
1492				NDR_CHECK(ndr_pull_dcerpc_ping(ndr, NDR_SCALARS, &r->ping));
1493			break; }
1494
1495			case DCERPC_PKT_RESPONSE: {
1496				NDR_CHECK(ndr_pull_dcerpc_response(ndr, NDR_SCALARS, &r->response));
1497			break; }
1498
1499			case DCERPC_PKT_FAULT: {
1500				NDR_CHECK(ndr_pull_dcerpc_fault(ndr, NDR_SCALARS, &r->fault));
1501			break; }
1502
1503			case DCERPC_PKT_WORKING: {
1504				NDR_CHECK(ndr_pull_dcerpc_working(ndr, NDR_SCALARS, &r->working));
1505			break; }
1506
1507			case DCERPC_PKT_NOCALL: {
1508				NDR_CHECK(ndr_pull_dcerpc_fack(ndr, NDR_SCALARS, &r->nocall));
1509			break; }
1510
1511			case DCERPC_PKT_REJECT: {
1512				NDR_CHECK(ndr_pull_dcerpc_fault(ndr, NDR_SCALARS, &r->reject));
1513			break; }
1514
1515			case DCERPC_PKT_ACK: {
1516				NDR_CHECK(ndr_pull_dcerpc_ack(ndr, NDR_SCALARS, &r->ack));
1517			break; }
1518
1519			case DCERPC_PKT_CL_CANCEL: {
1520				NDR_CHECK(ndr_pull_dcerpc_cl_cancel(ndr, NDR_SCALARS, &r->cl_cancel));
1521			break; }
1522
1523			case DCERPC_PKT_FACK: {
1524				NDR_CHECK(ndr_pull_dcerpc_fack(ndr, NDR_SCALARS, &r->fack));
1525			break; }
1526
1527			case DCERPC_PKT_CANCEL_ACK: {
1528				NDR_CHECK(ndr_pull_dcerpc_cancel_ack(ndr, NDR_SCALARS, &r->cancel_ack));
1529			break; }
1530
1531			case DCERPC_PKT_BIND: {
1532				NDR_CHECK(ndr_pull_dcerpc_bind(ndr, NDR_SCALARS, &r->bind));
1533			break; }
1534
1535			case DCERPC_PKT_BIND_ACK: {
1536				NDR_CHECK(ndr_pull_dcerpc_bind_ack(ndr, NDR_SCALARS, &r->bind_ack));
1537			break; }
1538
1539			case DCERPC_PKT_BIND_NAK: {
1540				NDR_CHECK(ndr_pull_dcerpc_bind_nak(ndr, NDR_SCALARS, &r->bind_nak));
1541			break; }
1542
1543			case DCERPC_PKT_ALTER: {
1544				NDR_CHECK(ndr_pull_dcerpc_bind(ndr, NDR_SCALARS, &r->alter));
1545			break; }
1546
1547			case DCERPC_PKT_ALTER_RESP: {
1548				NDR_CHECK(ndr_pull_dcerpc_bind_ack(ndr, NDR_SCALARS, &r->alter_resp));
1549			break; }
1550
1551			case DCERPC_PKT_SHUTDOWN: {
1552				NDR_CHECK(ndr_pull_dcerpc_shutdown(ndr, NDR_SCALARS, &r->shutdown));
1553			break; }
1554
1555			case DCERPC_PKT_CO_CANCEL: {
1556				NDR_CHECK(ndr_pull_dcerpc_co_cancel(ndr, NDR_SCALARS, &r->co_cancel));
1557			break; }
1558
1559			case DCERPC_PKT_ORPHANED: {
1560				NDR_CHECK(ndr_pull_dcerpc_orphaned(ndr, NDR_SCALARS, &r->orphaned));
1561			break; }
1562
1563			case DCERPC_PKT_AUTH3: {
1564				NDR_CHECK(ndr_pull_dcerpc_auth3(ndr, NDR_SCALARS, &r->auth3));
1565			break; }
1566
1567			default:
1568				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1569		}
1570	}
1571	if (ndr_flags & NDR_BUFFERS) {
1572		switch (level) {
1573			case DCERPC_PKT_REQUEST:
1574			break;
1575
1576			case DCERPC_PKT_PING:
1577			break;
1578
1579			case DCERPC_PKT_RESPONSE:
1580			break;
1581
1582			case DCERPC_PKT_FAULT:
1583			break;
1584
1585			case DCERPC_PKT_WORKING:
1586			break;
1587
1588			case DCERPC_PKT_NOCALL:
1589			break;
1590
1591			case DCERPC_PKT_REJECT:
1592			break;
1593
1594			case DCERPC_PKT_ACK:
1595			break;
1596
1597			case DCERPC_PKT_CL_CANCEL:
1598			break;
1599
1600			case DCERPC_PKT_FACK:
1601			break;
1602
1603			case DCERPC_PKT_CANCEL_ACK:
1604			break;
1605
1606			case DCERPC_PKT_BIND:
1607			break;
1608
1609			case DCERPC_PKT_BIND_ACK:
1610			break;
1611
1612			case DCERPC_PKT_BIND_NAK:
1613				NDR_CHECK(ndr_pull_dcerpc_bind_nak(ndr, NDR_BUFFERS, &r->bind_nak));
1614			break;
1615
1616			case DCERPC_PKT_ALTER:
1617			break;
1618
1619			case DCERPC_PKT_ALTER_RESP:
1620			break;
1621
1622			case DCERPC_PKT_SHUTDOWN:
1623			break;
1624
1625			case DCERPC_PKT_CO_CANCEL:
1626			break;
1627
1628			case DCERPC_PKT_ORPHANED:
1629			break;
1630
1631			case DCERPC_PKT_AUTH3:
1632			break;
1633
1634			default:
1635				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1636		}
1637	}
1638	return NDR_ERR_SUCCESS;
1639}
1640
1641_PUBLIC_ void ndr_print_dcerpc_payload(struct ndr_print *ndr, const char *name, const union dcerpc_payload *r)
1642{
1643	int level;
1644	level = ndr_print_get_switch_value(ndr, r);
1645	ndr_print_union(ndr, name, level, "dcerpc_payload");
1646	switch (level) {
1647		case DCERPC_PKT_REQUEST:
1648			ndr_print_dcerpc_request(ndr, "request", &r->request);
1649		break;
1650
1651		case DCERPC_PKT_PING:
1652			ndr_print_dcerpc_ping(ndr, "ping", &r->ping);
1653		break;
1654
1655		case DCERPC_PKT_RESPONSE:
1656			ndr_print_dcerpc_response(ndr, "response", &r->response);
1657		break;
1658
1659		case DCERPC_PKT_FAULT:
1660			ndr_print_dcerpc_fault(ndr, "fault", &r->fault);
1661		break;
1662
1663		case DCERPC_PKT_WORKING:
1664			ndr_print_dcerpc_working(ndr, "working", &r->working);
1665		break;
1666
1667		case DCERPC_PKT_NOCALL:
1668			ndr_print_dcerpc_fack(ndr, "nocall", &r->nocall);
1669		break;
1670
1671		case DCERPC_PKT_REJECT:
1672			ndr_print_dcerpc_fault(ndr, "reject", &r->reject);
1673		break;
1674
1675		case DCERPC_PKT_ACK:
1676			ndr_print_dcerpc_ack(ndr, "ack", &r->ack);
1677		break;
1678
1679		case DCERPC_PKT_CL_CANCEL:
1680			ndr_print_dcerpc_cl_cancel(ndr, "cl_cancel", &r->cl_cancel);
1681		break;
1682
1683		case DCERPC_PKT_FACK:
1684			ndr_print_dcerpc_fack(ndr, "fack", &r->fack);
1685		break;
1686
1687		case DCERPC_PKT_CANCEL_ACK:
1688			ndr_print_dcerpc_cancel_ack(ndr, "cancel_ack", &r->cancel_ack);
1689		break;
1690
1691		case DCERPC_PKT_BIND:
1692			ndr_print_dcerpc_bind(ndr, "bind", &r->bind);
1693		break;
1694
1695		case DCERPC_PKT_BIND_ACK:
1696			ndr_print_dcerpc_bind_ack(ndr, "bind_ack", &r->bind_ack);
1697		break;
1698
1699		case DCERPC_PKT_BIND_NAK:
1700			ndr_print_dcerpc_bind_nak(ndr, "bind_nak", &r->bind_nak);
1701		break;
1702
1703		case DCERPC_PKT_ALTER:
1704			ndr_print_dcerpc_bind(ndr, "alter", &r->alter);
1705		break;
1706
1707		case DCERPC_PKT_ALTER_RESP:
1708			ndr_print_dcerpc_bind_ack(ndr, "alter_resp", &r->alter_resp);
1709		break;
1710
1711		case DCERPC_PKT_SHUTDOWN:
1712			ndr_print_dcerpc_shutdown(ndr, "shutdown", &r->shutdown);
1713		break;
1714
1715		case DCERPC_PKT_CO_CANCEL:
1716			ndr_print_dcerpc_co_cancel(ndr, "co_cancel", &r->co_cancel);
1717		break;
1718
1719		case DCERPC_PKT_ORPHANED:
1720			ndr_print_dcerpc_orphaned(ndr, "orphaned", &r->orphaned);
1721		break;
1722
1723		case DCERPC_PKT_AUTH3:
1724			ndr_print_dcerpc_auth3(ndr, "auth3", &r->auth3);
1725		break;
1726
1727		default:
1728			ndr_print_bad_level(ndr, name, level);
1729	}
1730}
1731
1732_PUBLIC_ enum ndr_err_code ndr_push_ncacn_packet(struct ndr_push *ndr, int ndr_flags, const struct ncacn_packet *r)
1733{
1734	if (ndr_flags & NDR_SCALARS) {
1735		NDR_CHECK(ndr_push_align(ndr, 4));
1736		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->rpc_vers));
1737		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->rpc_vers_minor));
1738		NDR_CHECK(ndr_push_dcerpc_pkt_type(ndr, NDR_SCALARS, r->ptype));
1739		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pfc_flags));
1740		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->drep, 4));
1741		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->frag_length));
1742		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->auth_length));
1743		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->call_id));
1744		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u, r->ptype));
1745		NDR_CHECK(ndr_push_dcerpc_payload(ndr, NDR_SCALARS, &r->u));
1746		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1747	}
1748	if (ndr_flags & NDR_BUFFERS) {
1749		NDR_CHECK(ndr_push_dcerpc_payload(ndr, NDR_BUFFERS, &r->u));
1750	}
1751	return NDR_ERR_SUCCESS;
1752}
1753
1754_PUBLIC_ enum ndr_err_code ndr_pull_ncacn_packet(struct ndr_pull *ndr, int ndr_flags, struct ncacn_packet *r)
1755{
1756	if (ndr_flags & NDR_SCALARS) {
1757		NDR_CHECK(ndr_pull_align(ndr, 4));
1758		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->rpc_vers));
1759		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->rpc_vers_minor));
1760		NDR_CHECK(ndr_pull_dcerpc_pkt_type(ndr, NDR_SCALARS, &r->ptype));
1761		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pfc_flags));
1762		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->drep, 4));
1763		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->frag_length));
1764		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->auth_length));
1765		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->call_id));
1766		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u, r->ptype));
1767		NDR_CHECK(ndr_pull_dcerpc_payload(ndr, NDR_SCALARS, &r->u));
1768		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1769	}
1770	if (ndr_flags & NDR_BUFFERS) {
1771		NDR_CHECK(ndr_pull_dcerpc_payload(ndr, NDR_BUFFERS, &r->u));
1772	}
1773	return NDR_ERR_SUCCESS;
1774}
1775
1776_PUBLIC_ void ndr_print_ncacn_packet(struct ndr_print *ndr, const char *name, const struct ncacn_packet *r)
1777{
1778	ndr_print_struct(ndr, name, "ncacn_packet");
1779	ndr->depth++;
1780	ndr_print_uint8(ndr, "rpc_vers", r->rpc_vers);
1781	ndr_print_uint8(ndr, "rpc_vers_minor", r->rpc_vers_minor);
1782	ndr_print_dcerpc_pkt_type(ndr, "ptype", r->ptype);
1783	ndr_print_uint8(ndr, "pfc_flags", r->pfc_flags);
1784	ndr_print_array_uint8(ndr, "drep", r->drep, 4);
1785	ndr_print_uint16(ndr, "frag_length", r->frag_length);
1786	ndr_print_uint16(ndr, "auth_length", r->auth_length);
1787	ndr_print_uint32(ndr, "call_id", r->call_id);
1788	ndr_print_set_switch_value(ndr, &r->u, r->ptype);
1789	ndr_print_dcerpc_payload(ndr, "u", &r->u);
1790	ndr->depth--;
1791}
1792
1793_PUBLIC_ enum ndr_err_code ndr_push_ncadg_packet(struct ndr_push *ndr, int ndr_flags, const struct ncadg_packet *r)
1794{
1795	if (ndr_flags & NDR_SCALARS) {
1796		NDR_CHECK(ndr_push_align(ndr, 4));
1797		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->rpc_vers));
1798		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ptype));
1799		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pfc_flags));
1800		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ncadg_flags));
1801		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->drep, 3));
1802		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->serial_high));
1803		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->object));
1804		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->iface));
1805		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->activity));
1806		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->server_boot));
1807		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->iface_version));
1808		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->seq_num));
1809		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->opnum));
1810		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ihint));
1811		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ahint));
1812		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->len));
1813		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->fragnum));
1814		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auth_proto));
1815		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->serial_low));
1816		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u, r->ptype));
1817		NDR_CHECK(ndr_push_dcerpc_payload(ndr, NDR_SCALARS, &r->u));
1818		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1819	}
1820	if (ndr_flags & NDR_BUFFERS) {
1821		NDR_CHECK(ndr_push_dcerpc_payload(ndr, NDR_BUFFERS, &r->u));
1822	}
1823	return NDR_ERR_SUCCESS;
1824}
1825
1826_PUBLIC_ enum ndr_err_code ndr_pull_ncadg_packet(struct ndr_pull *ndr, int ndr_flags, struct ncadg_packet *r)
1827{
1828	if (ndr_flags & NDR_SCALARS) {
1829		NDR_CHECK(ndr_pull_align(ndr, 4));
1830		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->rpc_vers));
1831		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ptype));
1832		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pfc_flags));
1833		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ncadg_flags));
1834		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->drep, 3));
1835		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->serial_high));
1836		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->object));
1837		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->iface));
1838		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->activity));
1839		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->server_boot));
1840		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->iface_version));
1841		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->seq_num));
1842		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->opnum));
1843		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ihint));
1844		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ahint));
1845		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->len));
1846		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->fragnum));
1847		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auth_proto));
1848		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->serial_low));
1849		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u, r->ptype));
1850		NDR_CHECK(ndr_pull_dcerpc_payload(ndr, NDR_SCALARS, &r->u));
1851		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1852	}
1853	if (ndr_flags & NDR_BUFFERS) {
1854		NDR_CHECK(ndr_pull_dcerpc_payload(ndr, NDR_BUFFERS, &r->u));
1855	}
1856	return NDR_ERR_SUCCESS;
1857}
1858
1859_PUBLIC_ void ndr_print_ncadg_packet(struct ndr_print *ndr, const char *name, const struct ncadg_packet *r)
1860{
1861	ndr_print_struct(ndr, name, "ncadg_packet");
1862	ndr->depth++;
1863	ndr_print_uint8(ndr, "rpc_vers", r->rpc_vers);
1864	ndr_print_uint8(ndr, "ptype", r->ptype);
1865	ndr_print_uint8(ndr, "pfc_flags", r->pfc_flags);
1866	ndr_print_uint8(ndr, "ncadg_flags", r->ncadg_flags);
1867	ndr_print_array_uint8(ndr, "drep", r->drep, 3);
1868	ndr_print_uint8(ndr, "serial_high", r->serial_high);
1869	ndr_print_GUID(ndr, "object", &r->object);
1870	ndr_print_GUID(ndr, "iface", &r->iface);
1871	ndr_print_GUID(ndr, "activity", &r->activity);
1872	ndr_print_uint32(ndr, "server_boot", r->server_boot);
1873	ndr_print_uint32(ndr, "iface_version", r->iface_version);
1874	ndr_print_uint32(ndr, "seq_num", r->seq_num);
1875	ndr_print_uint16(ndr, "opnum", r->opnum);
1876	ndr_print_uint16(ndr, "ihint", r->ihint);
1877	ndr_print_uint16(ndr, "ahint", r->ahint);
1878	ndr_print_uint16(ndr, "len", r->len);
1879	ndr_print_uint16(ndr, "fragnum", r->fragnum);
1880	ndr_print_uint8(ndr, "auth_proto", r->auth_proto);
1881	ndr_print_uint8(ndr, "serial_low", r->serial_low);
1882	ndr_print_set_switch_value(ndr, &r->u, r->ptype);
1883	ndr_print_dcerpc_payload(ndr, "u", &r->u);
1884	ndr->depth--;
1885}
1886
1887