1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_printcap.h"
6 static enum ndr_err_code ndr_push_pcap_printer(struct ndr_push *ndr, int ndr_flags, const struct pcap_printer *r)
8 if (ndr_flags & NDR_SCALARS) {
9 NDR_CHECK(ndr_push_align(ndr, 4));
10 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
11 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
13 if (ndr_flags & NDR_BUFFERS) {
15 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
16 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
18 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
21 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->info, CH_UTF8)));
22 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->info, CH_UTF8)));
24 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->info, ndr_charset_length(r->info, CH_UTF8), sizeof(uint8_t), CH_UTF8));
27 return NDR_ERR_SUCCESS;
30 static enum ndr_err_code ndr_pull_pcap_printer(struct ndr_pull *ndr, int ndr_flags, struct pcap_printer *r)
33 uint32_t size_name_1 = 0;
34 uint32_t length_name_1 = 0;
35 TALLOC_CTX *_mem_save_name_0;
37 uint32_t size_info_1 = 0;
38 uint32_t length_info_1 = 0;
39 TALLOC_CTX *_mem_save_info_0;
40 if (ndr_flags & NDR_SCALARS) {
41 NDR_CHECK(ndr_pull_align(ndr, 4));
42 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
44 NDR_PULL_ALLOC(ndr, r->name);
48 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
50 NDR_PULL_ALLOC(ndr, r->info);
55 if (ndr_flags & NDR_BUFFERS) {
57 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
58 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
59 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
60 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
61 size_name_1 = ndr_get_array_size(ndr, &r->name);
62 length_name_1 = ndr_get_array_length(ndr, &r->name);
63 if (length_name_1 > size_name_1) {
64 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1);
66 NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint8_t)));
67 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint8_t), CH_UTF8));
68 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
71 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
72 NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
73 NDR_CHECK(ndr_pull_array_size(ndr, &r->info));
74 NDR_CHECK(ndr_pull_array_length(ndr, &r->info));
75 size_info_1 = ndr_get_array_size(ndr, &r->info);
76 length_info_1 = ndr_get_array_length(ndr, &r->info);
77 if (length_info_1 > size_info_1) {
78 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_info_1, length_info_1);
80 NDR_CHECK(ndr_check_string_terminator(ndr, length_info_1, sizeof(uint8_t)));
81 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->info, length_info_1, sizeof(uint8_t), CH_UTF8));
82 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
85 return NDR_ERR_SUCCESS;
88 _PUBLIC_ void ndr_print_pcap_printer(struct ndr_print *ndr, const char *name, const struct pcap_printer *r)
90 ndr_print_struct(ndr, name, "pcap_printer");
92 ndr_print_ptr(ndr, "name", r->name);
95 ndr_print_string(ndr, "name", r->name);
98 ndr_print_ptr(ndr, "info", r->info);
101 ndr_print_string(ndr, "info", r->info);
107 _PUBLIC_ enum ndr_err_code ndr_push_pcap_data(struct ndr_push *ndr, int ndr_flags, const struct pcap_data *r)
109 uint32_t cntr_printers_0;
110 if (ndr_flags & NDR_SCALARS) {
111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
112 NDR_CHECK(ndr_push_align(ndr, 4));
113 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
115 for (cntr_printers_0 = 0; cntr_printers_0 < r->count; cntr_printers_0++) {
116 NDR_CHECK(ndr_push_pcap_printer(ndr, NDR_SCALARS, &r->printers[cntr_printers_0]));
119 if (ndr_flags & NDR_BUFFERS) {
120 for (cntr_printers_0 = 0; cntr_printers_0 < r->count; cntr_printers_0++) {
121 NDR_CHECK(ndr_push_pcap_printer(ndr, NDR_BUFFERS, &r->printers[cntr_printers_0]));
124 return NDR_ERR_SUCCESS;
127 _PUBLIC_ enum ndr_err_code ndr_pull_pcap_data(struct ndr_pull *ndr, int ndr_flags, struct pcap_data *r)
129 uint32_t size_printers_0 = 0;
130 uint32_t cntr_printers_0;
131 TALLOC_CTX *_mem_save_printers_0;
132 if (ndr_flags & NDR_SCALARS) {
133 NDR_CHECK(ndr_pull_array_size(ndr, &r->printers));
134 NDR_CHECK(ndr_pull_align(ndr, 4));
135 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
137 size_printers_0 = ndr_get_array_size(ndr, &r->printers);
138 NDR_PULL_ALLOC_N(ndr, r->printers, size_printers_0);
139 _mem_save_printers_0 = NDR_PULL_GET_MEM_CTX(ndr);
140 NDR_PULL_SET_MEM_CTX(ndr, r->printers, 0);
141 for (cntr_printers_0 = 0; cntr_printers_0 < size_printers_0; cntr_printers_0++) {
142 NDR_CHECK(ndr_pull_pcap_printer(ndr, NDR_SCALARS, &r->printers[cntr_printers_0]));
144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printers_0, 0);
146 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->printers, r->count));
149 if (ndr_flags & NDR_BUFFERS) {
150 size_printers_0 = ndr_get_array_size(ndr, &r->printers);
151 _mem_save_printers_0 = NDR_PULL_GET_MEM_CTX(ndr);
152 NDR_PULL_SET_MEM_CTX(ndr, r->printers, 0);
153 for (cntr_printers_0 = 0; cntr_printers_0 < size_printers_0; cntr_printers_0++) {
154 NDR_CHECK(ndr_pull_pcap_printer(ndr, NDR_BUFFERS, &r->printers[cntr_printers_0]));
156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printers_0, 0);
158 return NDR_ERR_SUCCESS;
161 _PUBLIC_ void ndr_print_pcap_data(struct ndr_print *ndr, const char *name, const struct pcap_data *r)
163 uint32_t cntr_printers_0;
164 ndr_print_struct(ndr, name, "pcap_data");
166 ndr_print_NTSTATUS(ndr, "status", r->status);
167 ndr_print_uint32(ndr, "count", r->count);
168 ndr->print(ndr, "%s: ARRAY(%d)", "printers", (int)r->count);
170 for (cntr_printers_0=0;cntr_printers_0<r->count;cntr_printers_0++) {
172 if (asprintf(&idx_0, "[%d]", cntr_printers_0) != -1) {
173 ndr_print_pcap_printer(ndr, "printers", &r->printers[cntr_printers_0]);