Line data Source code
1 : /* parser auto-generated by pidl */
2 :
3 : #include "includes.h"
4 : #include "bin/default/librpc/gen_ndr/ndr_misc.h"
5 :
6 211986014 : _PUBLIC_ enum ndr_err_code ndr_push_GUID(struct ndr_push *ndr, int ndr_flags, const struct GUID *r)
7 : {
8 211986014 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9 211986014 : if (ndr_flags & NDR_SCALARS) {
10 211984649 : NDR_CHECK(ndr_push_align(ndr, 4));
11 211984649 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time_low));
12 211984649 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->time_mid));
13 211984649 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->time_hi_and_version));
14 211984649 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->clock_seq, 2));
15 211984649 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->node, 6));
16 211984649 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
17 : }
18 211986014 : if (ndr_flags & NDR_BUFFERS) {
19 : }
20 211986014 : return NDR_ERR_SUCCESS;
21 : }
22 :
23 365892735 : _PUBLIC_ enum ndr_err_code ndr_pull_GUID(struct ndr_pull *ndr, int ndr_flags, struct GUID *r)
24 : {
25 365892735 : uint32_t size_clock_seq_0 = 0;
26 365892735 : uint32_t size_node_0 = 0;
27 365892735 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
28 365892735 : if (ndr_flags & NDR_SCALARS) {
29 365891560 : NDR_CHECK(ndr_pull_align(ndr, 4));
30 365891560 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time_low));
31 365891560 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->time_mid));
32 365891560 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->time_hi_and_version));
33 365891560 : size_clock_seq_0 = 2;
34 365891560 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->clock_seq, size_clock_seq_0));
35 365891560 : size_node_0 = 6;
36 365891560 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->node, size_node_0));
37 365891560 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
38 : }
39 365892735 : if (ndr_flags & NDR_BUFFERS) {
40 : }
41 365892735 : return NDR_ERR_SUCCESS;
42 : }
43 :
44 0 : static void ndr_print_flags_GUID(struct ndr_print *ndr, const char *name, int unused, const struct GUID *r)
45 : {
46 0 : ndr_print_GUID(ndr, name, r);
47 0 : }
48 :
49 6 : _PUBLIC_ size_t ndr_size_GUID(const struct GUID *r, int flags)
50 : {
51 6 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_GUID);
52 : }
53 :
54 399833 : _PUBLIC_ enum ndr_err_code ndr_push_ndr_syntax_id(struct ndr_push *ndr, int ndr_flags, const struct ndr_syntax_id *r)
55 : {
56 399833 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
57 399833 : if (ndr_flags & NDR_SCALARS) {
58 399833 : NDR_CHECK(ndr_push_align(ndr, 4));
59 399833 : NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->uuid));
60 399833 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->if_version));
61 399833 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
62 : }
63 399833 : if (ndr_flags & NDR_BUFFERS) {
64 : }
65 399833 : return NDR_ERR_SUCCESS;
66 : }
67 :
68 791366 : _PUBLIC_ enum ndr_err_code ndr_pull_ndr_syntax_id(struct ndr_pull *ndr, int ndr_flags, struct ndr_syntax_id *r)
69 : {
70 791366 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
71 791366 : if (ndr_flags & NDR_SCALARS) {
72 791366 : NDR_CHECK(ndr_pull_align(ndr, 4));
73 791366 : NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->uuid));
74 791366 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->if_version));
75 791366 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
76 : }
77 791366 : if (ndr_flags & NDR_BUFFERS) {
78 : }
79 791366 : return NDR_ERR_SUCCESS;
80 : }
81 :
82 0 : static void ndr_print_flags_ndr_syntax_id(struct ndr_print *ndr, const char *name, int unused, const struct ndr_syntax_id *r)
83 : {
84 0 : ndr_print_ndr_syntax_id(ndr, name, r);
85 0 : }
86 :
87 84 : _PUBLIC_ void ndr_print_ndr_syntax_id(struct ndr_print *ndr, const char *name, const struct ndr_syntax_id *r)
88 : {
89 84 : ndr_print_struct(ndr, name, "ndr_syntax_id");
90 84 : if (r == NULL) { ndr_print_null(ndr); return; }
91 84 : ndr->depth++;
92 84 : ndr_print_GUID(ndr, "uuid", &r->uuid);
93 84 : ndr_print_uint32(ndr, "if_version", r->if_version);
94 84 : ndr->depth--;
95 : }
96 :
97 277815 : _PUBLIC_ enum ndr_err_code ndr_push_policy_handle(struct ndr_push *ndr, int ndr_flags, const struct policy_handle *r)
98 : {
99 277815 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
100 277815 : if (ndr_flags & NDR_SCALARS) {
101 277815 : NDR_CHECK(ndr_push_align(ndr, 4));
102 277815 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->handle_type));
103 277815 : NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->uuid));
104 277815 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
105 : }
106 277815 : if (ndr_flags & NDR_BUFFERS) {
107 : }
108 277815 : return NDR_ERR_SUCCESS;
109 : }
110 :
111 447925 : _PUBLIC_ enum ndr_err_code ndr_pull_policy_handle(struct ndr_pull *ndr, int ndr_flags, struct policy_handle *r)
112 : {
113 447925 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
114 447925 : if (ndr_flags & NDR_SCALARS) {
115 447925 : NDR_CHECK(ndr_pull_align(ndr, 4));
116 447925 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->handle_type));
117 447925 : NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->uuid));
118 447925 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
119 : }
120 447925 : if (ndr_flags & NDR_BUFFERS) {
121 : }
122 447925 : return NDR_ERR_SUCCESS;
123 : }
124 :
125 0 : static void ndr_print_flags_policy_handle(struct ndr_print *ndr, const char *name, int unused, const struct policy_handle *r)
126 : {
127 0 : ndr_print_policy_handle(ndr, name, r);
128 0 : }
129 :
130 3264 : _PUBLIC_ void ndr_print_policy_handle(struct ndr_print *ndr, const char *name, const struct policy_handle *r)
131 : {
132 3264 : ndr_print_struct(ndr, name, "policy_handle");
133 3264 : if (r == NULL) { ndr_print_null(ndr); return; }
134 3264 : ndr->depth++;
135 3264 : ndr_print_uint32(ndr, "handle_type", r->handle_type);
136 3264 : ndr_print_GUID(ndr, "uuid", &r->uuid);
137 3264 : ndr->depth--;
138 : }
139 :
140 54985 : _PUBLIC_ enum ndr_err_code ndr_push_netr_SchannelType(struct ndr_push *ndr, int ndr_flags, enum netr_SchannelType r)
141 : {
142 54985 : NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
143 54985 : return NDR_ERR_SUCCESS;
144 : }
145 :
146 92141 : _PUBLIC_ enum ndr_err_code ndr_pull_netr_SchannelType(struct ndr_pull *ndr, int ndr_flags, enum netr_SchannelType *r)
147 : {
148 : uint16_t v;
149 92141 : NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
150 92141 : *r = v;
151 92141 : return NDR_ERR_SUCCESS;
152 : }
153 :
154 24 : _PUBLIC_ void ndr_print_netr_SchannelType(struct ndr_print *ndr, const char *name, enum netr_SchannelType r)
155 : {
156 24 : const char *val = NULL;
157 :
158 24 : switch (r) {
159 0 : case SEC_CHAN_NULL: val = "SEC_CHAN_NULL"; break;
160 0 : case SEC_CHAN_LOCAL: val = "SEC_CHAN_LOCAL"; break;
161 24 : case SEC_CHAN_WKSTA: val = "SEC_CHAN_WKSTA"; break;
162 0 : case SEC_CHAN_DNS_DOMAIN: val = "SEC_CHAN_DNS_DOMAIN"; break;
163 0 : case SEC_CHAN_DOMAIN: val = "SEC_CHAN_DOMAIN"; break;
164 0 : case SEC_CHAN_LANMAN: val = "SEC_CHAN_LANMAN"; break;
165 0 : case SEC_CHAN_BDC: val = "SEC_CHAN_BDC"; break;
166 0 : case SEC_CHAN_RODC: val = "SEC_CHAN_RODC"; break;
167 : }
168 24 : ndr_print_enum(ndr, name, "ENUM", val, r);
169 24 : }
170 :
171 0 : _PUBLIC_ enum ndr_err_code ndr_push_KRB5_EDATA_NTSTATUS(struct ndr_push *ndr, int ndr_flags, const struct KRB5_EDATA_NTSTATUS *r)
172 : {
173 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
174 0 : if (ndr_flags & NDR_SCALARS) {
175 0 : NDR_CHECK(ndr_push_align(ndr, 4));
176 0 : NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->ntstatus));
177 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
178 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
179 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
180 : }
181 0 : if (ndr_flags & NDR_BUFFERS) {
182 : }
183 0 : return NDR_ERR_SUCCESS;
184 : }
185 :
186 0 : _PUBLIC_ enum ndr_err_code ndr_pull_KRB5_EDATA_NTSTATUS(struct ndr_pull *ndr, int ndr_flags, struct KRB5_EDATA_NTSTATUS *r)
187 : {
188 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
189 0 : if (ndr_flags & NDR_SCALARS) {
190 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
191 0 : NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->ntstatus));
192 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
193 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
194 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
195 : }
196 0 : if (ndr_flags & NDR_BUFFERS) {
197 : }
198 0 : return NDR_ERR_SUCCESS;
199 : }
200 :
201 0 : static void ndr_print_flags_KRB5_EDATA_NTSTATUS(struct ndr_print *ndr, const char *name, int unused, const struct KRB5_EDATA_NTSTATUS *r)
202 : {
203 0 : ndr_print_KRB5_EDATA_NTSTATUS(ndr, name, r);
204 0 : }
205 :
206 0 : _PUBLIC_ void ndr_print_KRB5_EDATA_NTSTATUS(struct ndr_print *ndr, const char *name, const struct KRB5_EDATA_NTSTATUS *r)
207 : {
208 0 : ndr_print_struct(ndr, name, "KRB5_EDATA_NTSTATUS");
209 0 : if (r == NULL) { ndr_print_null(ndr); return; }
210 0 : ndr->depth++;
211 0 : ndr_print_NTSTATUS(ndr, "ntstatus", r->ntstatus);
212 0 : ndr_print_uint32(ndr, "unknown1", r->unknown1);
213 0 : ndr_print_uint32(ndr, "unknown2", r->unknown2);
214 0 : ndr->depth--;
215 : }
216 :
217 66428 : _PUBLIC_ enum ndr_err_code ndr_push_winreg_Type(struct ndr_push *ndr, int ndr_flags, enum winreg_Type r)
218 : {
219 66428 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
220 66428 : return NDR_ERR_SUCCESS;
221 : }
222 :
223 88598 : _PUBLIC_ enum ndr_err_code ndr_pull_winreg_Type(struct ndr_pull *ndr, int ndr_flags, enum winreg_Type *r)
224 : {
225 : uint32_t v;
226 88598 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
227 88598 : *r = v;
228 88598 : return NDR_ERR_SUCCESS;
229 : }
230 :
231 310 : _PUBLIC_ void ndr_print_winreg_Type(struct ndr_print *ndr, const char *name, enum winreg_Type r)
232 : {
233 310 : const char *val = NULL;
234 :
235 310 : switch (r) {
236 122 : case REG_NONE: val = "REG_NONE"; break;
237 18 : case REG_SZ: val = "REG_SZ"; break;
238 0 : case REG_EXPAND_SZ: val = "REG_EXPAND_SZ"; break;
239 130 : case REG_BINARY: val = "REG_BINARY"; break;
240 10 : case REG_DWORD: val = "REG_DWORD"; break;
241 10 : case REG_DWORD_BIG_ENDIAN: val = "REG_DWORD_BIG_ENDIAN"; break;
242 0 : case REG_LINK: val = "REG_LINK"; break;
243 10 : case REG_MULTI_SZ: val = "REG_MULTI_SZ"; break;
244 0 : case REG_RESOURCE_LIST: val = "REG_RESOURCE_LIST"; break;
245 0 : case REG_FULL_RESOURCE_DESCRIPTOR: val = "REG_FULL_RESOURCE_DESCRIPTOR"; break;
246 0 : case REG_RESOURCE_REQUIREMENTS_LIST: val = "REG_RESOURCE_REQUIREMENTS_LIST"; break;
247 10 : case REG_QWORD: val = "REG_QWORD"; break;
248 : }
249 310 : ndr_print_enum(ndr, name, "ENUM", val, r);
250 310 : }
251 :
252 16152 : _PUBLIC_ enum ndr_err_code ndr_push_winreg_Data(struct ndr_push *ndr, int ndr_flags, const union winreg_Data *r)
253 : {
254 : uint32_t level;
255 : {
256 16152 : uint32_t _flags_save_UNION = ndr->flags;
257 16152 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
258 16152 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
259 16152 : if (ndr_flags & NDR_SCALARS) {
260 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
261 16152 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
262 16152 : NDR_CHECK(ndr_push_union_align(ndr, 8));
263 16152 : switch (level) {
264 0 : case REG_NONE: {
265 0 : break; }
266 :
267 16037 : case REG_SZ: {
268 : {
269 16037 : uint32_t _flags_save_string = ndr->flags;
270 16037 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
271 16037 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
272 16037 : ndr->flags = _flags_save_string;
273 : }
274 16037 : break; }
275 :
276 0 : case REG_EXPAND_SZ: {
277 : {
278 0 : uint32_t _flags_save_string = ndr->flags;
279 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
280 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
281 0 : ndr->flags = _flags_save_string;
282 : }
283 0 : break; }
284 :
285 0 : case REG_BINARY: {
286 : {
287 0 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
288 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
289 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
290 0 : ndr->flags = _flags_save_DATA_BLOB;
291 : }
292 0 : break; }
293 :
294 0 : case REG_DWORD: {
295 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
296 0 : break; }
297 :
298 0 : case REG_DWORD_BIG_ENDIAN: {
299 : {
300 0 : uint32_t _flags_save_uint32 = ndr->flags;
301 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
302 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
303 0 : ndr->flags = _flags_save_uint32;
304 : }
305 0 : break; }
306 :
307 115 : case REG_MULTI_SZ: {
308 : {
309 115 : uint32_t _flags_save_string_array = ndr->flags;
310 115 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
311 115 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
312 115 : ndr->flags = _flags_save_string_array;
313 : }
314 115 : break; }
315 :
316 0 : case REG_QWORD: {
317 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->qword));
318 0 : break; }
319 :
320 0 : default: {
321 : {
322 0 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
323 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
324 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
325 0 : ndr->flags = _flags_save_DATA_BLOB;
326 : }
327 0 : break; }
328 :
329 : }
330 0 : }
331 16152 : ndr->flags = _flags_save_UNION;
332 : }
333 16152 : return NDR_ERR_SUCCESS;
334 : }
335 :
336 11 : _PUBLIC_ enum ndr_err_code ndr_pull_winreg_Data(struct ndr_pull *ndr, int ndr_flags, union winreg_Data *r)
337 : {
338 : uint32_t level;
339 : {
340 11 : uint32_t _flags_save_UNION = ndr->flags;
341 11 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
342 11 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
343 11 : if (ndr_flags & NDR_SCALARS) {
344 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
345 11 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
346 11 : NDR_CHECK(ndr_pull_union_align(ndr, 8));
347 11 : switch (level) {
348 0 : case REG_NONE: {
349 0 : break; }
350 :
351 11 : case REG_SZ: {
352 : {
353 11 : uint32_t _flags_save_string = ndr->flags;
354 11 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
355 11 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
356 11 : ndr->flags = _flags_save_string;
357 : }
358 11 : break; }
359 :
360 0 : case REG_EXPAND_SZ: {
361 : {
362 0 : uint32_t _flags_save_string = ndr->flags;
363 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
364 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
365 0 : ndr->flags = _flags_save_string;
366 : }
367 0 : break; }
368 :
369 0 : case REG_BINARY: {
370 : {
371 0 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
372 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
373 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
374 0 : ndr->flags = _flags_save_DATA_BLOB;
375 : }
376 0 : break; }
377 :
378 0 : case REG_DWORD: {
379 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
380 0 : break; }
381 :
382 0 : case REG_DWORD_BIG_ENDIAN: {
383 : {
384 0 : uint32_t _flags_save_uint32 = ndr->flags;
385 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
386 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
387 0 : ndr->flags = _flags_save_uint32;
388 : }
389 0 : break; }
390 :
391 0 : case REG_MULTI_SZ: {
392 : {
393 0 : uint32_t _flags_save_string_array = ndr->flags;
394 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
395 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
396 0 : ndr->flags = _flags_save_string_array;
397 : }
398 0 : break; }
399 :
400 0 : case REG_QWORD: {
401 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->qword));
402 0 : break; }
403 :
404 0 : default: {
405 : {
406 0 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
407 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
408 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
409 0 : ndr->flags = _flags_save_DATA_BLOB;
410 : }
411 0 : break; }
412 :
413 : }
414 0 : }
415 11 : ndr->flags = _flags_save_UNION;
416 : }
417 11 : return NDR_ERR_SUCCESS;
418 : }
419 :
420 0 : _PUBLIC_ void ndr_print_winreg_Data(struct ndr_print *ndr, const char *name, const union winreg_Data *r)
421 : {
422 : uint32_t level;
423 : {
424 0 : uint32_t _flags_save_UNION = ndr->flags;
425 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
426 0 : level = ndr_print_steal_switch_value(ndr, r);
427 0 : ndr_print_union(ndr, name, level, "winreg_Data");
428 0 : switch (level) {
429 0 : case REG_NONE:
430 0 : break;
431 :
432 0 : case REG_SZ:
433 : {
434 0 : uint32_t _flags_save_string = ndr->flags;
435 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
436 0 : ndr_print_string(ndr, "string", r->string);
437 0 : ndr->flags = _flags_save_string;
438 : }
439 0 : break;
440 :
441 0 : case REG_EXPAND_SZ:
442 : {
443 0 : uint32_t _flags_save_string = ndr->flags;
444 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
445 0 : ndr_print_string(ndr, "string", r->string);
446 0 : ndr->flags = _flags_save_string;
447 : }
448 0 : break;
449 :
450 0 : case REG_BINARY:
451 : {
452 0 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
453 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
454 0 : ndr_print_DATA_BLOB(ndr, "binary", r->binary);
455 0 : ndr->flags = _flags_save_DATA_BLOB;
456 : }
457 0 : break;
458 :
459 0 : case REG_DWORD:
460 0 : ndr_print_uint32(ndr, "value", r->value);
461 0 : break;
462 :
463 0 : case REG_DWORD_BIG_ENDIAN:
464 : {
465 0 : uint32_t _flags_save_uint32 = ndr->flags;
466 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
467 0 : ndr_print_uint32(ndr, "value", r->value);
468 0 : ndr->flags = _flags_save_uint32;
469 : }
470 0 : break;
471 :
472 0 : case REG_MULTI_SZ:
473 : {
474 0 : uint32_t _flags_save_string_array = ndr->flags;
475 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
476 0 : ndr_print_string_array(ndr, "string_array", r->string_array);
477 0 : ndr->flags = _flags_save_string_array;
478 : }
479 0 : break;
480 :
481 0 : case REG_QWORD:
482 0 : ndr_print_hyper(ndr, "qword", r->qword);
483 0 : break;
484 :
485 0 : default:
486 : {
487 0 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
488 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
489 0 : ndr_print_DATA_BLOB(ndr, "data", r->data);
490 0 : ndr->flags = _flags_save_DATA_BLOB;
491 : }
492 0 : break;
493 :
494 : }
495 0 : ndr->flags = _flags_save_UNION;
496 : }
497 0 : }
498 :
499 10784 : _PUBLIC_ enum ndr_err_code ndr_push_winreg_Data_GPO(struct ndr_push *ndr, int ndr_flags, const union winreg_Data_GPO *r)
500 : {
501 : uint32_t level;
502 : {
503 10784 : uint32_t _flags_save_UNION = ndr->flags;
504 10784 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
505 10784 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
506 10784 : if (ndr_flags & NDR_SCALARS) {
507 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
508 10784 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
509 10784 : NDR_CHECK(ndr_push_union_align(ndr, 8));
510 10784 : switch (level) {
511 4416 : case REG_NONE: {
512 4416 : break; }
513 :
514 3072 : case REG_SZ: {
515 : {
516 3072 : uint32_t _flags_save_string = ndr->flags;
517 3072 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
518 3072 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
519 3072 : ndr->flags = _flags_save_string;
520 : }
521 3072 : break; }
522 :
523 384 : case REG_EXPAND_SZ: {
524 : {
525 384 : uint32_t _flags_save_string = ndr->flags;
526 384 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
527 384 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
528 384 : ndr->flags = _flags_save_string;
529 : }
530 384 : break; }
531 :
532 192 : case REG_BINARY: {
533 : {
534 192 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
535 192 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
536 192 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
537 192 : ndr->flags = _flags_save_DATA_BLOB;
538 : }
539 192 : break; }
540 :
541 1952 : case REG_DWORD: {
542 1952 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
543 1952 : break; }
544 :
545 0 : case REG_DWORD_BIG_ENDIAN: {
546 : {
547 0 : uint32_t _flags_save_uint32 = ndr->flags;
548 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
549 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
550 0 : ndr->flags = _flags_save_uint32;
551 : }
552 0 : break; }
553 :
554 384 : case REG_QWORD: {
555 384 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->qword));
556 384 : break; }
557 :
558 384 : default: {
559 : {
560 384 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
561 384 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
562 384 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
563 384 : ndr->flags = _flags_save_DATA_BLOB;
564 : }
565 384 : break; }
566 :
567 : }
568 0 : }
569 10784 : ndr->flags = _flags_save_UNION;
570 : }
571 10784 : return NDR_ERR_SUCCESS;
572 : }
573 :
574 2700 : _PUBLIC_ enum ndr_err_code ndr_pull_winreg_Data_GPO(struct ndr_pull *ndr, int ndr_flags, union winreg_Data_GPO *r)
575 : {
576 : uint32_t level;
577 : {
578 2700 : uint32_t _flags_save_UNION = ndr->flags;
579 2700 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
580 2700 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
581 2700 : if (ndr_flags & NDR_SCALARS) {
582 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
583 2700 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
584 2700 : NDR_CHECK(ndr_pull_union_align(ndr, 8));
585 2700 : switch (level) {
586 1104 : case REG_NONE: {
587 1104 : break; }
588 :
589 768 : case REG_SZ: {
590 : {
591 768 : uint32_t _flags_save_string = ndr->flags;
592 768 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
593 768 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
594 768 : ndr->flags = _flags_save_string;
595 : }
596 768 : break; }
597 :
598 96 : case REG_EXPAND_SZ: {
599 : {
600 96 : uint32_t _flags_save_string = ndr->flags;
601 96 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
602 96 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
603 96 : ndr->flags = _flags_save_string;
604 : }
605 96 : break; }
606 :
607 48 : case REG_BINARY: {
608 : {
609 48 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
610 48 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
611 48 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
612 48 : ndr->flags = _flags_save_DATA_BLOB;
613 : }
614 48 : break; }
615 :
616 492 : case REG_DWORD: {
617 492 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
618 492 : break; }
619 :
620 0 : case REG_DWORD_BIG_ENDIAN: {
621 : {
622 0 : uint32_t _flags_save_uint32 = ndr->flags;
623 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
624 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
625 0 : ndr->flags = _flags_save_uint32;
626 : }
627 0 : break; }
628 :
629 96 : case REG_QWORD: {
630 96 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->qword));
631 96 : break; }
632 :
633 96 : default: {
634 : {
635 96 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
636 96 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
637 96 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
638 96 : ndr->flags = _flags_save_DATA_BLOB;
639 : }
640 96 : break; }
641 :
642 : }
643 0 : }
644 2700 : ndr->flags = _flags_save_UNION;
645 : }
646 2700 : return NDR_ERR_SUCCESS;
647 : }
648 :
649 0 : _PUBLIC_ void ndr_print_winreg_Data_GPO(struct ndr_print *ndr, const char *name, const union winreg_Data_GPO *r)
650 : {
651 : uint32_t level;
652 : {
653 0 : uint32_t _flags_save_UNION = ndr->flags;
654 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
655 0 : level = ndr_print_steal_switch_value(ndr, r);
656 0 : ndr_print_union(ndr, name, level, "winreg_Data_GPO");
657 0 : switch (level) {
658 0 : case REG_NONE:
659 0 : break;
660 :
661 0 : case REG_SZ:
662 : {
663 0 : uint32_t _flags_save_string = ndr->flags;
664 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
665 0 : ndr_print_string(ndr, "string", r->string);
666 0 : ndr->flags = _flags_save_string;
667 : }
668 0 : break;
669 :
670 0 : case REG_EXPAND_SZ:
671 : {
672 0 : uint32_t _flags_save_string = ndr->flags;
673 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
674 0 : ndr_print_string(ndr, "string", r->string);
675 0 : ndr->flags = _flags_save_string;
676 : }
677 0 : break;
678 :
679 0 : case REG_BINARY:
680 : {
681 0 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
682 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
683 0 : ndr_print_DATA_BLOB(ndr, "binary", r->binary);
684 0 : ndr->flags = _flags_save_DATA_BLOB;
685 : }
686 0 : break;
687 :
688 0 : case REG_DWORD:
689 0 : ndr_print_uint32(ndr, "value", r->value);
690 0 : break;
691 :
692 0 : case REG_DWORD_BIG_ENDIAN:
693 : {
694 0 : uint32_t _flags_save_uint32 = ndr->flags;
695 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
696 0 : ndr_print_uint32(ndr, "value", r->value);
697 0 : ndr->flags = _flags_save_uint32;
698 : }
699 0 : break;
700 :
701 0 : case REG_QWORD:
702 0 : ndr_print_hyper(ndr, "qword", r->qword);
703 0 : break;
704 :
705 0 : default:
706 : {
707 0 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
708 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
709 0 : ndr_print_DATA_BLOB(ndr, "data", r->data);
710 0 : ndr->flags = _flags_save_DATA_BLOB;
711 : }
712 0 : break;
713 :
714 : }
715 0 : ndr->flags = _flags_save_UNION;
716 : }
717 0 : }
718 :
719 8088 : _PUBLIC_ size_t ndr_size_winreg_Data_GPO(const union winreg_Data_GPO *r, uint32_t level, int flags)
720 : {
721 8088 : flags |= LIBNDR_FLAG_LITTLE_ENDIAN;
722 8088 : return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_winreg_Data_GPO);
723 : }
724 :
725 24 : _PUBLIC_ enum ndr_err_code ndr_push_netr_SamDatabaseID(struct ndr_push *ndr, int ndr_flags, enum netr_SamDatabaseID r)
726 : {
727 24 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
728 24 : return NDR_ERR_SUCCESS;
729 : }
730 :
731 1272 : _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamDatabaseID(struct ndr_pull *ndr, int ndr_flags, enum netr_SamDatabaseID *r)
732 : {
733 : uint32_t v;
734 1272 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
735 1272 : *r = v;
736 1272 : return NDR_ERR_SUCCESS;
737 : }
738 :
739 0 : _PUBLIC_ void ndr_print_netr_SamDatabaseID(struct ndr_print *ndr, const char *name, enum netr_SamDatabaseID r)
740 : {
741 0 : const char *val = NULL;
742 :
743 0 : switch (r) {
744 0 : case SAM_DATABASE_DOMAIN: val = "SAM_DATABASE_DOMAIN"; break;
745 0 : case SAM_DATABASE_BUILTIN: val = "SAM_DATABASE_BUILTIN"; break;
746 0 : case SAM_DATABASE_PRIVS: val = "SAM_DATABASE_PRIVS"; break;
747 : }
748 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
749 0 : }
750 :
751 334 : _PUBLIC_ enum ndr_err_code ndr_push_svcctl_ServerType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
752 : {
753 334 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
754 334 : return NDR_ERR_SUCCESS;
755 : }
756 :
757 433 : _PUBLIC_ enum ndr_err_code ndr_pull_svcctl_ServerType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
758 : {
759 : uint32_t v;
760 433 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
761 433 : *r = v;
762 433 : return NDR_ERR_SUCCESS;
763 : }
764 :
765 6 : _PUBLIC_ void ndr_print_svcctl_ServerType(struct ndr_print *ndr, const char *name, uint32_t r)
766 : {
767 6 : ndr_print_uint32(ndr, name, r);
768 6 : ndr->depth++;
769 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_WORKSTATION", SV_TYPE_WORKSTATION, r);
770 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_SERVER", SV_TYPE_SERVER, r);
771 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_SQLSERVER", SV_TYPE_SQLSERVER, r);
772 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_DOMAIN_CTRL", SV_TYPE_DOMAIN_CTRL, r);
773 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_DOMAIN_BAKCTRL", SV_TYPE_DOMAIN_BAKCTRL, r);
774 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_TIME_SOURCE", SV_TYPE_TIME_SOURCE, r);
775 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_AFP", SV_TYPE_AFP, r);
776 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_NOVELL", SV_TYPE_NOVELL, r);
777 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_DOMAIN_MEMBER", SV_TYPE_DOMAIN_MEMBER, r);
778 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_PRINTQ_SERVER", SV_TYPE_PRINTQ_SERVER, r);
779 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_DIALIN_SERVER", SV_TYPE_DIALIN_SERVER, r);
780 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_SERVER_UNIX", SV_TYPE_SERVER_UNIX, r);
781 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_NT", SV_TYPE_NT, r);
782 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_WFW", SV_TYPE_WFW, r);
783 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_SERVER_MFPN", SV_TYPE_SERVER_MFPN, r);
784 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_SERVER_NT", SV_TYPE_SERVER_NT, r);
785 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_POTENTIAL_BROWSER", SV_TYPE_POTENTIAL_BROWSER, r);
786 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_BACKUP_BROWSER", SV_TYPE_BACKUP_BROWSER, r);
787 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_MASTER_BROWSER", SV_TYPE_MASTER_BROWSER, r);
788 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_DOMAIN_MASTER", SV_TYPE_DOMAIN_MASTER, r);
789 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_SERVER_OSF", SV_TYPE_SERVER_OSF, r);
790 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_SERVER_VMS", SV_TYPE_SERVER_VMS, r);
791 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_WIN95_PLUS", SV_TYPE_WIN95_PLUS, r);
792 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_DFS_SERVER", SV_TYPE_DFS_SERVER, r);
793 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_ALTERNATE_XPORT", SV_TYPE_ALTERNATE_XPORT, r);
794 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_LOCAL_LIST_ONLY", SV_TYPE_LOCAL_LIST_ONLY, r);
795 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SV_TYPE_DOMAIN_ENUM", SV_TYPE_DOMAIN_ENUM, r);
796 6 : ndr->depth--;
797 6 : }
798 :
799 : #ifndef SKIP_NDR_TABLE_misc
800 : static const struct ndr_interface_public_struct misc_public_structs[] = {
801 : {
802 : .name = "GUID",
803 : .struct_size = sizeof(struct GUID ),
804 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_GUID,
805 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_GUID,
806 : .ndr_print = (ndr_print_function_t) ndr_print_flags_GUID,
807 : },
808 : {
809 : .name = "ndr_syntax_id",
810 : .struct_size = sizeof(struct ndr_syntax_id ),
811 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_ndr_syntax_id,
812 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_ndr_syntax_id,
813 : .ndr_print = (ndr_print_function_t) ndr_print_flags_ndr_syntax_id,
814 : },
815 : {
816 : .name = "policy_handle",
817 : .struct_size = sizeof(struct policy_handle ),
818 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_policy_handle,
819 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_policy_handle,
820 : .ndr_print = (ndr_print_function_t) ndr_print_flags_policy_handle,
821 : },
822 : {
823 : .name = "KRB5_EDATA_NTSTATUS",
824 : .struct_size = sizeof(struct KRB5_EDATA_NTSTATUS ),
825 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_KRB5_EDATA_NTSTATUS,
826 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_KRB5_EDATA_NTSTATUS,
827 : .ndr_print = (ndr_print_function_t) ndr_print_flags_KRB5_EDATA_NTSTATUS,
828 : },
829 : { .name = NULL }
830 : };
831 :
832 : static const struct ndr_interface_call misc_calls[] = {
833 : { .name = NULL }
834 : };
835 :
836 : static const char * const misc_endpoint_strings[] = {
837 : "ncacn_np:[\\pipe\\misc]",
838 : };
839 :
840 : static const struct ndr_interface_string_array misc_endpoints = {
841 : .count = 1,
842 : .names = misc_endpoint_strings
843 : };
844 :
845 : static const char * const misc_authservice_strings[] = {
846 : "host",
847 : };
848 :
849 : static const struct ndr_interface_string_array misc_authservices = {
850 : .count = 1,
851 : .names = misc_authservice_strings
852 : };
853 :
854 :
855 : const struct ndr_interface_table ndr_table_misc = {
856 : .name = "misc",
857 : .num_calls = 0,
858 : .calls = misc_calls,
859 : .num_public_structs = 4,
860 : .public_structs = misc_public_structs,
861 : .endpoints = &misc_endpoints,
862 : .authservices = &misc_authservices
863 : };
864 :
865 : #endif /* SKIP_NDR_TABLE_misc */
|