source: branches/samba-3.5.x/librpc/gen_ndr/ndr_misc.c

Last change on this file was 734, checked in by Silvan Scherrer, 13 years ago

Samba Server 3.5: update branche to 3.5.14

File size: 13.7 KB
Line 
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 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));
31 size_clock_seq_0 = 2;
32 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->clock_seq, size_clock_seq_0));
33 size_node_0 = 6;
34 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->node, size_node_0));
35 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
36 }
37 if (ndr_flags & NDR_BUFFERS) {
38 }
39 return NDR_ERR_SUCCESS;
40}
41
42_PUBLIC_ size_t ndr_size_GUID(const struct GUID *r, struct smb_iconv_convenience *ic, int flags)
43{
44 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_GUID, ic);
45}
46
47_PUBLIC_ enum ndr_err_code ndr_push_ndr_syntax_id(struct ndr_push *ndr, int ndr_flags, const struct ndr_syntax_id *r)
48{
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));
54 }
55 if (ndr_flags & NDR_BUFFERS) {
56 }
57 return NDR_ERR_SUCCESS;
58}
59
60_PUBLIC_ enum ndr_err_code ndr_pull_ndr_syntax_id(struct ndr_pull *ndr, int ndr_flags, struct ndr_syntax_id *r)
61{
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));
67 }
68 if (ndr_flags & NDR_BUFFERS) {
69 }
70 return NDR_ERR_SUCCESS;
71}
72
73_PUBLIC_ void ndr_print_ndr_syntax_id(struct ndr_print *ndr, const char *name, const struct ndr_syntax_id *r)
74{
75 ndr_print_struct(ndr, name, "ndr_syntax_id");
76 ndr->depth++;
77 ndr_print_GUID(ndr, "uuid", &r->uuid);
78 ndr_print_uint32(ndr, "if_version", r->if_version);
79 ndr->depth--;
80}
81
82_PUBLIC_ enum ndr_err_code ndr_push_policy_handle(struct ndr_push *ndr, int ndr_flags, const struct policy_handle *r)
83{
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));
89 }
90 if (ndr_flags & NDR_BUFFERS) {
91 }
92 return NDR_ERR_SUCCESS;
93}
94
95_PUBLIC_ enum ndr_err_code ndr_pull_policy_handle(struct ndr_pull *ndr, int ndr_flags, struct policy_handle *r)
96{
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));
102 }
103 if (ndr_flags & NDR_BUFFERS) {
104 }
105 return NDR_ERR_SUCCESS;
106}
107
108_PUBLIC_ void ndr_print_policy_handle(struct ndr_print *ndr, const char *name, const struct policy_handle *r)
109{
110 ndr_print_struct(ndr, name, "policy_handle");
111 ndr->depth++;
112 ndr_print_uint32(ndr, "handle_type", r->handle_type);
113 ndr_print_GUID(ndr, "uuid", &r->uuid);
114 ndr->depth--;
115}
116
117_PUBLIC_ enum ndr_err_code ndr_push_netr_SchannelType(struct ndr_push *ndr, int ndr_flags, enum netr_SchannelType r)
118{
119 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
120 return NDR_ERR_SUCCESS;
121}
122
123_PUBLIC_ enum ndr_err_code ndr_pull_netr_SchannelType(struct ndr_pull *ndr, int ndr_flags, enum netr_SchannelType *r)
124{
125 uint16_t v;
126 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
127 *r = v;
128 return NDR_ERR_SUCCESS;
129}
130
131_PUBLIC_ void ndr_print_netr_SchannelType(struct ndr_print *ndr, const char *name, enum netr_SchannelType r)
132{
133 const char *val = NULL;
134
135 switch (r) {
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;
141 }
142 ndr_print_enum(ndr, name, "ENUM", val, r);
143}
144
145_PUBLIC_ enum ndr_err_code ndr_push_KRB5_EDATA_NTSTATUS(struct ndr_push *ndr, int ndr_flags, const struct KRB5_EDATA_NTSTATUS *r)
146{
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));
153 }
154 if (ndr_flags & NDR_BUFFERS) {
155 }
156 return NDR_ERR_SUCCESS;
157}
158
159_PUBLIC_ enum ndr_err_code ndr_pull_KRB5_EDATA_NTSTATUS(struct ndr_pull *ndr, int ndr_flags, struct KRB5_EDATA_NTSTATUS *r)
160{
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));
167 }
168 if (ndr_flags & NDR_BUFFERS) {
169 }
170 return NDR_ERR_SUCCESS;
171}
172
173_PUBLIC_ void ndr_print_KRB5_EDATA_NTSTATUS(struct ndr_print *ndr, const char *name, const struct KRB5_EDATA_NTSTATUS *r)
174{
175 ndr_print_struct(ndr, name, "KRB5_EDATA_NTSTATUS");
176 ndr->depth++;
177 ndr_print_NTSTATUS(ndr, "ntstatus", r->ntstatus);
178 ndr_print_uint32(ndr, "unknown1", r->unknown1);
179 ndr_print_uint32(ndr, "unknown2", r->unknown2);
180 ndr->depth--;
181}
182
183_PUBLIC_ enum ndr_err_code ndr_push_winreg_Type(struct ndr_push *ndr, int ndr_flags, enum winreg_Type r)
184{
185 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
186 return NDR_ERR_SUCCESS;
187}
188
189_PUBLIC_ enum ndr_err_code ndr_pull_winreg_Type(struct ndr_pull *ndr, int ndr_flags, enum winreg_Type *r)
190{
191 uint32_t v;
192 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
193 *r = v;
194 return NDR_ERR_SUCCESS;
195}
196
197_PUBLIC_ void ndr_print_winreg_Type(struct ndr_print *ndr, const char *name, enum winreg_Type r)
198{
199 const char *val = NULL;
200
201 switch (r) {
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;
214 }
215 ndr_print_enum(ndr, name, "ENUM", val, r);
216}
217
218_PUBLIC_ enum ndr_err_code ndr_push_winreg_Data(struct ndr_push *ndr, int ndr_flags, const union winreg_Data *r)
219{
220 {
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));
226 switch (level) {
227 case REG_NONE: {
228 break; }
229
230 case REG_SZ: {
231 {
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;
236 }
237 break; }
238
239 case REG_EXPAND_SZ: {
240 {
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;
245 }
246 break; }
247
248 case REG_BINARY: {
249 {
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;
254 }
255 break; }
256
257 case REG_DWORD: {
258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
259 break; }
260
261 case REG_DWORD_BIG_ENDIAN: {
262 {
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;
267 }
268 break; }
269
270 case REG_MULTI_SZ: {
271 {
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;
276 }
277 break; }
278
279 default: {
280 {
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;
285 }
286 break; }
287
288 }
289 }
290 if (ndr_flags & NDR_BUFFERS) {
291 int level = ndr_push_get_switch_value(ndr, r);
292 switch (level) {
293 case REG_NONE:
294 break;
295
296 case REG_SZ:
297 break;
298
299 case REG_EXPAND_SZ:
300 break;
301
302 case REG_BINARY:
303 break;
304
305 case REG_DWORD:
306 break;
307
308 case REG_DWORD_BIG_ENDIAN:
309 break;
310
311 case REG_MULTI_SZ:
312 break;
313
314 default:
315 break;
316
317 }
318 }
319 ndr->flags = _flags_save_UNION;
320 }
321 return NDR_ERR_SUCCESS;
322}
323
324_PUBLIC_ enum ndr_err_code ndr_pull_winreg_Data(struct ndr_pull *ndr, int ndr_flags, union winreg_Data *r)
325{
326 int level;
327 {
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));
333 switch (level) {
334 case REG_NONE: {
335 break; }
336
337 case REG_SZ: {
338 {
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;
343 }
344 break; }
345
346 case REG_EXPAND_SZ: {
347 {
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;
352 }
353 break; }
354
355 case REG_BINARY: {
356 {
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;
361 }
362 break; }
363
364 case REG_DWORD: {
365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
366 break; }
367
368 case REG_DWORD_BIG_ENDIAN: {
369 {
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;
374 }
375 break; }
376
377 case REG_MULTI_SZ: {
378 {
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;
383 }
384 break; }
385
386 default: {
387 {
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;
392 }
393 break; }
394
395 }
396 }
397 if (ndr_flags & NDR_BUFFERS) {
398 switch (level) {
399 case REG_NONE:
400 break;
401
402 case REG_SZ:
403 break;
404
405 case REG_EXPAND_SZ:
406 break;
407
408 case REG_BINARY:
409 break;
410
411 case REG_DWORD:
412 break;
413
414 case REG_DWORD_BIG_ENDIAN:
415 break;
416
417 case REG_MULTI_SZ:
418 break;
419
420 default:
421 break;
422
423 }
424 }
425 ndr->flags = _flags_save_UNION;
426 }
427 return NDR_ERR_SUCCESS;
428}
429
430_PUBLIC_ void ndr_print_winreg_Data(struct ndr_print *ndr, const char *name, const union winreg_Data *r)
431{
432 int level;
433 {
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");
438 switch (level) {
439 case REG_NONE:
440 break;
441
442 case REG_SZ:
443 ndr_print_string(ndr, "string", r->string);
444 break;
445
446 case REG_EXPAND_SZ:
447 ndr_print_string(ndr, "string", r->string);
448 break;
449
450 case REG_BINARY:
451 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
452 break;
453
454 case REG_DWORD:
455 ndr_print_uint32(ndr, "value", r->value);
456 break;
457
458 case REG_DWORD_BIG_ENDIAN:
459 ndr_print_uint32(ndr, "value", r->value);
460 break;
461
462 case REG_MULTI_SZ:
463 ndr_print_string_array(ndr, "string_array", r->string_array);
464 break;
465
466 default:
467 ndr_print_DATA_BLOB(ndr, "data", r->data);
468 break;
469
470 }
471 ndr->flags = _flags_save_UNION;
472 }
473}
474
Note: See TracBrowser for help on using the repository browser.