s3: re-run make samba3-idl.
[samba.git] / librpc / gen_ndr / ndr_rap.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_rap.h"
5
6 static enum ndr_err_code ndr_push_rap_share_info_0(struct ndr_push *ndr, int ndr_flags, const struct rap_share_info_0 *r)
7 {
8         if (ndr_flags & NDR_SCALARS) {
9                 NDR_CHECK(ndr_push_align(ndr, 1));
10                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
11                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
12         }
13         if (ndr_flags & NDR_BUFFERS) {
14         }
15         return NDR_ERR_SUCCESS;
16 }
17
18 static enum ndr_err_code ndr_pull_rap_share_info_0(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_0 *r)
19 {
20         if (ndr_flags & NDR_SCALARS) {
21                 NDR_CHECK(ndr_pull_align(ndr, 1));
22                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
23                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
24         }
25         if (ndr_flags & NDR_BUFFERS) {
26         }
27         return NDR_ERR_SUCCESS;
28 }
29
30 _PUBLIC_ void ndr_print_rap_share_info_0(struct ndr_print *ndr, const char *name, const struct rap_share_info_0 *r)
31 {
32         ndr_print_struct(ndr, name, "rap_share_info_0");
33         ndr->depth++;
34         ndr_print_array_uint8(ndr, "share_name", r->share_name, 13);
35         ndr->depth--;
36 }
37
38 static enum ndr_err_code ndr_push_rap_share_info_1(struct ndr_push *ndr, int ndr_flags, const struct rap_share_info_1 *r)
39 {
40         if (ndr_flags & NDR_SCALARS) {
41                 NDR_CHECK(ndr_push_align(ndr, 5));
42                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
43                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved1));
44                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->share_type));
45                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
46                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
47         }
48         if (ndr_flags & NDR_BUFFERS) {
49                 if (r->comment) {
50                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
51                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
52                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
53                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
54                 }
55         }
56         return NDR_ERR_SUCCESS;
57 }
58
59 static enum ndr_err_code ndr_pull_rap_share_info_1(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_1 *r)
60 {
61         uint32_t _ptr_comment;
62         TALLOC_CTX *_mem_save_comment_0;
63         if (ndr_flags & NDR_SCALARS) {
64                 NDR_CHECK(ndr_pull_align(ndr, 5));
65                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
66                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved1));
67                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->share_type));
68                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
69                 if (_ptr_comment) {
70                         NDR_PULL_ALLOC(ndr, r->comment);
71                 } else {
72                         r->comment = NULL;
73                 }
74                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
75         }
76         if (ndr_flags & NDR_BUFFERS) {
77                 if (r->comment) {
78                         _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
79                         NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
80                         NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
81                         NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
82                         if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
83                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
84                         }
85                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
86                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
87                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
88                 }
89         }
90         return NDR_ERR_SUCCESS;
91 }
92
93 _PUBLIC_ void ndr_print_rap_share_info_1(struct ndr_print *ndr, const char *name, const struct rap_share_info_1 *r)
94 {
95         ndr_print_struct(ndr, name, "rap_share_info_1");
96         ndr->depth++;
97         ndr_print_array_uint8(ndr, "share_name", r->share_name, 13);
98         ndr_print_uint8(ndr, "reserved1", r->reserved1);
99         ndr_print_uint16(ndr, "share_type", r->share_type);
100         ndr_print_ptr(ndr, "comment", r->comment);
101         ndr->depth++;
102         if (r->comment) {
103                 ndr_print_string(ndr, "comment", r->comment);
104         }
105         ndr->depth--;
106         ndr->depth--;
107 }
108
109 static enum ndr_err_code ndr_push_rap_share_info_2(struct ndr_push *ndr, int ndr_flags, const struct rap_share_info_2 *r)
110 {
111         if (ndr_flags & NDR_SCALARS) {
112                 NDR_CHECK(ndr_push_align(ndr, 5));
113                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
114                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved1));
115                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->share_type));
116                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
117                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->perms));
118                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->maximum_users));
119                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->active_users));
120                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->path));
121                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->password, 9));
122                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved2));
123                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
124         }
125         if (ndr_flags & NDR_BUFFERS) {
126                 if (r->comment) {
127                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
128                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
129                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
130                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
131                 }
132                 if (r->path) {
133                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->path, CH_DOS)));
134                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
135                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->path, CH_DOS)));
136                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->path, ndr_charset_length(r->path, CH_DOS), sizeof(uint8_t), CH_DOS));
137                 }
138         }
139         return NDR_ERR_SUCCESS;
140 }
141
142 static enum ndr_err_code ndr_pull_rap_share_info_2(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_2 *r)
143 {
144         uint32_t _ptr_comment;
145         TALLOC_CTX *_mem_save_comment_0;
146         uint32_t _ptr_path;
147         TALLOC_CTX *_mem_save_path_0;
148         if (ndr_flags & NDR_SCALARS) {
149                 NDR_CHECK(ndr_pull_align(ndr, 5));
150                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
151                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved1));
152                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->share_type));
153                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
154                 if (_ptr_comment) {
155                         NDR_PULL_ALLOC(ndr, r->comment);
156                 } else {
157                         r->comment = NULL;
158                 }
159                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->perms));
160                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->maximum_users));
161                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->active_users));
162                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_path));
163                 if (_ptr_path) {
164                         NDR_PULL_ALLOC(ndr, r->path);
165                 } else {
166                         r->path = NULL;
167                 }
168                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->password, 9));
169                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved2));
170                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
171         }
172         if (ndr_flags & NDR_BUFFERS) {
173                 if (r->comment) {
174                         _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
175                         NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
176                         NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
177                         NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
178                         if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
179                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
180                         }
181                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
182                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
183                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
184                 }
185                 if (r->path) {
186                         _mem_save_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
187                         NDR_PULL_SET_MEM_CTX(ndr, r->path, 0);
188                         NDR_CHECK(ndr_pull_array_size(ndr, &r->path));
189                         NDR_CHECK(ndr_pull_array_length(ndr, &r->path));
190                         if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) {
191                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path));
192                         }
193                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint8_t)));
194                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint8_t), CH_DOS));
195                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0);
196                 }
197         }
198         return NDR_ERR_SUCCESS;
199 }
200
201 _PUBLIC_ void ndr_print_rap_share_info_2(struct ndr_print *ndr, const char *name, const struct rap_share_info_2 *r)
202 {
203         ndr_print_struct(ndr, name, "rap_share_info_2");
204         ndr->depth++;
205         ndr_print_array_uint8(ndr, "share_name", r->share_name, 13);
206         ndr_print_uint8(ndr, "reserved1", r->reserved1);
207         ndr_print_uint16(ndr, "share_type", r->share_type);
208         ndr_print_ptr(ndr, "comment", r->comment);
209         ndr->depth++;
210         if (r->comment) {
211                 ndr_print_string(ndr, "comment", r->comment);
212         }
213         ndr->depth--;
214         ndr_print_uint16(ndr, "perms", r->perms);
215         ndr_print_uint16(ndr, "maximum_users", r->maximum_users);
216         ndr_print_uint16(ndr, "active_users", r->active_users);
217         ndr_print_ptr(ndr, "path", r->path);
218         ndr->depth++;
219         if (r->path) {
220                 ndr_print_string(ndr, "path", r->path);
221         }
222         ndr->depth--;
223         ndr_print_array_uint8(ndr, "password", r->password, 9);
224         ndr_print_uint8(ndr, "reserved2", r->reserved2);
225         ndr->depth--;
226 }
227
228 static enum ndr_err_code ndr_push_rap_share_info(struct ndr_push *ndr, int ndr_flags, const union rap_share_info *r)
229 {
230         if (ndr_flags & NDR_SCALARS) {
231                 int level = ndr_push_get_switch_value(ndr, r);
232                 NDR_CHECK(ndr_push_union_align(ndr, 5));
233                 switch (level) {
234                         case 0: {
235                                 NDR_CHECK(ndr_push_rap_share_info_0(ndr, NDR_SCALARS, &r->info0));
236                         break; }
237
238                         case 1: {
239                                 NDR_CHECK(ndr_push_rap_share_info_1(ndr, NDR_SCALARS, &r->info1));
240                         break; }
241
242                         case 2: {
243                                 NDR_CHECK(ndr_push_rap_share_info_2(ndr, NDR_SCALARS, &r->info2));
244                         break; }
245
246                         default:
247                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
248                 }
249         }
250         if (ndr_flags & NDR_BUFFERS) {
251                 int level = ndr_push_get_switch_value(ndr, r);
252                 switch (level) {
253                         case 0:
254                         break;
255
256                         case 1:
257                                 NDR_CHECK(ndr_push_rap_share_info_1(ndr, NDR_BUFFERS, &r->info1));
258                         break;
259
260                         case 2:
261                                 NDR_CHECK(ndr_push_rap_share_info_2(ndr, NDR_BUFFERS, &r->info2));
262                         break;
263
264                         default:
265                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
266                 }
267         }
268         return NDR_ERR_SUCCESS;
269 }
270
271 static enum ndr_err_code ndr_pull_rap_share_info(struct ndr_pull *ndr, int ndr_flags, union rap_share_info *r)
272 {
273         int level;
274         level = ndr_pull_get_switch_value(ndr, r);
275         if (ndr_flags & NDR_SCALARS) {
276                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
277                 switch (level) {
278                         case 0: {
279                                 NDR_CHECK(ndr_pull_rap_share_info_0(ndr, NDR_SCALARS, &r->info0));
280                         break; }
281
282                         case 1: {
283                                 NDR_CHECK(ndr_pull_rap_share_info_1(ndr, NDR_SCALARS, &r->info1));
284                         break; }
285
286                         case 2: {
287                                 NDR_CHECK(ndr_pull_rap_share_info_2(ndr, NDR_SCALARS, &r->info2));
288                         break; }
289
290                         default:
291                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
292                 }
293         }
294         if (ndr_flags & NDR_BUFFERS) {
295                 switch (level) {
296                         case 0:
297                         break;
298
299                         case 1:
300                                 NDR_CHECK(ndr_pull_rap_share_info_1(ndr, NDR_BUFFERS, &r->info1));
301                         break;
302
303                         case 2:
304                                 NDR_CHECK(ndr_pull_rap_share_info_2(ndr, NDR_BUFFERS, &r->info2));
305                         break;
306
307                         default:
308                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
309                 }
310         }
311         return NDR_ERR_SUCCESS;
312 }
313
314 _PUBLIC_ void ndr_print_rap_share_info(struct ndr_print *ndr, const char *name, const union rap_share_info *r)
315 {
316         int level;
317         level = ndr_print_get_switch_value(ndr, r);
318         ndr_print_union(ndr, name, level, "rap_share_info");
319         switch (level) {
320                 case 0:
321                         ndr_print_rap_share_info_0(ndr, "info0", &r->info0);
322                 break;
323
324                 case 1:
325                         ndr_print_rap_share_info_1(ndr, "info1", &r->info1);
326                 break;
327
328                 case 2:
329                         ndr_print_rap_share_info_2(ndr, "info2", &r->info2);
330                 break;
331
332                 default:
333                         ndr_print_bad_level(ndr, name, level);
334         }
335 }
336
337 static enum ndr_err_code ndr_push_rap_server_info_0(struct ndr_push *ndr, int ndr_flags, const struct rap_server_info_0 *r)
338 {
339         if (ndr_flags & NDR_SCALARS) {
340                 NDR_CHECK(ndr_push_align(ndr, 1));
341                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->name, 16));
342                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
343         }
344         if (ndr_flags & NDR_BUFFERS) {
345         }
346         return NDR_ERR_SUCCESS;
347 }
348
349 static enum ndr_err_code ndr_pull_rap_server_info_0(struct ndr_pull *ndr, int ndr_flags, struct rap_server_info_0 *r)
350 {
351         if (ndr_flags & NDR_SCALARS) {
352                 NDR_CHECK(ndr_pull_align(ndr, 1));
353                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->name, 16));
354                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
355         }
356         if (ndr_flags & NDR_BUFFERS) {
357         }
358         return NDR_ERR_SUCCESS;
359 }
360
361 _PUBLIC_ void ndr_print_rap_server_info_0(struct ndr_print *ndr, const char *name, const struct rap_server_info_0 *r)
362 {
363         ndr_print_struct(ndr, name, "rap_server_info_0");
364         ndr->depth++;
365         ndr_print_array_uint8(ndr, "name", r->name, 16);
366         ndr->depth--;
367 }
368
369 static enum ndr_err_code ndr_push_rap_server_info_1(struct ndr_push *ndr, int ndr_flags, const struct rap_server_info_1 *r)
370 {
371         if (ndr_flags & NDR_SCALARS) {
372                 NDR_CHECK(ndr_push_align(ndr, 5));
373                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->name, 16));
374                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->version_major));
375                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->version_minor));
376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->servertype));
377                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
378                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
379         }
380         if (ndr_flags & NDR_BUFFERS) {
381                 if (r->comment) {
382                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
383                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
384                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
385                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
386                 }
387         }
388         return NDR_ERR_SUCCESS;
389 }
390
391 static enum ndr_err_code ndr_pull_rap_server_info_1(struct ndr_pull *ndr, int ndr_flags, struct rap_server_info_1 *r)
392 {
393         uint32_t _ptr_comment;
394         TALLOC_CTX *_mem_save_comment_0;
395         if (ndr_flags & NDR_SCALARS) {
396                 NDR_CHECK(ndr_pull_align(ndr, 5));
397                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->name, 16));
398                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->version_major));
399                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->version_minor));
400                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->servertype));
401                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
402                 if (_ptr_comment) {
403                         NDR_PULL_ALLOC(ndr, r->comment);
404                 } else {
405                         r->comment = NULL;
406                 }
407                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
408         }
409         if (ndr_flags & NDR_BUFFERS) {
410                 if (r->comment) {
411                         _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
412                         NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
413                         NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
414                         NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
415                         if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
416                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
417                         }
418                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
419                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
420                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
421                 }
422         }
423         return NDR_ERR_SUCCESS;
424 }
425
426 _PUBLIC_ void ndr_print_rap_server_info_1(struct ndr_print *ndr, const char *name, const struct rap_server_info_1 *r)
427 {
428         ndr_print_struct(ndr, name, "rap_server_info_1");
429         ndr->depth++;
430         ndr_print_array_uint8(ndr, "name", r->name, 16);
431         ndr_print_uint8(ndr, "version_major", r->version_major);
432         ndr_print_uint8(ndr, "version_minor", r->version_minor);
433         ndr_print_uint32(ndr, "servertype", r->servertype);
434         ndr_print_ptr(ndr, "comment", r->comment);
435         ndr->depth++;
436         if (r->comment) {
437                 ndr_print_string(ndr, "comment", r->comment);
438         }
439         ndr->depth--;
440         ndr->depth--;
441 }
442
443 static enum ndr_err_code ndr_push_rap_server_info(struct ndr_push *ndr, int ndr_flags, const union rap_server_info *r)
444 {
445         if (ndr_flags & NDR_SCALARS) {
446                 int level = ndr_push_get_switch_value(ndr, r);
447                 NDR_CHECK(ndr_push_union_align(ndr, 5));
448                 switch (level) {
449                         case 0: {
450                                 NDR_CHECK(ndr_push_rap_server_info_0(ndr, NDR_SCALARS, &r->info0));
451                         break; }
452
453                         case 1: {
454                                 NDR_CHECK(ndr_push_rap_server_info_1(ndr, NDR_SCALARS, &r->info1));
455                         break; }
456
457                         default:
458                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
459                 }
460         }
461         if (ndr_flags & NDR_BUFFERS) {
462                 int level = ndr_push_get_switch_value(ndr, r);
463                 switch (level) {
464                         case 0:
465                         break;
466
467                         case 1:
468                                 NDR_CHECK(ndr_push_rap_server_info_1(ndr, NDR_BUFFERS, &r->info1));
469                         break;
470
471                         default:
472                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
473                 }
474         }
475         return NDR_ERR_SUCCESS;
476 }
477
478 static enum ndr_err_code ndr_pull_rap_server_info(struct ndr_pull *ndr, int ndr_flags, union rap_server_info *r)
479 {
480         int level;
481         level = ndr_pull_get_switch_value(ndr, r);
482         if (ndr_flags & NDR_SCALARS) {
483                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
484                 switch (level) {
485                         case 0: {
486                                 NDR_CHECK(ndr_pull_rap_server_info_0(ndr, NDR_SCALARS, &r->info0));
487                         break; }
488
489                         case 1: {
490                                 NDR_CHECK(ndr_pull_rap_server_info_1(ndr, NDR_SCALARS, &r->info1));
491                         break; }
492
493                         default:
494                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
495                 }
496         }
497         if (ndr_flags & NDR_BUFFERS) {
498                 switch (level) {
499                         case 0:
500                         break;
501
502                         case 1:
503                                 NDR_CHECK(ndr_pull_rap_server_info_1(ndr, NDR_BUFFERS, &r->info1));
504                         break;
505
506                         default:
507                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
508                 }
509         }
510         return NDR_ERR_SUCCESS;
511 }
512
513 _PUBLIC_ void ndr_print_rap_server_info(struct ndr_print *ndr, const char *name, const union rap_server_info *r)
514 {
515         int level;
516         level = ndr_print_get_switch_value(ndr, r);
517         ndr_print_union(ndr, name, level, "rap_server_info");
518         switch (level) {
519                 case 0:
520                         ndr_print_rap_server_info_0(ndr, "info0", &r->info0);
521                 break;
522
523                 case 1:
524                         ndr_print_rap_server_info_1(ndr, "info1", &r->info1);
525                 break;
526
527                 default:
528                         ndr_print_bad_level(ndr, name, level);
529         }
530 }
531
532 _PUBLIC_ enum ndr_err_code ndr_push_rap_PrintJStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintJStatusCode r)
533 {
534         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
535         return NDR_ERR_SUCCESS;
536 }
537
538 _PUBLIC_ enum ndr_err_code ndr_pull_rap_PrintJStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintJStatusCode *r)
539 {
540         uint16_t v;
541         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
542         *r = v;
543         return NDR_ERR_SUCCESS;
544 }
545
546 _PUBLIC_ void ndr_print_rap_PrintJStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintJStatusCode r)
547 {
548         const char *val = NULL;
549
550         switch (r) {
551                 case PRJ_QS_QUEUED: val = "PRJ_QS_QUEUED"; break;
552                 case PRJ_QS_PAUSED: val = "PRJ_QS_PAUSED"; break;
553                 case PRJ_QS_SPOOLING: val = "PRJ_QS_SPOOLING"; break;
554                 case PRJ_QS_PRINTING: val = "PRJ_QS_PRINTING"; break;
555                 case PRJ_QS_ERROR: val = "PRJ_QS_ERROR"; break;
556         }
557         ndr_print_enum(ndr, name, "ENUM", val, r);
558 }
559
560 static enum ndr_err_code ndr_push_rap_PrintJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintJobInfo1 *r)
561 {
562         if (ndr_flags & NDR_SCALARS) {
563                 NDR_CHECK(ndr_push_align(ndr, 5));
564                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobID));
565                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->UserName, 21, sizeof(uint8_t), CH_DOS));
566                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Pad));
567                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->NotifyName, 16, sizeof(uint8_t), CH_DOS));
568                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->DataType, 10, sizeof(uint8_t), CH_DOS));
569                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString));
570                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh));
571                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobPosition));
572                 NDR_CHECK(ndr_push_rap_PrintJStatusCode(ndr, NDR_SCALARS, r->JobStatus));
573                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobStatusString));
574                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobStatusStringHigh));
575                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->TimeSubmitted));
576                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->JobSize));
577                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobCommentString));
578                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobCommentStringHigh));
579                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
580         }
581         if (ndr_flags & NDR_BUFFERS) {
582                 if (r->PrintParameterString) {
583                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintParameterString));
584                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
585                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
586                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
587                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintParameterString, ndr_charset_length(r->PrintParameterString, CH_DOS), sizeof(uint8_t), CH_DOS));
588                 }
589                 if (r->JobStatusString) {
590                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->JobStatusString));
591                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobStatusString, CH_DOS)));
592                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
593                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobStatusString, CH_DOS)));
594                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->JobStatusString, ndr_charset_length(r->JobStatusString, CH_DOS), sizeof(uint8_t), CH_DOS));
595                 }
596                 if (r->JobCommentString) {
597                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->JobCommentString));
598                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobCommentString, CH_DOS)));
599                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
600                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobCommentString, CH_DOS)));
601                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->JobCommentString, ndr_charset_length(r->JobCommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
602                 }
603         }
604         return NDR_ERR_SUCCESS;
605 }
606
607 static enum ndr_err_code ndr_pull_rap_PrintJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintJobInfo1 *r)
608 {
609         uint16_t _ptr_PrintParameterString;
610         TALLOC_CTX *_mem_save_PrintParameterString_0;
611         uint16_t _ptr_JobStatusString;
612         TALLOC_CTX *_mem_save_JobStatusString_0;
613         uint16_t _ptr_JobCommentString;
614         TALLOC_CTX *_mem_save_JobCommentString_0;
615         if (ndr_flags & NDR_SCALARS) {
616                 NDR_CHECK(ndr_pull_align(ndr, 5));
617                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobID));
618                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->UserName, 21, sizeof(uint8_t), CH_DOS));
619                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Pad));
620                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->NotifyName, 16, sizeof(uint8_t), CH_DOS));
621                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->DataType, 10, sizeof(uint8_t), CH_DOS));
622                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintParameterString));
623                 if (_ptr_PrintParameterString) {
624                         NDR_PULL_ALLOC(ndr, r->PrintParameterString);
625                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintParameterString, _ptr_PrintParameterString));
626                 } else {
627                         r->PrintParameterString = NULL;
628                 }
629                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh));
630                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobPosition));
631                 NDR_CHECK(ndr_pull_rap_PrintJStatusCode(ndr, NDR_SCALARS, &r->JobStatus));
632                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_JobStatusString));
633                 if (_ptr_JobStatusString) {
634                         NDR_PULL_ALLOC(ndr, r->JobStatusString);
635                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->JobStatusString, _ptr_JobStatusString));
636                 } else {
637                         r->JobStatusString = NULL;
638                 }
639                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobStatusStringHigh));
640                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->TimeSubmitted));
641                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->JobSize));
642                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_JobCommentString));
643                 if (_ptr_JobCommentString) {
644                         NDR_PULL_ALLOC(ndr, r->JobCommentString);
645                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->JobCommentString, _ptr_JobCommentString));
646                 } else {
647                         r->JobCommentString = NULL;
648                 }
649                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobCommentStringHigh));
650                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
651         }
652         if (ndr_flags & NDR_BUFFERS) {
653                 if (r->PrintParameterString) {
654                         uint32_t _relative_save_offset;
655                         _relative_save_offset = ndr->offset;
656                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintParameterString));
657                         _mem_save_PrintParameterString_0 = NDR_PULL_GET_MEM_CTX(ndr);
658                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintParameterString, 0);
659                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintParameterString));
660                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintParameterString));
661                         if (ndr_get_array_length(ndr, &r->PrintParameterString) > ndr_get_array_size(ndr, &r->PrintParameterString)) {
662                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintParameterString), ndr_get_array_length(ndr, &r->PrintParameterString));
663                         }
664                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t)));
665                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintParameterString, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t), CH_DOS));
666                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintParameterString_0, 0);
667                 }
668                 if (r->JobStatusString) {
669                         uint32_t _relative_save_offset;
670                         _relative_save_offset = ndr->offset;
671                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->JobStatusString));
672                         _mem_save_JobStatusString_0 = NDR_PULL_GET_MEM_CTX(ndr);
673                         NDR_PULL_SET_MEM_CTX(ndr, r->JobStatusString, 0);
674                         NDR_CHECK(ndr_pull_array_size(ndr, &r->JobStatusString));
675                         NDR_CHECK(ndr_pull_array_length(ndr, &r->JobStatusString));
676                         if (ndr_get_array_length(ndr, &r->JobStatusString) > ndr_get_array_size(ndr, &r->JobStatusString)) {
677                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->JobStatusString), ndr_get_array_length(ndr, &r->JobStatusString));
678                         }
679                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->JobStatusString), sizeof(uint8_t)));
680                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->JobStatusString, ndr_get_array_length(ndr, &r->JobStatusString), sizeof(uint8_t), CH_DOS));
681                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobStatusString_0, 0);
682                 }
683                 if (r->JobCommentString) {
684                         uint32_t _relative_save_offset;
685                         _relative_save_offset = ndr->offset;
686                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->JobCommentString));
687                         _mem_save_JobCommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
688                         NDR_PULL_SET_MEM_CTX(ndr, r->JobCommentString, 0);
689                         NDR_CHECK(ndr_pull_array_size(ndr, &r->JobCommentString));
690                         NDR_CHECK(ndr_pull_array_length(ndr, &r->JobCommentString));
691                         if (ndr_get_array_length(ndr, &r->JobCommentString) > ndr_get_array_size(ndr, &r->JobCommentString)) {
692                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->JobCommentString), ndr_get_array_length(ndr, &r->JobCommentString));
693                         }
694                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->JobCommentString), sizeof(uint8_t)));
695                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->JobCommentString, ndr_get_array_length(ndr, &r->JobCommentString), sizeof(uint8_t), CH_DOS));
696                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobCommentString_0, 0);
697                 }
698         }
699         return NDR_ERR_SUCCESS;
700 }
701
702 _PUBLIC_ void ndr_print_rap_PrintJobInfo1(struct ndr_print *ndr, const char *name, const struct rap_PrintJobInfo1 *r)
703 {
704         ndr_print_struct(ndr, name, "rap_PrintJobInfo1");
705         ndr->depth++;
706         ndr_print_uint16(ndr, "JobID", r->JobID);
707         ndr_print_string(ndr, "UserName", r->UserName);
708         ndr_print_uint8(ndr, "Pad", r->Pad);
709         ndr_print_string(ndr, "NotifyName", r->NotifyName);
710         ndr_print_string(ndr, "DataType", r->DataType);
711         ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString);
712         ndr->depth++;
713         if (r->PrintParameterString) {
714                 ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString);
715         }
716         ndr->depth--;
717         ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh);
718         ndr_print_uint16(ndr, "JobPosition", r->JobPosition);
719         ndr_print_rap_PrintJStatusCode(ndr, "JobStatus", r->JobStatus);
720         ndr_print_ptr(ndr, "JobStatusString", r->JobStatusString);
721         ndr->depth++;
722         if (r->JobStatusString) {
723                 ndr_print_string(ndr, "JobStatusString", r->JobStatusString);
724         }
725         ndr->depth--;
726         ndr_print_uint16(ndr, "JobStatusStringHigh", r->JobStatusStringHigh);
727         ndr_print_time_t(ndr, "TimeSubmitted", r->TimeSubmitted);
728         ndr_print_uint32(ndr, "JobSize", r->JobSize);
729         ndr_print_ptr(ndr, "JobCommentString", r->JobCommentString);
730         ndr->depth++;
731         if (r->JobCommentString) {
732                 ndr_print_string(ndr, "JobCommentString", r->JobCommentString);
733         }
734         ndr->depth--;
735         ndr_print_uint16(ndr, "JobCommentStringHigh", r->JobCommentStringHigh);
736         ndr->depth--;
737 }
738
739 static enum ndr_err_code ndr_push_rap_PrintJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintJobInfo2 *r)
740 {
741         if (ndr_flags & NDR_SCALARS) {
742                 NDR_CHECK(ndr_push_align(ndr, 5));
743                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobID));
744                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority));
745                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->UserName));
746                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UserNameHigh));
747                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobPosition));
748                 NDR_CHECK(ndr_push_rap_PrintJStatusCode(ndr, NDR_SCALARS, r->JobStatus));
749                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->TimeSubmitted));
750                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->JobSize));
751                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobCommentString));
752                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobCommentStringHigh));
753                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DocumentName));
754                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DocumentNameHigh));
755                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
756         }
757         if (ndr_flags & NDR_BUFFERS) {
758                 if (r->UserName) {
759                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->UserName));
760                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->UserName, CH_DOS)));
761                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
762                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->UserName, CH_DOS)));
763                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->UserName, ndr_charset_length(r->UserName, CH_DOS), sizeof(uint8_t), CH_DOS));
764                 }
765                 if (r->JobCommentString) {
766                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->JobCommentString));
767                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobCommentString, CH_DOS)));
768                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
769                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobCommentString, CH_DOS)));
770                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->JobCommentString, ndr_charset_length(r->JobCommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
771                 }
772                 if (r->DocumentName) {
773                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DocumentName));
774                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DocumentName, CH_DOS)));
775                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
776                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DocumentName, CH_DOS)));
777                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->DocumentName, ndr_charset_length(r->DocumentName, CH_DOS), sizeof(uint8_t), CH_DOS));
778                 }
779         }
780         return NDR_ERR_SUCCESS;
781 }
782
783 static enum ndr_err_code ndr_pull_rap_PrintJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintJobInfo2 *r)
784 {
785         uint16_t _ptr_UserName;
786         TALLOC_CTX *_mem_save_UserName_0;
787         uint16_t _ptr_JobCommentString;
788         TALLOC_CTX *_mem_save_JobCommentString_0;
789         uint16_t _ptr_DocumentName;
790         TALLOC_CTX *_mem_save_DocumentName_0;
791         if (ndr_flags & NDR_SCALARS) {
792                 NDR_CHECK(ndr_pull_align(ndr, 5));
793                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobID));
794                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority));
795                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_UserName));
796                 if (_ptr_UserName) {
797                         NDR_PULL_ALLOC(ndr, r->UserName);
798                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->UserName, _ptr_UserName));
799                 } else {
800                         r->UserName = NULL;
801                 }
802                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UserNameHigh));
803                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobPosition));
804                 NDR_CHECK(ndr_pull_rap_PrintJStatusCode(ndr, NDR_SCALARS, &r->JobStatus));
805                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->TimeSubmitted));
806                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->JobSize));
807                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_JobCommentString));
808                 if (_ptr_JobCommentString) {
809                         NDR_PULL_ALLOC(ndr, r->JobCommentString);
810                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->JobCommentString, _ptr_JobCommentString));
811                 } else {
812                         r->JobCommentString = NULL;
813                 }
814                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobCommentStringHigh));
815                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DocumentName));
816                 if (_ptr_DocumentName) {
817                         NDR_PULL_ALLOC(ndr, r->DocumentName);
818                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DocumentName, _ptr_DocumentName));
819                 } else {
820                         r->DocumentName = NULL;
821                 }
822                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DocumentNameHigh));
823                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
824         }
825         if (ndr_flags & NDR_BUFFERS) {
826                 if (r->UserName) {
827                         uint32_t _relative_save_offset;
828                         _relative_save_offset = ndr->offset;
829                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->UserName));
830                         _mem_save_UserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
831                         NDR_PULL_SET_MEM_CTX(ndr, r->UserName, 0);
832                         NDR_CHECK(ndr_pull_array_size(ndr, &r->UserName));
833                         NDR_CHECK(ndr_pull_array_length(ndr, &r->UserName));
834                         if (ndr_get_array_length(ndr, &r->UserName) > ndr_get_array_size(ndr, &r->UserName)) {
835                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->UserName), ndr_get_array_length(ndr, &r->UserName));
836                         }
837                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->UserName), sizeof(uint8_t)));
838                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->UserName, ndr_get_array_length(ndr, &r->UserName), sizeof(uint8_t), CH_DOS));
839                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_UserName_0, 0);
840                 }
841                 if (r->JobCommentString) {
842                         uint32_t _relative_save_offset;
843                         _relative_save_offset = ndr->offset;
844                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->JobCommentString));
845                         _mem_save_JobCommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
846                         NDR_PULL_SET_MEM_CTX(ndr, r->JobCommentString, 0);
847                         NDR_CHECK(ndr_pull_array_size(ndr, &r->JobCommentString));
848                         NDR_CHECK(ndr_pull_array_length(ndr, &r->JobCommentString));
849                         if (ndr_get_array_length(ndr, &r->JobCommentString) > ndr_get_array_size(ndr, &r->JobCommentString)) {
850                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->JobCommentString), ndr_get_array_length(ndr, &r->JobCommentString));
851                         }
852                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->JobCommentString), sizeof(uint8_t)));
853                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->JobCommentString, ndr_get_array_length(ndr, &r->JobCommentString), sizeof(uint8_t), CH_DOS));
854                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobCommentString_0, 0);
855                 }
856                 if (r->DocumentName) {
857                         uint32_t _relative_save_offset;
858                         _relative_save_offset = ndr->offset;
859                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DocumentName));
860                         _mem_save_DocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
861                         NDR_PULL_SET_MEM_CTX(ndr, r->DocumentName, 0);
862                         NDR_CHECK(ndr_pull_array_size(ndr, &r->DocumentName));
863                         NDR_CHECK(ndr_pull_array_length(ndr, &r->DocumentName));
864                         if (ndr_get_array_length(ndr, &r->DocumentName) > ndr_get_array_size(ndr, &r->DocumentName)) {
865                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->DocumentName), ndr_get_array_length(ndr, &r->DocumentName));
866                         }
867                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->DocumentName), sizeof(uint8_t)));
868                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->DocumentName, ndr_get_array_length(ndr, &r->DocumentName), sizeof(uint8_t), CH_DOS));
869                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DocumentName_0, 0);
870                 }
871         }
872         return NDR_ERR_SUCCESS;
873 }
874
875 _PUBLIC_ void ndr_print_rap_PrintJobInfo2(struct ndr_print *ndr, const char *name, const struct rap_PrintJobInfo2 *r)
876 {
877         ndr_print_struct(ndr, name, "rap_PrintJobInfo2");
878         ndr->depth++;
879         ndr_print_uint16(ndr, "JobID", r->JobID);
880         ndr_print_uint16(ndr, "Priority", r->Priority);
881         ndr_print_ptr(ndr, "UserName", r->UserName);
882         ndr->depth++;
883         if (r->UserName) {
884                 ndr_print_string(ndr, "UserName", r->UserName);
885         }
886         ndr->depth--;
887         ndr_print_uint16(ndr, "UserNameHigh", r->UserNameHigh);
888         ndr_print_uint16(ndr, "JobPosition", r->JobPosition);
889         ndr_print_rap_PrintJStatusCode(ndr, "JobStatus", r->JobStatus);
890         ndr_print_time_t(ndr, "TimeSubmitted", r->TimeSubmitted);
891         ndr_print_uint32(ndr, "JobSize", r->JobSize);
892         ndr_print_ptr(ndr, "JobCommentString", r->JobCommentString);
893         ndr->depth++;
894         if (r->JobCommentString) {
895                 ndr_print_string(ndr, "JobCommentString", r->JobCommentString);
896         }
897         ndr->depth--;
898         ndr_print_uint16(ndr, "JobCommentStringHigh", r->JobCommentStringHigh);
899         ndr_print_ptr(ndr, "DocumentName", r->DocumentName);
900         ndr->depth++;
901         if (r->DocumentName) {
902                 ndr_print_string(ndr, "DocumentName", r->DocumentName);
903         }
904         ndr->depth--;
905         ndr_print_uint16(ndr, "DocumentNameHigh", r->DocumentNameHigh);
906         ndr->depth--;
907 }
908
909 _PUBLIC_ enum ndr_err_code ndr_push_rap_PrintQStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintQStatusCode r)
910 {
911         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
912         return NDR_ERR_SUCCESS;
913 }
914
915 _PUBLIC_ enum ndr_err_code ndr_pull_rap_PrintQStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintQStatusCode *r)
916 {
917         uint16_t v;
918         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
919         *r = v;
920         return NDR_ERR_SUCCESS;
921 }
922
923 _PUBLIC_ void ndr_print_rap_PrintQStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintQStatusCode r)
924 {
925         const char *val = NULL;
926
927         switch (r) {
928                 case PRQ_ACTIVE: val = "PRQ_ACTIVE"; break;
929                 case PRQ_PAUSE: val = "PRQ_PAUSE"; break;
930                 case PRQ_ERROR: val = "PRQ_ERROR"; break;
931                 case PRQ_PENDING: val = "PRQ_PENDING"; break;
932         }
933         ndr_print_enum(ndr, name, "ENUM", val, r);
934 }
935
936 static enum ndr_err_code ndr_push_rap_PrintQueue0(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue0 *r)
937 {
938         if (ndr_flags & NDR_SCALARS) {
939                 NDR_CHECK(ndr_push_align(ndr, 1));
940                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQName, 13, sizeof(uint8_t), CH_DOS));
941                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
942         }
943         if (ndr_flags & NDR_BUFFERS) {
944         }
945         return NDR_ERR_SUCCESS;
946 }
947
948 static enum ndr_err_code ndr_pull_rap_PrintQueue0(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue0 *r)
949 {
950         if (ndr_flags & NDR_SCALARS) {
951                 NDR_CHECK(ndr_pull_align(ndr, 1));
952                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQName, 13, sizeof(uint8_t), CH_DOS));
953                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
954         }
955         if (ndr_flags & NDR_BUFFERS) {
956         }
957         return NDR_ERR_SUCCESS;
958 }
959
960 _PUBLIC_ void ndr_print_rap_PrintQueue0(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue0 *r)
961 {
962         ndr_print_struct(ndr, name, "rap_PrintQueue0");
963         ndr->depth++;
964         ndr_print_string(ndr, "PrintQName", r->PrintQName);
965         ndr->depth--;
966 }
967
968 static enum ndr_err_code ndr_push_rap_PrintQueue1(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue1 *r)
969 {
970         if (ndr_flags & NDR_SCALARS) {
971                 NDR_CHECK(ndr_push_align(ndr, 5));
972                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQName, 13, sizeof(uint8_t), CH_DOS));
973                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Pad1));
974                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority));
975                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->StartTime));
976                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UntilTime));
977                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->SeparatorPageFilename));
978                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->SeparatorPageFilenameHigh));
979                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintProcessorDllName));
980                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintProcessorDllNameHigh));
981                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintDestinationsName));
982                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintDestinationsNameHigh));
983                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString));
984                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh));
985                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->CommentString));
986                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->CommentStringHigh));
987                 NDR_CHECK(ndr_push_rap_PrintQStatusCode(ndr, NDR_SCALARS, r->PrintQStatus));
988                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintJobCount));
989                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
990         }
991         if (ndr_flags & NDR_BUFFERS) {
992                 if (r->SeparatorPageFilename) {
993                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->SeparatorPageFilename));
994                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
995                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
996                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
997                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->SeparatorPageFilename, ndr_charset_length(r->SeparatorPageFilename, CH_DOS), sizeof(uint8_t), CH_DOS));
998                 }
999                 if (r->PrintProcessorDllName) {
1000                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintProcessorDllName));
1001                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
1002                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1003                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
1004                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintProcessorDllName, ndr_charset_length(r->PrintProcessorDllName, CH_DOS), sizeof(uint8_t), CH_DOS));
1005                 }
1006                 if (r->PrintDestinationsName) {
1007                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintDestinationsName));
1008                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDestinationsName, CH_DOS)));
1009                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1010                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDestinationsName, CH_DOS)));
1011                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintDestinationsName, ndr_charset_length(r->PrintDestinationsName, CH_DOS), sizeof(uint8_t), CH_DOS));
1012                 }
1013                 if (r->PrintParameterString) {
1014                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintParameterString));
1015                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
1016                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1017                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
1018                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintParameterString, ndr_charset_length(r->PrintParameterString, CH_DOS), sizeof(uint8_t), CH_DOS));
1019                 }
1020                 if (r->CommentString) {
1021                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->CommentString));
1022                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
1023                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1024                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
1025                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CommentString, ndr_charset_length(r->CommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
1026                 }
1027         }
1028         return NDR_ERR_SUCCESS;
1029 }
1030
1031 static enum ndr_err_code ndr_pull_rap_PrintQueue1(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue1 *r)
1032 {
1033         uint16_t _ptr_SeparatorPageFilename;
1034         TALLOC_CTX *_mem_save_SeparatorPageFilename_0;
1035         uint16_t _ptr_PrintProcessorDllName;
1036         TALLOC_CTX *_mem_save_PrintProcessorDllName_0;
1037         uint16_t _ptr_PrintDestinationsName;
1038         TALLOC_CTX *_mem_save_PrintDestinationsName_0;
1039         uint16_t _ptr_PrintParameterString;
1040         TALLOC_CTX *_mem_save_PrintParameterString_0;
1041         uint16_t _ptr_CommentString;
1042         TALLOC_CTX *_mem_save_CommentString_0;
1043         if (ndr_flags & NDR_SCALARS) {
1044                 NDR_CHECK(ndr_pull_align(ndr, 5));
1045                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQName, 13, sizeof(uint8_t), CH_DOS));
1046                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Pad1));
1047                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority));
1048                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->StartTime));
1049                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UntilTime));
1050                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_SeparatorPageFilename));
1051                 if (_ptr_SeparatorPageFilename) {
1052                         NDR_PULL_ALLOC(ndr, r->SeparatorPageFilename);
1053                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->SeparatorPageFilename, _ptr_SeparatorPageFilename));
1054                 } else {
1055                         r->SeparatorPageFilename = NULL;
1056                 }
1057                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->SeparatorPageFilenameHigh));
1058                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintProcessorDllName));
1059                 if (_ptr_PrintProcessorDllName) {
1060                         NDR_PULL_ALLOC(ndr, r->PrintProcessorDllName);
1061                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintProcessorDllName, _ptr_PrintProcessorDllName));
1062                 } else {
1063                         r->PrintProcessorDllName = NULL;
1064                 }
1065                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintProcessorDllNameHigh));
1066                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintDestinationsName));
1067                 if (_ptr_PrintDestinationsName) {
1068                         NDR_PULL_ALLOC(ndr, r->PrintDestinationsName);
1069                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintDestinationsName, _ptr_PrintDestinationsName));
1070                 } else {
1071                         r->PrintDestinationsName = NULL;
1072                 }
1073                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintDestinationsNameHigh));
1074                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintParameterString));
1075                 if (_ptr_PrintParameterString) {
1076                         NDR_PULL_ALLOC(ndr, r->PrintParameterString);
1077                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintParameterString, _ptr_PrintParameterString));
1078                 } else {
1079                         r->PrintParameterString = NULL;
1080                 }
1081                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh));
1082                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_CommentString));
1083                 if (_ptr_CommentString) {
1084                         NDR_PULL_ALLOC(ndr, r->CommentString);
1085                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->CommentString, _ptr_CommentString));
1086                 } else {
1087                         r->CommentString = NULL;
1088                 }
1089                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->CommentStringHigh));
1090                 NDR_CHECK(ndr_pull_rap_PrintQStatusCode(ndr, NDR_SCALARS, &r->PrintQStatus));
1091                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintJobCount));
1092                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1093         }
1094         if (ndr_flags & NDR_BUFFERS) {
1095                 if (r->SeparatorPageFilename) {
1096                         uint32_t _relative_save_offset;
1097                         _relative_save_offset = ndr->offset;
1098                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->SeparatorPageFilename));
1099                         _mem_save_SeparatorPageFilename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1100                         NDR_PULL_SET_MEM_CTX(ndr, r->SeparatorPageFilename, 0);
1101                         NDR_CHECK(ndr_pull_array_size(ndr, &r->SeparatorPageFilename));
1102                         NDR_CHECK(ndr_pull_array_length(ndr, &r->SeparatorPageFilename));
1103                         if (ndr_get_array_length(ndr, &r->SeparatorPageFilename) > ndr_get_array_size(ndr, &r->SeparatorPageFilename)) {
1104                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->SeparatorPageFilename), ndr_get_array_length(ndr, &r->SeparatorPageFilename));
1105                         }
1106                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t)));
1107                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->SeparatorPageFilename, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t), CH_DOS));
1108                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SeparatorPageFilename_0, 0);
1109                 }
1110                 if (r->PrintProcessorDllName) {
1111                         uint32_t _relative_save_offset;
1112                         _relative_save_offset = ndr->offset;
1113                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintProcessorDllName));
1114                         _mem_save_PrintProcessorDllName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1115                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintProcessorDllName, 0);
1116                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintProcessorDllName));
1117                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintProcessorDllName));
1118                         if (ndr_get_array_length(ndr, &r->PrintProcessorDllName) > ndr_get_array_size(ndr, &r->PrintProcessorDllName)) {
1119                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintProcessorDllName), ndr_get_array_length(ndr, &r->PrintProcessorDllName));
1120                         }
1121                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t)));
1122                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintProcessorDllName, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t), CH_DOS));
1123                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintProcessorDllName_0, 0);
1124                 }
1125                 if (r->PrintDestinationsName) {
1126                         uint32_t _relative_save_offset;
1127                         _relative_save_offset = ndr->offset;
1128                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintDestinationsName));
1129                         _mem_save_PrintDestinationsName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1130                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintDestinationsName, 0);
1131                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintDestinationsName));
1132                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintDestinationsName));
1133                         if (ndr_get_array_length(ndr, &r->PrintDestinationsName) > ndr_get_array_size(ndr, &r->PrintDestinationsName)) {
1134                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintDestinationsName), ndr_get_array_length(ndr, &r->PrintDestinationsName));
1135                         }
1136                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintDestinationsName), sizeof(uint8_t)));
1137                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintDestinationsName, ndr_get_array_length(ndr, &r->PrintDestinationsName), sizeof(uint8_t), CH_DOS));
1138                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintDestinationsName_0, 0);
1139                 }
1140                 if (r->PrintParameterString) {
1141                         uint32_t _relative_save_offset;
1142                         _relative_save_offset = ndr->offset;
1143                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintParameterString));
1144                         _mem_save_PrintParameterString_0 = NDR_PULL_GET_MEM_CTX(ndr);
1145                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintParameterString, 0);
1146                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintParameterString));
1147                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintParameterString));
1148                         if (ndr_get_array_length(ndr, &r->PrintParameterString) > ndr_get_array_size(ndr, &r->PrintParameterString)) {
1149                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintParameterString), ndr_get_array_length(ndr, &r->PrintParameterString));
1150                         }
1151                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t)));
1152                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintParameterString, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t), CH_DOS));
1153                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintParameterString_0, 0);
1154                 }
1155                 if (r->CommentString) {
1156                         uint32_t _relative_save_offset;
1157                         _relative_save_offset = ndr->offset;
1158                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->CommentString));
1159                         _mem_save_CommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
1160                         NDR_PULL_SET_MEM_CTX(ndr, r->CommentString, 0);
1161                         NDR_CHECK(ndr_pull_array_size(ndr, &r->CommentString));
1162                         NDR_CHECK(ndr_pull_array_length(ndr, &r->CommentString));
1163                         if (ndr_get_array_length(ndr, &r->CommentString) > ndr_get_array_size(ndr, &r->CommentString)) {
1164                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->CommentString), ndr_get_array_length(ndr, &r->CommentString));
1165                         }
1166                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t)));
1167                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CommentString, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t), CH_DOS));
1168                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_CommentString_0, 0);
1169                 }
1170         }
1171         return NDR_ERR_SUCCESS;
1172 }
1173
1174 _PUBLIC_ void ndr_print_rap_PrintQueue1(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue1 *r)
1175 {
1176         ndr_print_struct(ndr, name, "rap_PrintQueue1");
1177         ndr->depth++;
1178         ndr_print_string(ndr, "PrintQName", r->PrintQName);
1179         ndr_print_uint8(ndr, "Pad1", r->Pad1);
1180         ndr_print_uint16(ndr, "Priority", r->Priority);
1181         ndr_print_uint16(ndr, "StartTime", r->StartTime);
1182         ndr_print_uint16(ndr, "UntilTime", r->UntilTime);
1183         ndr_print_ptr(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
1184         ndr->depth++;
1185         if (r->SeparatorPageFilename) {
1186                 ndr_print_string(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
1187         }
1188         ndr->depth--;
1189         ndr_print_uint16(ndr, "SeparatorPageFilenameHigh", r->SeparatorPageFilenameHigh);
1190         ndr_print_ptr(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
1191         ndr->depth++;
1192         if (r->PrintProcessorDllName) {
1193                 ndr_print_string(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
1194         }
1195         ndr->depth--;
1196         ndr_print_uint16(ndr, "PrintProcessorDllNameHigh", r->PrintProcessorDllNameHigh);
1197         ndr_print_ptr(ndr, "PrintDestinationsName", r->PrintDestinationsName);
1198         ndr->depth++;
1199         if (r->PrintDestinationsName) {
1200                 ndr_print_string(ndr, "PrintDestinationsName", r->PrintDestinationsName);
1201         }
1202         ndr->depth--;
1203         ndr_print_uint16(ndr, "PrintDestinationsNameHigh", r->PrintDestinationsNameHigh);
1204         ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString);
1205         ndr->depth++;
1206         if (r->PrintParameterString) {
1207                 ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString);
1208         }
1209         ndr->depth--;
1210         ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh);
1211         ndr_print_ptr(ndr, "CommentString", r->CommentString);
1212         ndr->depth++;
1213         if (r->CommentString) {
1214                 ndr_print_string(ndr, "CommentString", r->CommentString);
1215         }
1216         ndr->depth--;
1217         ndr_print_uint16(ndr, "CommentStringHigh", r->CommentStringHigh);
1218         ndr_print_rap_PrintQStatusCode(ndr, "PrintQStatus", r->PrintQStatus);
1219         ndr_print_uint16(ndr, "PrintJobCount", r->PrintJobCount);
1220         ndr->depth--;
1221 }
1222
1223 static enum ndr_err_code ndr_push_rap_PrintQueue2(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue2 *r)
1224 {
1225         if (ndr_flags & NDR_SCALARS) {
1226                 NDR_CHECK(ndr_push_align(ndr, 5));
1227                 NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_SCALARS, &r->queue));
1228                 NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_SCALARS, &r->job));
1229                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1230         }
1231         if (ndr_flags & NDR_BUFFERS) {
1232                 NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->queue));
1233                 NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_BUFFERS, &r->job));
1234         }
1235         return NDR_ERR_SUCCESS;
1236 }
1237
1238 static enum ndr_err_code ndr_pull_rap_PrintQueue2(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue2 *r)
1239 {
1240         if (ndr_flags & NDR_SCALARS) {
1241                 NDR_CHECK(ndr_pull_align(ndr, 5));
1242                 NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_SCALARS, &r->queue));
1243                 NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_SCALARS, &r->job));
1244                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1245         }
1246         if (ndr_flags & NDR_BUFFERS) {
1247                 NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->queue));
1248                 NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_BUFFERS, &r->job));
1249         }
1250         return NDR_ERR_SUCCESS;
1251 }
1252
1253 _PUBLIC_ void ndr_print_rap_PrintQueue2(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue2 *r)
1254 {
1255         ndr_print_struct(ndr, name, "rap_PrintQueue2");
1256         ndr->depth++;
1257         ndr_print_rap_PrintQueue1(ndr, "queue", &r->queue);
1258         ndr_print_rap_PrintJobInfo1(ndr, "job", &r->job);
1259         ndr->depth--;
1260 }
1261
1262 static enum ndr_err_code ndr_push_rap_PrintQueue3(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue3 *r)
1263 {
1264         if (ndr_flags & NDR_SCALARS) {
1265                 NDR_CHECK(ndr_push_align(ndr, 5));
1266                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintQueueName));
1267                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintQueueNameHigh));
1268                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority));
1269                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->StartTime));
1270                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UntilTime));
1271                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Pad));
1272                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->SeparatorPageFilename));
1273                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->SeparatorPageFilenameHigh));
1274                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintProcessorDllName));
1275                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintProcessorDllNameHigh));
1276                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString));
1277                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh));
1278                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->CommentString));
1279                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->CommentStringHigh));
1280                 NDR_CHECK(ndr_push_rap_PrintQStatusCode(ndr, NDR_SCALARS, r->PrintQStatus));
1281                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintJobCount));
1282                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->Printers));
1283                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintersHigh));
1284                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DriverName));
1285                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DriverNameHigh));
1286                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintDriverData));
1287                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintDriverDataHigh));
1288                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1289         }
1290         if (ndr_flags & NDR_BUFFERS) {
1291                 if (r->PrintQueueName) {
1292                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintQueueName));
1293                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
1294                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1295                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
1296                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQueueName, ndr_charset_length(r->PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS));
1297                 }
1298                 if (r->SeparatorPageFilename) {
1299                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->SeparatorPageFilename));
1300                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
1301                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1302                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
1303                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->SeparatorPageFilename, ndr_charset_length(r->SeparatorPageFilename, CH_DOS), sizeof(uint8_t), CH_DOS));
1304                 }
1305                 if (r->PrintProcessorDllName) {
1306                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintProcessorDllName));
1307                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
1308                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1309                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
1310                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintProcessorDllName, ndr_charset_length(r->PrintProcessorDllName, CH_DOS), sizeof(uint8_t), CH_DOS));
1311                 }
1312                 if (r->PrintParameterString) {
1313                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintParameterString));
1314                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
1315                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1316                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
1317                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintParameterString, ndr_charset_length(r->PrintParameterString, CH_DOS), sizeof(uint8_t), CH_DOS));
1318                 }
1319                 if (r->CommentString) {
1320                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->CommentString));
1321                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
1322                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1323                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
1324                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CommentString, ndr_charset_length(r->CommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
1325                 }
1326                 if (r->Printers) {
1327                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->Printers));
1328                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->Printers, CH_DOS)));
1329                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1330                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->Printers, CH_DOS)));
1331                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->Printers, ndr_charset_length(r->Printers, CH_DOS), sizeof(uint8_t), CH_DOS));
1332                 }
1333                 if (r->DriverName) {
1334                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DriverName));
1335                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DriverName, CH_DOS)));
1336                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1337                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DriverName, CH_DOS)));
1338                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->DriverName, ndr_charset_length(r->DriverName, CH_DOS), sizeof(uint8_t), CH_DOS));
1339                 }
1340                 if (r->PrintDriverData) {
1341                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintDriverData));
1342                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDriverData, CH_DOS)));
1343                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1344                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDriverData, CH_DOS)));
1345                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintDriverData, ndr_charset_length(r->PrintDriverData, CH_DOS), sizeof(uint8_t), CH_DOS));
1346                 }
1347         }
1348         return NDR_ERR_SUCCESS;
1349 }
1350
1351 static enum ndr_err_code ndr_pull_rap_PrintQueue3(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue3 *r)
1352 {
1353         uint16_t _ptr_PrintQueueName;
1354         TALLOC_CTX *_mem_save_PrintQueueName_0;
1355         uint16_t _ptr_SeparatorPageFilename;
1356         TALLOC_CTX *_mem_save_SeparatorPageFilename_0;
1357         uint16_t _ptr_PrintProcessorDllName;
1358         TALLOC_CTX *_mem_save_PrintProcessorDllName_0;
1359         uint16_t _ptr_PrintParameterString;
1360         TALLOC_CTX *_mem_save_PrintParameterString_0;
1361         uint16_t _ptr_CommentString;
1362         TALLOC_CTX *_mem_save_CommentString_0;
1363         uint16_t _ptr_Printers;
1364         TALLOC_CTX *_mem_save_Printers_0;
1365         uint16_t _ptr_DriverName;
1366         TALLOC_CTX *_mem_save_DriverName_0;
1367         uint16_t _ptr_PrintDriverData;
1368         TALLOC_CTX *_mem_save_PrintDriverData_0;
1369         if (ndr_flags & NDR_SCALARS) {
1370                 NDR_CHECK(ndr_pull_align(ndr, 5));
1371                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintQueueName));
1372                 if (_ptr_PrintQueueName) {
1373                         NDR_PULL_ALLOC(ndr, r->PrintQueueName);
1374                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintQueueName, _ptr_PrintQueueName));
1375                 } else {
1376                         r->PrintQueueName = NULL;
1377                 }
1378                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintQueueNameHigh));
1379                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority));
1380                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->StartTime));
1381                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UntilTime));
1382                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Pad));
1383                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_SeparatorPageFilename));
1384                 if (_ptr_SeparatorPageFilename) {
1385                         NDR_PULL_ALLOC(ndr, r->SeparatorPageFilename);
1386                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->SeparatorPageFilename, _ptr_SeparatorPageFilename));
1387                 } else {
1388                         r->SeparatorPageFilename = NULL;
1389                 }
1390                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->SeparatorPageFilenameHigh));
1391                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintProcessorDllName));
1392                 if (_ptr_PrintProcessorDllName) {
1393                         NDR_PULL_ALLOC(ndr, r->PrintProcessorDllName);
1394                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintProcessorDllName, _ptr_PrintProcessorDllName));
1395                 } else {
1396                         r->PrintProcessorDllName = NULL;
1397                 }
1398                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintProcessorDllNameHigh));
1399                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintParameterString));
1400                 if (_ptr_PrintParameterString) {
1401                         NDR_PULL_ALLOC(ndr, r->PrintParameterString);
1402                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintParameterString, _ptr_PrintParameterString));
1403                 } else {
1404                         r->PrintParameterString = NULL;
1405                 }
1406                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh));
1407                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_CommentString));
1408                 if (_ptr_CommentString) {
1409                         NDR_PULL_ALLOC(ndr, r->CommentString);
1410                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->CommentString, _ptr_CommentString));
1411                 } else {
1412                         r->CommentString = NULL;
1413                 }
1414                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->CommentStringHigh));
1415                 NDR_CHECK(ndr_pull_rap_PrintQStatusCode(ndr, NDR_SCALARS, &r->PrintQStatus));
1416                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintJobCount));
1417                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_Printers));
1418                 if (_ptr_Printers) {
1419                         NDR_PULL_ALLOC(ndr, r->Printers);
1420                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->Printers, _ptr_Printers));
1421                 } else {
1422                         r->Printers = NULL;
1423                 }
1424                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintersHigh));
1425                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DriverName));
1426                 if (_ptr_DriverName) {
1427                         NDR_PULL_ALLOC(ndr, r->DriverName);
1428                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DriverName, _ptr_DriverName));
1429                 } else {
1430                         r->DriverName = NULL;
1431                 }
1432                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DriverNameHigh));
1433                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintDriverData));
1434                 if (_ptr_PrintDriverData) {
1435                         NDR_PULL_ALLOC(ndr, r->PrintDriverData);
1436                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintDriverData, _ptr_PrintDriverData));
1437                 } else {
1438                         r->PrintDriverData = NULL;
1439                 }
1440                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintDriverDataHigh));
1441                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1442         }
1443         if (ndr_flags & NDR_BUFFERS) {
1444                 if (r->PrintQueueName) {
1445                         uint32_t _relative_save_offset;
1446                         _relative_save_offset = ndr->offset;
1447                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintQueueName));
1448                         _mem_save_PrintQueueName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1449                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintQueueName, 0);
1450                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintQueueName));
1451                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintQueueName));
1452                         if (ndr_get_array_length(ndr, &r->PrintQueueName) > ndr_get_array_size(ndr, &r->PrintQueueName)) {
1453                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintQueueName), ndr_get_array_length(ndr, &r->PrintQueueName));
1454                         }
1455                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t)));
1456                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQueueName, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t), CH_DOS));
1457                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintQueueName_0, 0);
1458                 }
1459                 if (r->SeparatorPageFilename) {
1460                         uint32_t _relative_save_offset;
1461                         _relative_save_offset = ndr->offset;
1462                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->SeparatorPageFilename));
1463                         _mem_save_SeparatorPageFilename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1464                         NDR_PULL_SET_MEM_CTX(ndr, r->SeparatorPageFilename, 0);
1465                         NDR_CHECK(ndr_pull_array_size(ndr, &r->SeparatorPageFilename));
1466                         NDR_CHECK(ndr_pull_array_length(ndr, &r->SeparatorPageFilename));
1467                         if (ndr_get_array_length(ndr, &r->SeparatorPageFilename) > ndr_get_array_size(ndr, &r->SeparatorPageFilename)) {
1468                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->SeparatorPageFilename), ndr_get_array_length(ndr, &r->SeparatorPageFilename));
1469                         }
1470                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t)));
1471                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->SeparatorPageFilename, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t), CH_DOS));
1472                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SeparatorPageFilename_0, 0);
1473                 }
1474                 if (r->PrintProcessorDllName) {
1475                         uint32_t _relative_save_offset;
1476                         _relative_save_offset = ndr->offset;
1477                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintProcessorDllName));
1478                         _mem_save_PrintProcessorDllName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1479                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintProcessorDllName, 0);
1480                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintProcessorDllName));
1481                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintProcessorDllName));
1482                         if (ndr_get_array_length(ndr, &r->PrintProcessorDllName) > ndr_get_array_size(ndr, &r->PrintProcessorDllName)) {
1483                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintProcessorDllName), ndr_get_array_length(ndr, &r->PrintProcessorDllName));
1484                         }
1485                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t)));
1486                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintProcessorDllName, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t), CH_DOS));
1487                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintProcessorDllName_0, 0);
1488                 }
1489                 if (r->PrintParameterString) {
1490                         uint32_t _relative_save_offset;
1491                         _relative_save_offset = ndr->offset;
1492                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintParameterString));
1493                         _mem_save_PrintParameterString_0 = NDR_PULL_GET_MEM_CTX(ndr);
1494                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintParameterString, 0);
1495                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintParameterString));
1496                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintParameterString));
1497                         if (ndr_get_array_length(ndr, &r->PrintParameterString) > ndr_get_array_size(ndr, &r->PrintParameterString)) {
1498                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintParameterString), ndr_get_array_length(ndr, &r->PrintParameterString));
1499                         }
1500                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t)));
1501                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintParameterString, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t), CH_DOS));
1502                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintParameterString_0, 0);
1503                 }
1504                 if (r->CommentString) {
1505                         uint32_t _relative_save_offset;
1506                         _relative_save_offset = ndr->offset;
1507                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->CommentString));
1508                         _mem_save_CommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
1509                         NDR_PULL_SET_MEM_CTX(ndr, r->CommentString, 0);
1510                         NDR_CHECK(ndr_pull_array_size(ndr, &r->CommentString));
1511                         NDR_CHECK(ndr_pull_array_length(ndr, &r->CommentString));
1512                         if (ndr_get_array_length(ndr, &r->CommentString) > ndr_get_array_size(ndr, &r->CommentString)) {
1513                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->CommentString), ndr_get_array_length(ndr, &r->CommentString));
1514                         }
1515                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t)));
1516                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CommentString, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t), CH_DOS));
1517                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_CommentString_0, 0);
1518                 }
1519                 if (r->Printers) {
1520                         uint32_t _relative_save_offset;
1521                         _relative_save_offset = ndr->offset;
1522                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->Printers));
1523                         _mem_save_Printers_0 = NDR_PULL_GET_MEM_CTX(ndr);
1524                         NDR_PULL_SET_MEM_CTX(ndr, r->Printers, 0);
1525                         NDR_CHECK(ndr_pull_array_size(ndr, &r->Printers));
1526                         NDR_CHECK(ndr_pull_array_length(ndr, &r->Printers));
1527                         if (ndr_get_array_length(ndr, &r->Printers) > ndr_get_array_size(ndr, &r->Printers)) {
1528                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->Printers), ndr_get_array_length(ndr, &r->Printers));
1529                         }
1530                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->Printers), sizeof(uint8_t)));
1531                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Printers, ndr_get_array_length(ndr, &r->Printers), sizeof(uint8_t), CH_DOS));
1532                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Printers_0, 0);
1533                 }
1534                 if (r->DriverName) {
1535                         uint32_t _relative_save_offset;
1536                         _relative_save_offset = ndr->offset;
1537                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DriverName));
1538                         _mem_save_DriverName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1539                         NDR_PULL_SET_MEM_CTX(ndr, r->DriverName, 0);
1540                         NDR_CHECK(ndr_pull_array_size(ndr, &r->DriverName));
1541                         NDR_CHECK(ndr_pull_array_length(ndr, &r->DriverName));
1542                         if (ndr_get_array_length(ndr, &r->DriverName) > ndr_get_array_size(ndr, &r->DriverName)) {
1543                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->DriverName), ndr_get_array_length(ndr, &r->DriverName));
1544                         }
1545                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->DriverName), sizeof(uint8_t)));
1546                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->DriverName, ndr_get_array_length(ndr, &r->DriverName), sizeof(uint8_t), CH_DOS));
1547                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DriverName_0, 0);
1548                 }
1549                 if (r->PrintDriverData) {
1550                         uint32_t _relative_save_offset;
1551                         _relative_save_offset = ndr->offset;
1552                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintDriverData));
1553                         _mem_save_PrintDriverData_0 = NDR_PULL_GET_MEM_CTX(ndr);
1554                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintDriverData, 0);
1555                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintDriverData));
1556                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintDriverData));
1557                         if (ndr_get_array_length(ndr, &r->PrintDriverData) > ndr_get_array_size(ndr, &r->PrintDriverData)) {
1558                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintDriverData), ndr_get_array_length(ndr, &r->PrintDriverData));
1559                         }
1560                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintDriverData), sizeof(uint8_t)));
1561                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintDriverData, ndr_get_array_length(ndr, &r->PrintDriverData), sizeof(uint8_t), CH_DOS));
1562                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintDriverData_0, 0);
1563                 }
1564         }
1565         return NDR_ERR_SUCCESS;
1566 }
1567
1568 _PUBLIC_ void ndr_print_rap_PrintQueue3(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue3 *r)
1569 {
1570         ndr_print_struct(ndr, name, "rap_PrintQueue3");
1571         ndr->depth++;
1572         ndr_print_ptr(ndr, "PrintQueueName", r->PrintQueueName);
1573         ndr->depth++;
1574         if (r->PrintQueueName) {
1575                 ndr_print_string(ndr, "PrintQueueName", r->PrintQueueName);
1576         }
1577         ndr->depth--;
1578         ndr_print_uint16(ndr, "PrintQueueNameHigh", r->PrintQueueNameHigh);
1579         ndr_print_uint16(ndr, "Priority", r->Priority);
1580         ndr_print_uint16(ndr, "StartTime", r->StartTime);
1581         ndr_print_uint16(ndr, "UntilTime", r->UntilTime);
1582         ndr_print_uint16(ndr, "Pad", r->Pad);
1583         ndr_print_ptr(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
1584         ndr->depth++;
1585         if (r->SeparatorPageFilename) {
1586                 ndr_print_string(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
1587         }
1588         ndr->depth--;
1589         ndr_print_uint16(ndr, "SeparatorPageFilenameHigh", r->SeparatorPageFilenameHigh);
1590         ndr_print_ptr(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
1591         ndr->depth++;
1592         if (r->PrintProcessorDllName) {
1593                 ndr_print_string(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
1594         }
1595         ndr->depth--;
1596         ndr_print_uint16(ndr, "PrintProcessorDllNameHigh", r->PrintProcessorDllNameHigh);
1597         ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString);
1598         ndr->depth++;
1599         if (r->PrintParameterString) {
1600                 ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString);
1601         }
1602         ndr->depth--;
1603         ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh);
1604         ndr_print_ptr(ndr, "CommentString", r->CommentString);
1605         ndr->depth++;
1606         if (r->CommentString) {
1607                 ndr_print_string(ndr, "CommentString", r->CommentString);
1608         }
1609         ndr->depth--;
1610         ndr_print_uint16(ndr, "CommentStringHigh", r->CommentStringHigh);
1611         ndr_print_rap_PrintQStatusCode(ndr, "PrintQStatus", r->PrintQStatus);
1612         ndr_print_uint16(ndr, "PrintJobCount", r->PrintJobCount);
1613         ndr_print_ptr(ndr, "Printers", r->Printers);
1614         ndr->depth++;
1615         if (r->Printers) {
1616                 ndr_print_string(ndr, "Printers", r->Printers);
1617         }
1618         ndr->depth--;
1619         ndr_print_uint16(ndr, "PrintersHigh", r->PrintersHigh);
1620         ndr_print_ptr(ndr, "DriverName", r->DriverName);
1621         ndr->depth++;
1622         if (r->DriverName) {
1623                 ndr_print_string(ndr, "DriverName", r->DriverName);
1624         }
1625         ndr->depth--;
1626         ndr_print_uint16(ndr, "DriverNameHigh", r->DriverNameHigh);
1627         ndr_print_ptr(ndr, "PrintDriverData", r->PrintDriverData);
1628         ndr->depth++;
1629         if (r->PrintDriverData) {
1630                 ndr_print_string(ndr, "PrintDriverData", r->PrintDriverData);
1631         }
1632         ndr->depth--;
1633         ndr_print_uint16(ndr, "PrintDriverDataHigh", r->PrintDriverDataHigh);
1634         ndr->depth--;
1635 }
1636
1637 static enum ndr_err_code ndr_push_rap_PrintQueue4(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue4 *r)
1638 {
1639         if (ndr_flags & NDR_SCALARS) {
1640                 NDR_CHECK(ndr_push_align(ndr, 5));
1641                 NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_SCALARS, &r->queue));
1642                 NDR_CHECK(ndr_push_rap_PrintJobInfo2(ndr, NDR_SCALARS, &r->job));
1643                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1644         }
1645         if (ndr_flags & NDR_BUFFERS) {
1646                 NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->queue));
1647                 NDR_CHECK(ndr_push_rap_PrintJobInfo2(ndr, NDR_BUFFERS, &r->job));
1648         }
1649         return NDR_ERR_SUCCESS;
1650 }
1651
1652 static enum ndr_err_code ndr_pull_rap_PrintQueue4(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue4 *r)
1653 {
1654         if (ndr_flags & NDR_SCALARS) {
1655                 NDR_CHECK(ndr_pull_align(ndr, 5));
1656                 NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_SCALARS, &r->queue));
1657                 NDR_CHECK(ndr_pull_rap_PrintJobInfo2(ndr, NDR_SCALARS, &r->job));
1658                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1659         }
1660         if (ndr_flags & NDR_BUFFERS) {
1661                 NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->queue));
1662                 NDR_CHECK(ndr_pull_rap_PrintJobInfo2(ndr, NDR_BUFFERS, &r->job));
1663         }
1664         return NDR_ERR_SUCCESS;
1665 }
1666
1667 _PUBLIC_ void ndr_print_rap_PrintQueue4(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue4 *r)
1668 {
1669         ndr_print_struct(ndr, name, "rap_PrintQueue4");
1670         ndr->depth++;
1671         ndr_print_rap_PrintQueue3(ndr, "queue", &r->queue);
1672         ndr_print_rap_PrintJobInfo2(ndr, "job", &r->job);
1673         ndr->depth--;
1674 }
1675
1676 static enum ndr_err_code ndr_push_rap_PrintQueue5(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue5 *r)
1677 {
1678         if (ndr_flags & NDR_SCALARS) {
1679                 NDR_CHECK(ndr_push_align(ndr, 5));
1680                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintQueueName));
1681                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintQueueNameHigh));
1682                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1683         }
1684         if (ndr_flags & NDR_BUFFERS) {
1685                 if (r->PrintQueueName) {
1686                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintQueueName));
1687                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
1688                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1689                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
1690                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQueueName, ndr_charset_length(r->PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS));
1691                 }
1692         }
1693         return NDR_ERR_SUCCESS;
1694 }
1695
1696 static enum ndr_err_code ndr_pull_rap_PrintQueue5(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue5 *r)
1697 {
1698         uint16_t _ptr_PrintQueueName;
1699         TALLOC_CTX *_mem_save_PrintQueueName_0;
1700         if (ndr_flags & NDR_SCALARS) {
1701                 NDR_CHECK(ndr_pull_align(ndr, 5));
1702                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintQueueName));
1703                 if (_ptr_PrintQueueName) {
1704                         NDR_PULL_ALLOC(ndr, r->PrintQueueName);
1705                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintQueueName, _ptr_PrintQueueName));
1706                 } else {
1707                         r->PrintQueueName = NULL;
1708                 }
1709                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintQueueNameHigh));
1710                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1711         }
1712         if (ndr_flags & NDR_BUFFERS) {
1713                 if (r->PrintQueueName) {
1714                         uint32_t _relative_save_offset;
1715                         _relative_save_offset = ndr->offset;
1716                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintQueueName));
1717                         _mem_save_PrintQueueName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1718                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintQueueName, 0);
1719                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintQueueName));
1720                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintQueueName));
1721                         if (ndr_get_array_length(ndr, &r->PrintQueueName) > ndr_get_array_size(ndr, &r->PrintQueueName)) {
1722                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintQueueName), ndr_get_array_length(ndr, &r->PrintQueueName));
1723                         }
1724                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t)));
1725                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQueueName, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t), CH_DOS));
1726                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintQueueName_0, 0);
1727                 }
1728         }
1729         return NDR_ERR_SUCCESS;
1730 }
1731
1732 _PUBLIC_ void ndr_print_rap_PrintQueue5(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue5 *r)
1733 {
1734         ndr_print_struct(ndr, name, "rap_PrintQueue5");
1735         ndr->depth++;
1736         ndr_print_ptr(ndr, "PrintQueueName", r->PrintQueueName);
1737         ndr->depth++;
1738         if (r->PrintQueueName) {
1739                 ndr_print_string(ndr, "PrintQueueName", r->PrintQueueName);
1740         }
1741         ndr->depth--;
1742         ndr_print_uint16(ndr, "PrintQueueNameHigh", r->PrintQueueNameHigh);
1743         ndr->depth--;
1744 }
1745
1746 static enum ndr_err_code ndr_push_rap_printq_info(struct ndr_push *ndr, int ndr_flags, const union rap_printq_info *r)
1747 {
1748         if (ndr_flags & NDR_SCALARS) {
1749                 int level = ndr_push_get_switch_value(ndr, r);
1750                 NDR_CHECK(ndr_push_union_align(ndr, 5));
1751                 switch (level) {
1752                         case 0: {
1753                                 NDR_CHECK(ndr_push_rap_PrintQueue0(ndr, NDR_SCALARS, &r->info0));
1754                         break; }
1755
1756                         case 1: {
1757                                 NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_SCALARS, &r->info1));
1758                         break; }
1759
1760                         case 2: {
1761                                 NDR_CHECK(ndr_push_rap_PrintQueue2(ndr, NDR_SCALARS, &r->info2));
1762                         break; }
1763
1764                         case 3: {
1765                                 NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_SCALARS, &r->info3));
1766                         break; }
1767
1768                         case 4: {
1769                                 NDR_CHECK(ndr_push_rap_PrintQueue4(ndr, NDR_SCALARS, &r->info4));
1770                         break; }
1771
1772                         case 5: {
1773                                 NDR_CHECK(ndr_push_rap_PrintQueue5(ndr, NDR_SCALARS, &r->info5));
1774                         break; }
1775
1776                         default:
1777                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1778                 }
1779         }
1780         if (ndr_flags & NDR_BUFFERS) {
1781                 int level = ndr_push_get_switch_value(ndr, r);
1782                 switch (level) {
1783                         case 0:
1784                         break;
1785
1786                         case 1:
1787                                 NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->info1));
1788                         break;
1789
1790                         case 2:
1791                                 NDR_CHECK(ndr_push_rap_PrintQueue2(ndr, NDR_BUFFERS, &r->info2));
1792                         break;
1793
1794                         case 3:
1795                                 NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->info3));
1796                         break;
1797
1798                         case 4:
1799                                 NDR_CHECK(ndr_push_rap_PrintQueue4(ndr, NDR_BUFFERS, &r->info4));
1800                         break;
1801
1802                         case 5:
1803                                 NDR_CHECK(ndr_push_rap_PrintQueue5(ndr, NDR_BUFFERS, &r->info5));
1804                         break;
1805
1806                         default:
1807                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1808                 }
1809         }
1810         return NDR_ERR_SUCCESS;
1811 }
1812
1813 static enum ndr_err_code ndr_pull_rap_printq_info(struct ndr_pull *ndr, int ndr_flags, union rap_printq_info *r)
1814 {
1815         int level;
1816         level = ndr_pull_get_switch_value(ndr, r);
1817         if (ndr_flags & NDR_SCALARS) {
1818                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
1819                 switch (level) {
1820                         case 0: {
1821                                 NDR_CHECK(ndr_pull_rap_PrintQueue0(ndr, NDR_SCALARS, &r->info0));
1822                         break; }
1823
1824                         case 1: {
1825                                 NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_SCALARS, &r->info1));
1826                         break; }
1827
1828                         case 2: {
1829                                 NDR_CHECK(ndr_pull_rap_PrintQueue2(ndr, NDR_SCALARS, &r->info2));
1830                         break; }
1831
1832                         case 3: {
1833                                 NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_SCALARS, &r->info3));
1834                         break; }
1835
1836                         case 4: {
1837                                 NDR_CHECK(ndr_pull_rap_PrintQueue4(ndr, NDR_SCALARS, &r->info4));
1838                         break; }
1839
1840                         case 5: {
1841                                 NDR_CHECK(ndr_pull_rap_PrintQueue5(ndr, NDR_SCALARS, &r->info5));
1842                         break; }
1843
1844                         default:
1845                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1846                 }
1847         }
1848         if (ndr_flags & NDR_BUFFERS) {
1849                 switch (level) {
1850                         case 0:
1851                         break;
1852
1853                         case 1:
1854                                 NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->info1));
1855                         break;
1856
1857                         case 2:
1858                                 NDR_CHECK(ndr_pull_rap_PrintQueue2(ndr, NDR_BUFFERS, &r->info2));
1859                         break;
1860
1861                         case 3:
1862                                 NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->info3));
1863                         break;
1864
1865                         case 4:
1866                                 NDR_CHECK(ndr_pull_rap_PrintQueue4(ndr, NDR_BUFFERS, &r->info4));
1867                         break;
1868
1869                         case 5:
1870                                 NDR_CHECK(ndr_pull_rap_PrintQueue5(ndr, NDR_BUFFERS, &r->info5));
1871                         break;
1872
1873                         default:
1874                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1875                 }
1876         }
1877         return NDR_ERR_SUCCESS;
1878 }
1879
1880 _PUBLIC_ void ndr_print_rap_printq_info(struct ndr_print *ndr, const char *name, const union rap_printq_info *r)
1881 {
1882         int level;
1883         level = ndr_print_get_switch_value(ndr, r);
1884         ndr_print_union(ndr, name, level, "rap_printq_info");
1885         switch (level) {
1886                 case 0:
1887                         ndr_print_rap_PrintQueue0(ndr, "info0", &r->info0);
1888                 break;
1889
1890                 case 1:
1891                         ndr_print_rap_PrintQueue1(ndr, "info1", &r->info1);
1892                 break;
1893
1894                 case 2:
1895                         ndr_print_rap_PrintQueue2(ndr, "info2", &r->info2);
1896                 break;
1897
1898                 case 3:
1899                         ndr_print_rap_PrintQueue3(ndr, "info3", &r->info3);
1900                 break;
1901
1902                 case 4:
1903                         ndr_print_rap_PrintQueue4(ndr, "info4", &r->info4);
1904                 break;
1905
1906                 case 5:
1907                         ndr_print_rap_PrintQueue5(ndr, "info5", &r->info5);
1908                 break;
1909
1910                 default:
1911                         ndr_print_bad_level(ndr, name, level);
1912         }
1913 }
1914
1915 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetShareEnum(struct ndr_push *ndr, int flags, const struct rap_NetShareEnum *r)
1916 {
1917         if (flags & NDR_IN) {
1918                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
1919                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
1920         }
1921         if (flags & NDR_OUT) {
1922                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
1923                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
1924                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count));
1925                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
1926                 if (r->out.info == NULL) {
1927                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1928                 }
1929                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
1930                 NDR_CHECK(ndr_push_rap_share_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
1931         }
1932         return NDR_ERR_SUCCESS;
1933 }
1934
1935 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetShareEnum(struct ndr_pull *ndr, int flags, struct rap_NetShareEnum *r)
1936 {
1937         TALLOC_CTX *_mem_save_info_0;
1938         if (flags & NDR_IN) {
1939                 ZERO_STRUCT(r->out);
1940
1941                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
1942                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
1943                 NDR_PULL_ALLOC(ndr, r->out.info);
1944                 ZERO_STRUCTP(r->out.info);
1945         }
1946         if (flags & NDR_OUT) {
1947                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
1948                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
1949                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count));
1950                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
1951                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1952                         NDR_PULL_ALLOC(ndr, r->out.info);
1953                 }
1954                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1955                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
1956                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
1957                 NDR_CHECK(ndr_pull_rap_share_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
1958                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
1959         }
1960         return NDR_ERR_SUCCESS;
1961 }
1962
1963 _PUBLIC_ void ndr_print_rap_NetShareEnum(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetShareEnum *r)
1964 {
1965         ndr_print_struct(ndr, name, "rap_NetShareEnum");
1966         ndr->depth++;
1967         if (flags & NDR_SET_VALUES) {
1968                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1969         }
1970         if (flags & NDR_IN) {
1971                 ndr_print_struct(ndr, "in", "rap_NetShareEnum");
1972                 ndr->depth++;
1973                 ndr_print_uint16(ndr, "level", r->in.level);
1974                 ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
1975                 ndr->depth--;
1976         }
1977         if (flags & NDR_OUT) {
1978                 ndr_print_struct(ndr, "out", "rap_NetShareEnum");
1979                 ndr->depth++;
1980                 ndr_print_uint16(ndr, "status", r->out.status);
1981                 ndr_print_uint16(ndr, "convert", r->out.convert);
1982                 ndr_print_uint16(ndr, "count", r->out.count);
1983                 ndr_print_uint16(ndr, "available", r->out.available);
1984                 ndr_print_ptr(ndr, "info", r->out.info);
1985                 ndr->depth++;
1986                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
1987                 ndr_print_rap_share_info(ndr, "info", r->out.info);
1988                 ndr->depth--;
1989                 ndr->depth--;
1990         }
1991         ndr->depth--;
1992 }
1993
1994 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetServerEnum2(struct ndr_push *ndr, int flags, const struct rap_NetServerEnum2 *r)
1995 {
1996         if (flags & NDR_IN) {
1997                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
1998                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
1999                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.servertype));
2000                 if (r->in.domain == NULL) {
2001                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2002                 }
2003                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_DOS)));
2004                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
2005                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_DOS)));
2006                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_DOS), sizeof(uint8_t), CH_DOS));
2007         }
2008         if (flags & NDR_OUT) {
2009                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
2010                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
2011                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count));
2012                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
2013                 if (r->out.info == NULL) {
2014                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2015                 }
2016                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
2017                 NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
2018         }
2019         return NDR_ERR_SUCCESS;
2020 }
2021
2022 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetServerEnum2(struct ndr_pull *ndr, int flags, struct rap_NetServerEnum2 *r)
2023 {
2024         TALLOC_CTX *_mem_save_info_0;
2025         if (flags & NDR_IN) {
2026                 ZERO_STRUCT(r->out);
2027
2028                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
2029                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
2030                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.servertype));
2031                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
2032                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
2033                 if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
2034                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain));
2035                 }
2036                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t)));
2037                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t), CH_DOS));
2038                 NDR_PULL_ALLOC(ndr, r->out.info);
2039                 ZERO_STRUCTP(r->out.info);
2040         }
2041         if (flags & NDR_OUT) {
2042                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
2043                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
2044                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count));
2045                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
2046                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2047                         NDR_PULL_ALLOC(ndr, r->out.info);
2048                 }
2049                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
2050                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
2051                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
2052                 NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
2053                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
2054         }
2055         return NDR_ERR_SUCCESS;
2056 }
2057
2058 _PUBLIC_ void ndr_print_rap_NetServerEnum2(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetServerEnum2 *r)
2059 {
2060         ndr_print_struct(ndr, name, "rap_NetServerEnum2");
2061         ndr->depth++;
2062         if (flags & NDR_SET_VALUES) {
2063                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2064         }
2065         if (flags & NDR_IN) {
2066                 ndr_print_struct(ndr, "in", "rap_NetServerEnum2");
2067                 ndr->depth++;
2068                 ndr_print_uint16(ndr, "level", r->in.level);
2069                 ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
2070                 ndr_print_uint32(ndr, "servertype", r->in.servertype);
2071                 ndr_print_ptr(ndr, "domain", r->in.domain);
2072                 ndr->depth++;
2073                 ndr_print_string(ndr, "domain", r->in.domain);
2074                 ndr->depth--;
2075                 ndr->depth--;
2076         }
2077         if (flags & NDR_OUT) {
2078                 ndr_print_struct(ndr, "out", "rap_NetServerEnum2");
2079                 ndr->depth++;
2080                 ndr_print_uint16(ndr, "status", r->out.status);
2081                 ndr_print_uint16(ndr, "convert", r->out.convert);
2082                 ndr_print_uint16(ndr, "count", r->out.count);
2083                 ndr_print_uint16(ndr, "available", r->out.available);
2084                 ndr_print_ptr(ndr, "info", r->out.info);
2085                 ndr->depth++;
2086                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
2087                 ndr_print_rap_server_info(ndr, "info", r->out.info);
2088                 ndr->depth--;
2089                 ndr->depth--;
2090         }
2091         ndr->depth--;
2092 }
2093
2094 _PUBLIC_ enum ndr_err_code ndr_push_rap_WserverGetInfo(struct ndr_push *ndr, int flags, const struct rap_WserverGetInfo *r)
2095 {
2096         if (flags & NDR_IN) {
2097                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
2098                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
2099         }
2100         if (flags & NDR_OUT) {
2101                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
2102                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
2103                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
2104                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info, r->in.level));
2105                 NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
2106         }
2107         return NDR_ERR_SUCCESS;
2108 }
2109
2110 _PUBLIC_ enum ndr_err_code ndr_pull_rap_WserverGetInfo(struct ndr_pull *ndr, int flags, struct rap_WserverGetInfo *r)
2111 {
2112         if (flags & NDR_IN) {
2113                 ZERO_STRUCT(r->out);
2114
2115                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
2116                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
2117         }
2118         if (flags & NDR_OUT) {
2119                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
2120                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
2121                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
2122                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info, r->in.level));
2123                 NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
2124         }
2125         return NDR_ERR_SUCCESS;
2126 }
2127
2128 _PUBLIC_ void ndr_print_rap_WserverGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct rap_WserverGetInfo *r)
2129 {
2130         ndr_print_struct(ndr, name, "rap_WserverGetInfo");
2131         ndr->depth++;
2132         if (flags & NDR_SET_VALUES) {
2133                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2134         }
2135         if (flags & NDR_IN) {
2136                 ndr_print_struct(ndr, "in", "rap_WserverGetInfo");
2137                 ndr->depth++;
2138                 ndr_print_uint16(ndr, "level", r->in.level);
2139                 ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
2140                 ndr->depth--;
2141         }
2142         if (flags & NDR_OUT) {
2143                 ndr_print_struct(ndr, "out", "rap_WserverGetInfo");
2144                 ndr->depth++;
2145                 ndr_print_uint16(ndr, "status", r->out.status);
2146                 ndr_print_uint16(ndr, "convert", r->out.convert);
2147                 ndr_print_uint16(ndr, "available", r->out.available);
2148                 ndr_print_set_switch_value(ndr, &r->out.info, r->in.level);
2149                 ndr_print_rap_server_info(ndr, "info", &r->out.info);
2150                 ndr->depth--;
2151         }
2152         ndr->depth--;
2153 }
2154
2155 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintQEnum(struct ndr_push *ndr, int flags, const struct rap_NetPrintQEnum *r)
2156 {
2157         if (flags & NDR_IN) {
2158                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
2159                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
2160         }
2161         if (flags & NDR_OUT) {
2162                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
2163                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
2164                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count));
2165                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
2166                 if (r->out.info == NULL) {
2167                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2168                 }
2169                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
2170                 NDR_CHECK(ndr_push_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
2171         }
2172         return NDR_ERR_SUCCESS;
2173 }
2174
2175 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintQEnum(struct ndr_pull *ndr, int flags, struct rap_NetPrintQEnum *r)
2176 {
2177         TALLOC_CTX *_mem_save_info_0;
2178         if (flags & NDR_IN) {
2179                 ZERO_STRUCT(r->out);
2180
2181                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
2182                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
2183                 NDR_PULL_ALLOC(ndr, r->out.info);
2184                 ZERO_STRUCTP(r->out.info);
2185         }
2186         if (flags & NDR_OUT) {
2187                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
2188                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
2189                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count));
2190                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
2191                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2192                         NDR_PULL_ALLOC(ndr, r->out.info);
2193                 }
2194                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
2195                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
2196                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
2197                 NDR_CHECK(ndr_pull_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
2198                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
2199         }
2200         return NDR_ERR_SUCCESS;
2201 }
2202
2203 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintQGetInfo(struct ndr_push *ndr, int flags, const struct rap_NetPrintQGetInfo *r)
2204 {
2205         if (flags & NDR_IN) {
2206                 if (r->in.PrintQueueName == NULL) {
2207                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2208                 }
2209                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.PrintQueueName, CH_DOS)));
2210                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
2211                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.PrintQueueName, CH_DOS)));
2212                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.PrintQueueName, ndr_charset_length(r->in.PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS));
2213                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
2214                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
2215         }
2216         if (flags & NDR_OUT) {
2217                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
2218                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
2219                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
2220                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info, r->in.level));
2221                 NDR_CHECK(ndr_push_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
2222         }
2223         return NDR_ERR_SUCCESS;
2224 }
2225
2226 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintQGetInfo(struct ndr_pull *ndr, int flags, struct rap_NetPrintQGetInfo *r)
2227 {
2228         if (flags & NDR_IN) {
2229                 ZERO_STRUCT(r->out);
2230
2231                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.PrintQueueName));
2232                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.PrintQueueName));
2233                 if (ndr_get_array_length(ndr, &r->in.PrintQueueName) > ndr_get_array_size(ndr, &r->in.PrintQueueName)) {
2234                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.PrintQueueName), ndr_get_array_length(ndr, &r->in.PrintQueueName));
2235                 }
2236                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.PrintQueueName), sizeof(uint8_t)));
2237                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.PrintQueueName, ndr_get_array_length(ndr, &r->in.PrintQueueName), sizeof(uint8_t), CH_DOS));
2238                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
2239                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
2240         }
2241         if (flags & NDR_OUT) {
2242                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
2243                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
2244                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
2245                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info, r->in.level));
2246                 NDR_CHECK(ndr_pull_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
2247         }
2248         return NDR_ERR_SUCCESS;
2249 }
2250
2251 _PUBLIC_ void ndr_print_rap_NetPrintQGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintQGetInfo *r)
2252 {
2253         ndr_print_struct(ndr, name, "rap_NetPrintQGetInfo");
2254         ndr->depth++;
2255         if (flags & NDR_SET_VALUES) {
2256                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2257         }
2258         if (flags & NDR_IN) {
2259                 ndr_print_struct(ndr, "in", "rap_NetPrintQGetInfo");
2260                 ndr->depth++;
2261                 ndr_print_ptr(ndr, "PrintQueueName", r->in.PrintQueueName);
2262                 ndr->depth++;
2263                 ndr_print_string(ndr, "PrintQueueName", r->in.PrintQueueName);
2264                 ndr->depth--;
2265                 ndr_print_uint16(ndr, "level", r->in.level);
2266                 ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
2267                 ndr->depth--;
2268         }
2269         if (flags & NDR_OUT) {
2270                 ndr_print_struct(ndr, "out", "rap_NetPrintQGetInfo");
2271                 ndr->depth++;
2272                 ndr_print_uint16(ndr, "status", r->out.status);
2273                 ndr_print_uint16(ndr, "convert", r->out.convert);
2274                 ndr_print_uint16(ndr, "available", r->out.available);
2275                 ndr_print_set_switch_value(ndr, &r->out.info, r->in.level);
2276                 ndr_print_rap_printq_info(ndr, "info", &r->out.info);
2277                 ndr->depth--;
2278         }
2279         ndr->depth--;
2280 }
2281
2282 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintJobPause(struct ndr_push *ndr, int flags, const struct rap_NetPrintJobPause *r)
2283 {
2284         if (flags & NDR_IN) {
2285                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.JobID));
2286         }
2287         if (flags & NDR_OUT) {
2288                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
2289                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
2290         }
2291         return NDR_ERR_SUCCESS;
2292 }
2293
2294 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintJobPause(struct ndr_pull *ndr, int flags, struct rap_NetPrintJobPause *r)
2295 {
2296         if (flags & NDR_IN) {
2297                 ZERO_STRUCT(r->out);
2298
2299                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.JobID));
2300         }
2301         if (flags & NDR_OUT) {
2302                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
2303                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
2304         }
2305         return NDR_ERR_SUCCESS;
2306 }
2307
2308 _PUBLIC_ void ndr_print_rap_NetPrintJobPause(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintJobPause *r)
2309 {
2310         ndr_print_struct(ndr, name, "rap_NetPrintJobPause");
2311         ndr->depth++;
2312         if (flags & NDR_SET_VALUES) {
2313                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2314         }
2315         if (flags & NDR_IN) {
2316                 ndr_print_struct(ndr, "in", "rap_NetPrintJobPause");
2317                 ndr->depth++;
2318                 ndr_print_uint16(ndr, "JobID", r->in.JobID);
2319                 ndr->depth--;
2320         }
2321         if (flags & NDR_OUT) {
2322                 ndr_print_struct(ndr, "out", "rap_NetPrintJobPause");
2323                 ndr->depth++;
2324                 ndr_print_uint16(ndr, "status", r->out.status);
2325                 ndr_print_uint16(ndr, "convert", r->out.convert);
2326                 ndr->depth--;
2327         }
2328         ndr->depth--;
2329 }
2330
2331 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintJobContinue(struct ndr_push *ndr, int flags, const struct rap_NetPrintJobContinue *r)
2332 {
2333         if (flags & NDR_IN) {
2334                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.JobID));
2335         }
2336         if (flags & NDR_OUT) {
2337                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
2338                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
2339         }
2340         return NDR_ERR_SUCCESS;
2341 }
2342
2343 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintJobContinue(struct ndr_pull *ndr, int flags, struct rap_NetPrintJobContinue *r)
2344 {
2345         if (flags & NDR_IN) {
2346                 ZERO_STRUCT(r->out);
2347
2348                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.JobID));
2349         }
2350         if (flags & NDR_OUT) {
2351                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
2352                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
2353         }
2354         return NDR_ERR_SUCCESS;
2355 }
2356
2357 _PUBLIC_ void ndr_print_rap_NetPrintJobContinue(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintJobContinue *r)
2358 {
2359         ndr_print_struct(ndr, name, "rap_NetPrintJobContinue");
2360         ndr->depth++;
2361         if (flags & NDR_SET_VALUES) {
2362                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2363         }
2364         if (flags & NDR_IN) {
2365                 ndr_print_struct(ndr, "in", "rap_NetPrintJobContinue");
2366                 ndr->depth++;
2367                 ndr_print_uint16(ndr, "JobID", r->in.JobID);
2368                 ndr->depth--;
2369         }
2370         if (flags & NDR_OUT) {
2371                 ndr_print_struct(ndr, "out", "rap_NetPrintJobContinue");
2372                 ndr->depth++;
2373                 ndr_print_uint16(ndr, "status", r->out.status);
2374                 ndr_print_uint16(ndr, "convert", r->out.convert);
2375                 ndr->depth--;
2376         }
2377         ndr->depth--;
2378 }
2379
2380 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintJobDelete(struct ndr_push *ndr, int flags, const struct rap_NetPrintJobDelete *r)
2381 {
2382         if (flags & NDR_IN) {
2383                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.JobID));
2384         }
2385         if (flags & NDR_OUT) {
2386                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
2387                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
2388         }
2389         return NDR_ERR_SUCCESS;
2390 }
2391
2392 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintJobDelete(struct ndr_pull *ndr, int flags, struct rap_NetPrintJobDelete *r)
2393 {
2394         if (flags & NDR_IN) {
2395                 ZERO_STRUCT(r->out);
2396
2397                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.JobID));
2398         }
2399         if (flags & NDR_OUT) {
2400                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
2401                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
2402         }
2403         return NDR_ERR_SUCCESS;
2404 }
2405
2406 _PUBLIC_ void ndr_print_rap_NetPrintJobDelete(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintJobDelete *r)
2407 {
2408         ndr_print_struct(ndr, name, "rap_NetPrintJobDelete");
2409         ndr->depth++;
2410         if (flags & NDR_SET_VALUES) {
2411                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2412         }
2413         if (flags & NDR_IN) {
2414                 ndr_print_struct(ndr, "in", "rap_NetPrintJobDelete");
2415                 ndr->depth++;
2416                 ndr_print_uint16(ndr, "JobID", r->in.JobID);
2417                 ndr->depth--;
2418         }
2419         if (flags & NDR_OUT) {
2420                 ndr_print_struct(ndr, "out", "rap_NetPrintJobDelete");
2421                 ndr->depth++;
2422                 ndr_print_uint16(ndr, "status", r->out.status);
2423                 ndr_print_uint16(ndr, "convert", r->out.convert);
2424                 ndr->depth--;
2425         }
2426         ndr->depth--;
2427 }