blob: 5134a6197a830f68ed9676fed7f6dd6d12f45537 [file] [log] [blame]
Lev Walkinc8285712005-03-04 22:18:20 +00001
2/*** <<< INCLUDES [Type] >>> ***/
3
4#include <asn_SEQUENCE_OF.h>
5#include <constr_SEQUENCE_OF.h>
6#include <constr_SEQUENCE.h>
7
8/*** <<< FWD-DECLS [Type] >>> ***/
9
Lev Walkinbf56d542005-03-04 23:50:56 +000010struct Epyt;
Lev Walkinc8285712005-03-04 22:18:20 +000011
12/*** <<< TYPE-DECLS [Type] >>> ***/
13
14typedef struct Type {
15 struct data {
16 A_SEQUENCE_OF(struct Epyt) list;
17
18 /* Context for parsing across buffer boundaries */
19 asn_struct_ctx_t _asn_ctx;
20 } data;
21
22 /* Context for parsing across buffer boundaries */
23 asn_struct_ctx_t _asn_ctx;
24} Type_t;
25
26/*** <<< FUNC-DECLS [Type] >>> ***/
27
28extern asn_TYPE_descriptor_t asn_DEF_Type;
29
30/*** <<< POST-INCLUDE [Type] >>> ***/
31
Lev Walkin22b5ed42006-09-13 02:51:20 +000032#include "EpytRef.h"
Lev Walkinc8285712005-03-04 22:18:20 +000033
34/*** <<< STAT-DEFS [Type] >>> ***/
35
36static asn_TYPE_member_t asn_MBR_data_2[] = {
Lev Walkin8eb4b572005-08-16 16:57:17 +000037 { ATF_POINTER, 0, 0,
Lev Walkinc8285712005-03-04 22:18:20 +000038 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
39 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000040 .type = &asn_DEF_EpytRef,
Lev Walkinc8285712005-03-04 22:18:20 +000041 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +000042 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
43 .default_value = 0,
Lev Walkinc8285712005-03-04 22:18:20 +000044 .name = ""
45 },
46};
Lev Walkin59b176e2005-11-26 11:25:14 +000047static ber_tlv_tag_t asn_DEF_data_tags_2[] = {
Lev Walkinc8285712005-03-04 22:18:20 +000048 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
49};
Lev Walkin59b176e2005-11-26 11:25:14 +000050static asn_SET_OF_specifics_t asn_SPC_data_specs_2 = {
Lev Walkinc8285712005-03-04 22:18:20 +000051 sizeof(struct data),
52 offsetof(struct data, _asn_ctx),
53 0, /* XER encoding is XMLDelimitedItemList */
54};
55static /* Use -fall-defs-global to expose */
56asn_TYPE_descriptor_t asn_DEF_data_2 = {
57 "data",
58 "data",
59 SEQUENCE_OF_free,
60 SEQUENCE_OF_print,
61 SEQUENCE_OF_constraint,
62 SEQUENCE_OF_decode_ber,
63 SEQUENCE_OF_encode_der,
64 SEQUENCE_OF_decode_xer,
65 SEQUENCE_OF_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +000066 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinc8285712005-03-04 22:18:20 +000067 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +000068 asn_DEF_data_tags_2,
69 sizeof(asn_DEF_data_tags_2)
70 /sizeof(asn_DEF_data_tags_2[0]), /* 1 */
71 asn_DEF_data_tags_2, /* Same as above */
72 sizeof(asn_DEF_data_tags_2)
73 /sizeof(asn_DEF_data_tags_2[0]), /* 1 */
74 0, /* No PER visible constraints */
Lev Walkinc8285712005-03-04 22:18:20 +000075 asn_MBR_data_2,
76 1, /* Single element */
Lev Walkin59b176e2005-11-26 11:25:14 +000077 &asn_SPC_data_specs_2 /* Additional specs */
Lev Walkinc8285712005-03-04 22:18:20 +000078};
79
80static asn_TYPE_member_t asn_MBR_Type_1[] = {
81 { ATF_NOFLAGS, 0, offsetof(struct Type, data),
82 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
83 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000084 .type = &asn_DEF_data_2,
Lev Walkinc8285712005-03-04 22:18:20 +000085 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +000086 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
87 .default_value = 0,
Lev Walkinc8285712005-03-04 22:18:20 +000088 .name = "data"
89 },
90};
Lev Walkin59b176e2005-11-26 11:25:14 +000091static ber_tlv_tag_t asn_DEF_Type_tags_1[] = {
Lev Walkinc8285712005-03-04 22:18:20 +000092 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
93};
Lev Walkin59b176e2005-11-26 11:25:14 +000094static asn_TYPE_tag2member_t asn_MAP_Type_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -070095 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* data */
Lev Walkinc8285712005-03-04 22:18:20 +000096};
Lev Walkin59b176e2005-11-26 11:25:14 +000097static asn_SEQUENCE_specifics_t asn_SPC_Type_specs_1 = {
Lev Walkinc8285712005-03-04 22:18:20 +000098 sizeof(struct Type),
99 offsetof(struct Type, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000100 asn_MAP_Type_tag2el_1,
Lev Walkinc8285712005-03-04 22:18:20 +0000101 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000102 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinc8285712005-03-04 22:18:20 +0000103 -1, /* Start extensions */
104 -1 /* Stop extensions */
105};
106asn_TYPE_descriptor_t asn_DEF_Type = {
107 "Type",
108 "Type",
109 SEQUENCE_free,
110 SEQUENCE_print,
111 SEQUENCE_constraint,
112 SEQUENCE_decode_ber,
113 SEQUENCE_encode_der,
114 SEQUENCE_decode_xer,
115 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000116 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinc8285712005-03-04 22:18:20 +0000117 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000118 asn_DEF_Type_tags_1,
119 sizeof(asn_DEF_Type_tags_1)
120 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
121 asn_DEF_Type_tags_1, /* Same as above */
122 sizeof(asn_DEF_Type_tags_1)
123 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
124 0, /* No PER visible constraints */
Lev Walkinc8285712005-03-04 22:18:20 +0000125 asn_MBR_Type_1,
126 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000127 &asn_SPC_Type_specs_1 /* Additional specs */
Lev Walkinc8285712005-03-04 22:18:20 +0000128};
129
130
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000131/*** <<< INCLUDES [EpytRef] >>> ***/
132
Lev Walkin22b5ed42006-09-13 02:51:20 +0000133#include "Epyt.h"
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000134
135/*** <<< TYPE-DECLS [EpytRef] >>> ***/
136
137typedef Epyt_t EpytRef_t;
138
139/*** <<< FUNC-DECLS [EpytRef] >>> ***/
140
141extern asn_TYPE_descriptor_t asn_DEF_EpytRef;
142asn_struct_free_f EpytRef_free;
143asn_struct_print_f EpytRef_print;
144asn_constr_check_f EpytRef_constraint;
145ber_type_decoder_f EpytRef_decode_ber;
146der_type_encoder_f EpytRef_encode_der;
147xer_type_decoder_f EpytRef_decode_xer;
148xer_type_encoder_f EpytRef_encode_xer;
149
150/*** <<< CODE [EpytRef] >>> ***/
151
152int
153EpytRef_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000154 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000155 /* Replace with underlying type checker */
156 td->check_constraints = asn_DEF_Epyt.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000157 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000158}
159
160/*
161 * This type is implemented using Epyt,
162 * so here we adjust the DEF accordingly.
163 */
164static void
Lev Walkine8318b82005-03-06 09:29:03 +0000165EpytRef_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000166 td->free_struct = asn_DEF_Epyt.free_struct;
167 td->print_struct = asn_DEF_Epyt.print_struct;
168 td->ber_decoder = asn_DEF_Epyt.ber_decoder;
169 td->der_encoder = asn_DEF_Epyt.der_encoder;
170 td->xer_decoder = asn_DEF_Epyt.xer_decoder;
171 td->xer_encoder = asn_DEF_Epyt.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000172 td->uper_decoder = asn_DEF_Epyt.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000173 td->uper_encoder = asn_DEF_Epyt.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000174 if(!td->per_constraints)
175 td->per_constraints = asn_DEF_Epyt.per_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000176 td->elements = asn_DEF_Epyt.elements;
177 td->elements_count = asn_DEF_Epyt.elements_count;
178 td->specifics = asn_DEF_Epyt.specifics;
179}
180
181void
182EpytRef_free(asn_TYPE_descriptor_t *td,
183 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000184 EpytRef_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000185 td->free_struct(td, struct_ptr, contents_only);
186}
187
188int
189EpytRef_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
190 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000191 EpytRef_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000192 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
193}
194
195asn_dec_rval_t
196EpytRef_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000197 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000198 EpytRef_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000199 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
200}
201
202asn_enc_rval_t
203EpytRef_encode_der(asn_TYPE_descriptor_t *td,
204 void *structure, int tag_mode, ber_tlv_tag_t tag,
205 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000206 EpytRef_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000207 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
208}
209
210asn_dec_rval_t
211EpytRef_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000212 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000213 EpytRef_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000214 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
215}
216
217asn_enc_rval_t
218EpytRef_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
219 int ilevel, enum xer_encoder_flags_e flags,
220 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000221 EpytRef_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000222 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
223}
224
225
226/*** <<< STAT-DEFS [EpytRef] >>> ***/
227
Lev Walkin59b176e2005-11-26 11:25:14 +0000228static ber_tlv_tag_t asn_DEF_EpytRef_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000229 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
230};
231asn_TYPE_descriptor_t asn_DEF_EpytRef = {
232 "EpytRef",
233 "EpytRef",
234 EpytRef_free,
235 EpytRef_print,
236 EpytRef_constraint,
237 EpytRef_decode_ber,
238 EpytRef_encode_der,
239 EpytRef_decode_xer,
240 EpytRef_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000241 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000242 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000243 asn_DEF_EpytRef_tags_1,
244 sizeof(asn_DEF_EpytRef_tags_1)
245 /sizeof(asn_DEF_EpytRef_tags_1[0]), /* 1 */
246 asn_DEF_EpytRef_tags_1, /* Same as above */
247 sizeof(asn_DEF_EpytRef_tags_1)
248 /sizeof(asn_DEF_EpytRef_tags_1[0]), /* 1 */
249 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000250 0, 0, /* Defined elsewhere */
251 0 /* No specifics */
252};
253
254
Lev Walkinc8285712005-03-04 22:18:20 +0000255/*** <<< INCLUDES [Epyt] >>> ***/
256
257#include <asn_SET_OF.h>
258#include <constr_SET_OF.h>
259#include <constr_SEQUENCE.h>
260
261/*** <<< FWD-DECLS [Epyt] >>> ***/
262
Lev Walkinbf56d542005-03-04 23:50:56 +0000263struct Type;
264struct Ypet;
Lev Walkinc8285712005-03-04 22:18:20 +0000265
266/*** <<< TYPE-DECLS [Epyt] >>> ***/
267
268typedef struct Epyt {
269 struct stype {
270 A_SET_OF(struct Type) list;
271
272 /* Context for parsing across buffer boundaries */
273 asn_struct_ctx_t _asn_ctx;
274 } stype;
275 struct Type *type /* OPTIONAL */;
276 struct Ypet *ypet /* OPTIONAL */;
277
278 /* Context for parsing across buffer boundaries */
279 asn_struct_ctx_t _asn_ctx;
280} Epyt_t;
281
282/*** <<< FUNC-DECLS [Epyt] >>> ***/
283
284extern asn_TYPE_descriptor_t asn_DEF_Epyt;
285
286/*** <<< POST-INCLUDE [Epyt] >>> ***/
287
Lev Walkin22b5ed42006-09-13 02:51:20 +0000288#include "Type.h"
289#include "Ypet.h"
Lev Walkinc8285712005-03-04 22:18:20 +0000290
291/*** <<< STAT-DEFS [Epyt] >>> ***/
292
293static asn_TYPE_member_t asn_MBR_stype_2[] = {
Lev Walkin8eb4b572005-08-16 16:57:17 +0000294 { ATF_POINTER, 0, 0,
Lev Walkinc8285712005-03-04 22:18:20 +0000295 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
296 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000297 .type = &asn_DEF_Type,
Lev Walkinc8285712005-03-04 22:18:20 +0000298 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000299 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
300 .default_value = 0,
Lev Walkinc8285712005-03-04 22:18:20 +0000301 .name = ""
302 },
303};
Lev Walkin59b176e2005-11-26 11:25:14 +0000304static ber_tlv_tag_t asn_DEF_stype_tags_2[] = {
Lev Walkinc8285712005-03-04 22:18:20 +0000305 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
306};
Lev Walkin59b176e2005-11-26 11:25:14 +0000307static asn_SET_OF_specifics_t asn_SPC_stype_specs_2 = {
Lev Walkinc8285712005-03-04 22:18:20 +0000308 sizeof(struct stype),
309 offsetof(struct stype, _asn_ctx),
310 0, /* XER encoding is XMLDelimitedItemList */
311};
312static /* Use -fall-defs-global to expose */
313asn_TYPE_descriptor_t asn_DEF_stype_2 = {
314 "stype",
315 "stype",
316 SET_OF_free,
317 SET_OF_print,
318 SET_OF_constraint,
319 SET_OF_decode_ber,
320 SET_OF_encode_der,
321 SET_OF_decode_xer,
322 SET_OF_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000323 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinc8285712005-03-04 22:18:20 +0000324 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000325 asn_DEF_stype_tags_2,
326 sizeof(asn_DEF_stype_tags_2)
327 /sizeof(asn_DEF_stype_tags_2[0]), /* 1 */
328 asn_DEF_stype_tags_2, /* Same as above */
329 sizeof(asn_DEF_stype_tags_2)
330 /sizeof(asn_DEF_stype_tags_2[0]), /* 1 */
331 0, /* No PER visible constraints */
Lev Walkinc8285712005-03-04 22:18:20 +0000332 asn_MBR_stype_2,
333 1, /* Single element */
Lev Walkin59b176e2005-11-26 11:25:14 +0000334 &asn_SPC_stype_specs_2 /* Additional specs */
Lev Walkinc8285712005-03-04 22:18:20 +0000335};
336
337static asn_TYPE_member_t asn_MBR_Epyt_1[] = {
338 { ATF_NOFLAGS, 0, offsetof(struct Epyt, stype),
339 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
340 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000341 .type = &asn_DEF_stype_2,
Lev Walkinc8285712005-03-04 22:18:20 +0000342 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000343 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
344 .default_value = 0,
Lev Walkinc8285712005-03-04 22:18:20 +0000345 .name = "stype"
346 },
347 { ATF_POINTER, 2, offsetof(struct Epyt, type),
348 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
349 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000350 .type = &asn_DEF_Type,
Lev Walkinc8285712005-03-04 22:18:20 +0000351 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000352 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
353 .default_value = 0,
Lev Walkinc8285712005-03-04 22:18:20 +0000354 .name = "type"
355 },
356 { ATF_POINTER, 1, offsetof(struct Epyt, ypet),
357 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
358 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000359 .type = &asn_DEF_Ypet,
Lev Walkinc8285712005-03-04 22:18:20 +0000360 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000361 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
362 .default_value = 0,
Lev Walkinc8285712005-03-04 22:18:20 +0000363 .name = "ypet"
364 },
365};
Lev Walkin59b176e2005-11-26 11:25:14 +0000366static ber_tlv_tag_t asn_DEF_Epyt_tags_1[] = {
Lev Walkinc8285712005-03-04 22:18:20 +0000367 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
368};
Lev Walkin59b176e2005-11-26 11:25:14 +0000369static asn_TYPE_tag2member_t asn_MAP_Epyt_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700370 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* type */
371 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 1 }, /* stype */
372 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 2, -1, 0 } /* ypet */
Lev Walkinc8285712005-03-04 22:18:20 +0000373};
Lev Walkin59b176e2005-11-26 11:25:14 +0000374static asn_SEQUENCE_specifics_t asn_SPC_Epyt_specs_1 = {
Lev Walkinc8285712005-03-04 22:18:20 +0000375 sizeof(struct Epyt),
376 offsetof(struct Epyt, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000377 asn_MAP_Epyt_tag2el_1,
Lev Walkinc8285712005-03-04 22:18:20 +0000378 3, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000379 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinc8285712005-03-04 22:18:20 +0000380 -1, /* Start extensions */
381 -1 /* Stop extensions */
382};
383asn_TYPE_descriptor_t asn_DEF_Epyt = {
384 "Epyt",
385 "Epyt",
386 SEQUENCE_free,
387 SEQUENCE_print,
388 SEQUENCE_constraint,
389 SEQUENCE_decode_ber,
390 SEQUENCE_encode_der,
391 SEQUENCE_decode_xer,
392 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000393 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinc8285712005-03-04 22:18:20 +0000394 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000395 asn_DEF_Epyt_tags_1,
396 sizeof(asn_DEF_Epyt_tags_1)
397 /sizeof(asn_DEF_Epyt_tags_1[0]), /* 1 */
398 asn_DEF_Epyt_tags_1, /* Same as above */
399 sizeof(asn_DEF_Epyt_tags_1)
400 /sizeof(asn_DEF_Epyt_tags_1[0]), /* 1 */
401 0, /* No PER visible constraints */
Lev Walkinc8285712005-03-04 22:18:20 +0000402 asn_MBR_Epyt_1,
403 3, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000404 &asn_SPC_Epyt_specs_1 /* Additional specs */
Lev Walkinc8285712005-03-04 22:18:20 +0000405};
406
407
408/*** <<< INCLUDES [Ypet] >>> ***/
409
Lev Walkinc8285712005-03-04 22:18:20 +0000410#include <INTEGER.h>
Lev Walkine8318b82005-03-06 09:29:03 +0000411#include <IA5String.h>
Lev Walkin22b5ed42006-09-13 02:51:20 +0000412#include "EnumType.h"
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000413#include <asn_SET_OF.h>
414#include <constr_SET_OF.h>
Lev Walkinc8285712005-03-04 22:18:20 +0000415#include <constr_SET.h>
416
417/*** <<< DEPS [Ypet] >>> ***/
418
419
420/*
421 * Method of determining the components presence
422 */
423typedef enum Ypet_PR {
424 Ypet_PR_epyt, /* Member epyt is present */
425 Ypet_PR_plain, /* Member plain is present */
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000426 Ypet_PR_senums, /* Member senums is present */
Lev Walkine8318b82005-03-06 09:29:03 +0000427 Ypet_PR_patest1, /* Member patest1 is present */
428 Ypet_PR_patest2, /* Member patest2 is present */
Lev Walkinc8285712005-03-04 22:18:20 +0000429} Ypet_PR;
430
Lev Walkinb85a8132005-08-18 13:38:19 +0000431/*** <<< FWD-DECLS [Ypet] >>> ***/
432
433struct Epyt;
434
Lev Walkinc8285712005-03-04 22:18:20 +0000435/*** <<< TYPE-DECLS [Ypet] >>> ***/
436
437typedef struct Ypet {
Lev Walkinb85a8132005-08-18 13:38:19 +0000438 struct Epyt *epyt;
Lev Walkinc8285712005-03-04 22:18:20 +0000439 INTEGER_t *plain /* DEFAULT 7 */;
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000440 struct senums {
441 A_SET_OF(EnumType_t) list;
442
443 /* Context for parsing across buffer boundaries */
444 asn_struct_ctx_t _asn_ctx;
445 } senums;
Lev Walkine8318b82005-03-06 09:29:03 +0000446 IA5String_t patest1;
447 IA5String_t patest2;
Lev Walkinc8285712005-03-04 22:18:20 +0000448
449 /* Presence bitmask: ASN_SET_ISPRESENT(pYpet, Ypet_PR_x) */
450 unsigned int _presence_map
Lev Walkine8318b82005-03-06 09:29:03 +0000451 [((5+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
Lev Walkinc8285712005-03-04 22:18:20 +0000452
453 /* Context for parsing across buffer boundaries */
454 asn_struct_ctx_t _asn_ctx;
455} Ypet_t;
456
457/*** <<< FUNC-DECLS [Ypet] >>> ***/
458
459extern asn_TYPE_descriptor_t asn_DEF_Ypet;
460
Lev Walkinb85a8132005-08-18 13:38:19 +0000461/*** <<< POST-INCLUDE [Ypet] >>> ***/
462
Lev Walkin22b5ed42006-09-13 02:51:20 +0000463#include "Epyt.h"
Lev Walkinb85a8132005-08-18 13:38:19 +0000464
Lev Walkine8318b82005-03-06 09:29:03 +0000465/*** <<< CTABLES [Ypet] >>> ***/
466
467static int check_permitted_alphabet_6(const void *sptr) {
468 /* The underlying type is IA5String */
469 const IA5String_t *st = (const IA5String_t *)sptr;
470 const uint8_t *ch = st->buf;
471 const uint8_t *end = ch + st->size;
472
473 for(; ch < end; ch++) {
474 uint8_t cv = *ch;
475 if(!(cv >= 65 && cv <= 90)) return -1;
476 }
477 return 0;
478}
479
480static int check_permitted_alphabet_7(const void *sptr) {
481 /* The underlying type is IA5String */
482 const IA5String_t *st = (const IA5String_t *)sptr;
483 const uint8_t *ch = st->buf;
484 const uint8_t *end = ch + st->size;
485
486 for(; ch < end; ch++) {
487 uint8_t cv = *ch;
488 if(!(cv >= 97 && cv <= 122)) return -1;
489 }
490 return 0;
491}
492
493
494/*** <<< CODE [Ypet] >>> ***/
495
496static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000497memb_patest1_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000498 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000499 const IA5String_t *st = (const IA5String_t *)sptr;
500
501 if(!sptr) {
Lev Walkin739d9bf2006-07-13 13:28:32 +0000502 _ASN_CTFAIL(app_key, td, sptr,
Lev Walkine8318b82005-03-06 09:29:03 +0000503 "%s: value not given (%s:%d)",
504 td->name, __FILE__, __LINE__);
505 return -1;
506 }
507
508
509 if(!check_permitted_alphabet_6(st)) {
510 /* Constraint check succeeded */
511 return 0;
512 } else {
Lev Walkin739d9bf2006-07-13 13:28:32 +0000513 _ASN_CTFAIL(app_key, td, sptr,
Lev Walkine8318b82005-03-06 09:29:03 +0000514 "%s: constraint failed (%s:%d)",
515 td->name, __FILE__, __LINE__);
516 return -1;
517 }
518}
519
520static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000521memb_patest2_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000522 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000523 const IA5String_t *st = (const IA5String_t *)sptr;
524
525 if(!sptr) {
Lev Walkin739d9bf2006-07-13 13:28:32 +0000526 _ASN_CTFAIL(app_key, td, sptr,
Lev Walkine8318b82005-03-06 09:29:03 +0000527 "%s: value not given (%s:%d)",
528 td->name, __FILE__, __LINE__);
529 return -1;
530 }
531
532
533 if(!check_permitted_alphabet_7(st)) {
534 /* Constraint check succeeded */
535 return 0;
536 } else {
Lev Walkin739d9bf2006-07-13 13:28:32 +0000537 _ASN_CTFAIL(app_key, td, sptr,
Lev Walkine8318b82005-03-06 09:29:03 +0000538 "%s: constraint failed (%s:%d)",
539 td->name, __FILE__, __LINE__);
540 return -1;
541 }
542}
543
544
Lev Walkinc8285712005-03-04 22:18:20 +0000545/*** <<< STAT-DEFS [Ypet] >>> ***/
546
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000547static int asn_DFL_3_set_7(int set_value, void **sptr) {
Lev Walkin59b176e2005-11-26 11:25:14 +0000548 INTEGER_t *st = *sptr;
549
550 if(!st) {
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000551 if(!set_value) return -1; /* Not a default value */
Lev Walkin59b176e2005-11-26 11:25:14 +0000552 st = (*sptr = CALLOC(1, sizeof(*st)));
553 if(!st) return -1;
554 }
555
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000556 if(set_value) {
557 /* Install default value 7 */
558 return asn_long2INTEGER(st, 7);
559 } else {
560 /* Test default value 7 */
561 long value;
562 if(asn_INTEGER2long(st, &value))
563 return -1;
564 return (value == 7);
565 }
Lev Walkin59b176e2005-11-26 11:25:14 +0000566}
Lev Walkine8318b82005-03-06 09:29:03 +0000567static asn_TYPE_member_t asn_MBR_senums_4[] = {
Lev Walkin8eb4b572005-08-16 16:57:17 +0000568 { ATF_POINTER, 0, 0,
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000569 .tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
570 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000571 .type = &asn_DEF_EnumType,
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000572 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000573 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
574 .default_value = 0,
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000575 .name = ""
576 },
577};
Lev Walkin59b176e2005-11-26 11:25:14 +0000578static ber_tlv_tag_t asn_DEF_senums_tags_4[] = {
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000579 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
580};
Lev Walkin59b176e2005-11-26 11:25:14 +0000581static asn_SET_OF_specifics_t asn_SPC_senums_specs_4 = {
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000582 sizeof(struct senums),
583 offsetof(struct senums, _asn_ctx),
584 1, /* XER encoding is XMLValueList */
585};
586static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000587asn_TYPE_descriptor_t asn_DEF_senums_4 = {
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000588 "senums",
589 "senums",
590 SET_OF_free,
591 SET_OF_print,
592 SET_OF_constraint,
593 SET_OF_decode_ber,
594 SET_OF_encode_der,
595 SET_OF_decode_xer,
596 SET_OF_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000597 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000598 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000599 asn_DEF_senums_tags_4,
600 sizeof(asn_DEF_senums_tags_4)
601 /sizeof(asn_DEF_senums_tags_4[0]), /* 1 */
602 asn_DEF_senums_tags_4, /* Same as above */
603 sizeof(asn_DEF_senums_tags_4)
604 /sizeof(asn_DEF_senums_tags_4[0]), /* 1 */
605 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000606 asn_MBR_senums_4,
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000607 1, /* Single element */
Lev Walkin59b176e2005-11-26 11:25:14 +0000608 &asn_SPC_senums_specs_4 /* Additional specs */
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000609};
610
Lev Walkinc8285712005-03-04 22:18:20 +0000611static asn_TYPE_member_t asn_MBR_Ypet_1[] = {
Lev Walkinb85a8132005-08-18 13:38:19 +0000612 { ATF_POINTER, 0, offsetof(struct Ypet, epyt),
Lev Walkinc8285712005-03-04 22:18:20 +0000613 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
614 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000615 .type = &asn_DEF_Epyt,
Lev Walkinc8285712005-03-04 22:18:20 +0000616 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000617 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
618 .default_value = 0,
Lev Walkinc8285712005-03-04 22:18:20 +0000619 .name = "epyt"
620 },
621 { ATF_POINTER, 1, offsetof(struct Ypet, plain),
622 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
623 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000624 .type = &asn_DEF_INTEGER,
Lev Walkinc8285712005-03-04 22:18:20 +0000625 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000626 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
627 .default_value = asn_DFL_3_set_7, /* DEFAULT 7 */
Lev Walkinc8285712005-03-04 22:18:20 +0000628 .name = "plain"
629 },
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000630 { ATF_NOFLAGS, 0, offsetof(struct Ypet, senums),
631 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
632 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000633 .type = &asn_DEF_senums_4,
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000634 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000635 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
636 .default_value = 0,
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000637 .name = "senums"
638 },
Lev Walkine8318b82005-03-06 09:29:03 +0000639 { ATF_NOFLAGS, 0, offsetof(struct Ypet, patest1),
640 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
641 .tag_mode = +1, /* EXPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000642 .type = &asn_DEF_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +0000643 .memb_constraints = memb_patest1_constraint_1,
644 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
645 .default_value = 0,
Lev Walkine8318b82005-03-06 09:29:03 +0000646 .name = "patest1"
647 },
648 { ATF_NOFLAGS, 0, offsetof(struct Ypet, patest2),
649 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
650 .tag_mode = +1, /* EXPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000651 .type = &asn_DEF_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +0000652 .memb_constraints = memb_patest2_constraint_1,
653 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
654 .default_value = 0,
Lev Walkine8318b82005-03-06 09:29:03 +0000655 .name = "patest2"
656 },
Lev Walkinc8285712005-03-04 22:18:20 +0000657};
Lev Walkin59b176e2005-11-26 11:25:14 +0000658static ber_tlv_tag_t asn_DEF_Ypet_tags_1[] = {
Lev Walkinc8285712005-03-04 22:18:20 +0000659 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
660};
Lev Walkin59b176e2005-11-26 11:25:14 +0000661static asn_TYPE_tag2member_t asn_MAP_Ypet_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700662 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* plain */
663 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* epyt */
664 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 2, 0, 0 }, /* senums */
665 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* patest1 */
666 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 4, 0, 0 } /* patest2 */
Lev Walkinc8285712005-03-04 22:18:20 +0000667};
Lev Walkin59b176e2005-11-26 11:25:14 +0000668static uint8_t asn_MAP_Ypet_mmap_1[(5 + (8 * sizeof(unsigned int)) - 1) / 8] = {
Lev Walkine8318b82005-03-06 09:29:03 +0000669 (1 << 7) | (0 << 6) | (1 << 5) | (1 << 4) | (1 << 3)
Lev Walkinc8285712005-03-04 22:18:20 +0000670};
Lev Walkin59b176e2005-11-26 11:25:14 +0000671static asn_SET_specifics_t asn_SPC_Ypet_specs_1 = {
Lev Walkinc8285712005-03-04 22:18:20 +0000672 sizeof(struct Ypet),
673 offsetof(struct Ypet, _asn_ctx),
674 offsetof(struct Ypet, _presence_map),
Lev Walkin59b176e2005-11-26 11:25:14 +0000675 asn_MAP_Ypet_tag2el_1,
Lev Walkine8318b82005-03-06 09:29:03 +0000676 5, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000677 asn_MAP_Ypet_tag2el_1, /* Same as above */
Lev Walkine8318b82005-03-06 09:29:03 +0000678 5, /* Count of tags in the CXER map */
Lev Walkinc8285712005-03-04 22:18:20 +0000679 0, /* Whether extensible */
Lev Walkin59b176e2005-11-26 11:25:14 +0000680 (unsigned int *)asn_MAP_Ypet_mmap_1 /* Mandatory elements map */
Lev Walkinc8285712005-03-04 22:18:20 +0000681};
682asn_TYPE_descriptor_t asn_DEF_Ypet = {
683 "Ypet",
684 "Ypet",
685 SET_free,
686 SET_print,
687 SET_constraint,
688 SET_decode_ber,
689 SET_encode_der,
690 SET_decode_xer,
691 SET_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000692 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinc8285712005-03-04 22:18:20 +0000693 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000694 asn_DEF_Ypet_tags_1,
695 sizeof(asn_DEF_Ypet_tags_1)
696 /sizeof(asn_DEF_Ypet_tags_1[0]), /* 1 */
697 asn_DEF_Ypet_tags_1, /* Same as above */
698 sizeof(asn_DEF_Ypet_tags_1)
699 /sizeof(asn_DEF_Ypet_tags_1[0]), /* 1 */
700 0, /* No PER visible constraints */
Lev Walkinc8285712005-03-04 22:18:20 +0000701 asn_MBR_Ypet_1,
Lev Walkine8318b82005-03-06 09:29:03 +0000702 5, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000703 &asn_SPC_Ypet_specs_1 /* Additional specs */
Lev Walkinc8285712005-03-04 22:18:20 +0000704};
705
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000706
707/*** <<< INCLUDES [EnumType] >>> ***/
708
709#include <ENUMERATED.h>
710
711/*** <<< DEPS [EnumType] >>> ***/
712
713typedef enum EnumType {
714 EnumType_one = 0,
715 EnumType_two = 1
Lev Walkin171487e2006-03-21 07:25:18 +0000716} e_EnumType;
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000717
718/*** <<< TYPE-DECLS [EnumType] >>> ***/
719
720typedef ENUMERATED_t EnumType_t;
721
722/*** <<< FUNC-DECLS [EnumType] >>> ***/
723
724extern asn_TYPE_descriptor_t asn_DEF_EnumType;
725asn_struct_free_f EnumType_free;
726asn_struct_print_f EnumType_print;
727asn_constr_check_f EnumType_constraint;
728ber_type_decoder_f EnumType_decode_ber;
729der_type_encoder_f EnumType_encode_der;
730xer_type_decoder_f EnumType_decode_xer;
731xer_type_encoder_f EnumType_encode_xer;
732
733/*** <<< CODE [EnumType] >>> ***/
734
735int
736EnumType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000737 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000738 /* Replace with underlying type checker */
739 td->check_constraints = asn_DEF_ENUMERATED.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000740 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000741}
742
743/*
744 * This type is implemented using ENUMERATED,
745 * so here we adjust the DEF accordingly.
746 */
747static void
748EnumType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
749 td->free_struct = asn_DEF_ENUMERATED.free_struct;
750 td->print_struct = asn_DEF_ENUMERATED.print_struct;
751 td->ber_decoder = asn_DEF_ENUMERATED.ber_decoder;
752 td->der_encoder = asn_DEF_ENUMERATED.der_encoder;
753 td->xer_decoder = asn_DEF_ENUMERATED.xer_decoder;
754 td->xer_encoder = asn_DEF_ENUMERATED.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000755 td->uper_decoder = asn_DEF_ENUMERATED.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000756 td->uper_encoder = asn_DEF_ENUMERATED.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000757 if(!td->per_constraints)
758 td->per_constraints = asn_DEF_ENUMERATED.per_constraints;
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000759 td->elements = asn_DEF_ENUMERATED.elements;
760 td->elements_count = asn_DEF_ENUMERATED.elements_count;
Lev Walkin29a82192005-03-29 19:05:37 +0000761 /* td->specifics = asn_DEF_ENUMERATED.specifics; // Defined explicitly */
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000762}
763
764void
765EnumType_free(asn_TYPE_descriptor_t *td,
766 void *struct_ptr, int contents_only) {
767 EnumType_1_inherit_TYPE_descriptor(td);
768 td->free_struct(td, struct_ptr, contents_only);
769}
770
771int
772EnumType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
773 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
774 EnumType_1_inherit_TYPE_descriptor(td);
775 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
776}
777
778asn_dec_rval_t
779EnumType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000780 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000781 EnumType_1_inherit_TYPE_descriptor(td);
782 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
783}
784
785asn_enc_rval_t
786EnumType_encode_der(asn_TYPE_descriptor_t *td,
787 void *structure, int tag_mode, ber_tlv_tag_t tag,
788 asn_app_consume_bytes_f *cb, void *app_key) {
789 EnumType_1_inherit_TYPE_descriptor(td);
790 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
791}
792
793asn_dec_rval_t
794EnumType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000795 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000796 EnumType_1_inherit_TYPE_descriptor(td);
797 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
798}
799
800asn_enc_rval_t
801EnumType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
802 int ilevel, enum xer_encoder_flags_e flags,
803 asn_app_consume_bytes_f *cb, void *app_key) {
804 EnumType_1_inherit_TYPE_descriptor(td);
805 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
806}
807
808
809/*** <<< STAT-DEFS [EnumType] >>> ***/
810
Lev Walkin59b176e2005-11-26 11:25:14 +0000811static asn_INTEGER_enum_map_t asn_MAP_EnumType_value2enum_1[] = {
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000812 { 0, 3, "one" },
813 { 1, 3, "two" }
814};
Lev Walkin59b176e2005-11-26 11:25:14 +0000815static unsigned int asn_MAP_EnumType_enum2value_1[] = {
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000816 0, /* one(0) */
817 1 /* two(1) */
818};
Lev Walkin59b176e2005-11-26 11:25:14 +0000819static asn_INTEGER_specifics_t asn_SPC_EnumType_specs_1 = {
820 asn_MAP_EnumType_value2enum_1, /* "tag" => N; sorted by tag */
821 asn_MAP_EnumType_enum2value_1, /* N => "tag"; sorted by N */
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000822 2, /* Number of elements in the maps */
823 0, /* Enumeration is not extensible */
Lev Walkin8bb57a22007-12-03 13:41:36 +0000824 1, /* Strict enumeration */
825 0, /* Native long size */
826 0
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000827};
Lev Walkin59b176e2005-11-26 11:25:14 +0000828static ber_tlv_tag_t asn_DEF_EnumType_tags_1[] = {
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000829 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
830};
831asn_TYPE_descriptor_t asn_DEF_EnumType = {
832 "EnumType",
833 "EnumType",
834 EnumType_free,
835 EnumType_print,
836 EnumType_constraint,
837 EnumType_decode_ber,
838 EnumType_encode_der,
839 EnumType_decode_xer,
840 EnumType_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000841 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000842 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000843 asn_DEF_EnumType_tags_1,
844 sizeof(asn_DEF_EnumType_tags_1)
845 /sizeof(asn_DEF_EnumType_tags_1[0]), /* 1 */
846 asn_DEF_EnumType_tags_1, /* Same as above */
847 sizeof(asn_DEF_EnumType_tags_1)
848 /sizeof(asn_DEF_EnumType_tags_1[0]), /* 1 */
849 0, /* No PER visible constraints */
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000850 0, 0, /* Defined elsewhere */
Lev Walkin59b176e2005-11-26 11:25:14 +0000851 &asn_SPC_EnumType_specs_1 /* Additional specs */
Lev Walkinfe7f6ec2005-03-04 22:38:22 +0000852};
853