2 /*** <<< INCLUDES [T] >>> ***/
5 #include <OCTET_STRING.h>
8 #include <constr_CHOICE.h>
10 /*** <<< DEPS [T] >>> ***/
13 T_PR_NOTHING, /* No components present */
20 /*** <<< TYPE-DECLS [T] >>> ***/
31 /* Context for parsing across buffer boundaries */
32 asn_struct_ctx_t _asn_ctx;
35 /*** <<< FUNC-DECLS [T] >>> ***/
37 extern asn_TYPE_descriptor_t asn_DEF_T;
39 /*** <<< STAT-DEFS [T] >>> ***/
41 static asn_TYPE_member_t asn_MBR_T_1[] = {
42 { ATF_NOFLAGS, 0, offsetof(struct T, choice.t_a),
43 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
45 .type = &asn_DEF_INTEGER,
47 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
48 0, 0, /* No default value */
51 { ATF_NOFLAGS, 0, offsetof(struct T, choice.t_b),
52 .tag = (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
54 .type = &asn_DEF_OCTET_STRING,
56 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
57 0, 0, /* No default value */
60 { ATF_NOFLAGS, 0, offsetof(struct T, choice.t_c),
61 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
62 .tag_mode = +1, /* EXPLICIT tag at current level */
63 .type = &asn_DEF_Choice1,
65 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
66 0, 0, /* No default value */
69 { ATF_NOFLAGS, 0, offsetof(struct T, choice.t_d),
70 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
71 .tag_mode = -1, /* IMPLICIT tag at current level */
72 .type = &asn_DEF_Choice2,
74 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
75 0, 0, /* No default value */
79 static const asn_TYPE_tag2member_t asn_MAP_T_tag2el_1[] = {
80 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* t-a */
81 { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* t-b */
82 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* t-c */
83 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* t-d */
85 static asn_CHOICE_specifics_t asn_SPC_T_specs_1 = {
87 offsetof(struct T, _asn_ctx),
88 offsetof(struct T, present),
89 sizeof(((struct T *)0)->present),
90 .tag2el = asn_MAP_T_tag2el_1,
91 .tag2el_count = 4, /* Count of tags in the map */
93 .first_extension = -1 /* Extensions start */
95 asn_TYPE_descriptor_t asn_DEF_T = {
99 0, /* No effective tags (pointer) */
100 0, /* No effective tags (count) */
101 0, /* No tags (pointer) */
102 0, /* No tags (count) */
103 { 0, 0, CHOICE_constraint },
105 4, /* Elements count */
106 &asn_SPC_T_specs_1 /* Additional specs */
110 /*** <<< INCLUDES [Choice1] >>> ***/
112 #include <OCTET_STRING.h>
114 #include <constr_CHOICE.h>
116 /*** <<< DEPS [Choice1] >>> ***/
118 typedef enum Choice1_PR {
119 Choice1_PR_NOTHING, /* No components present */
124 /*** <<< TYPE-DECLS [Choice1] >>> ***/
126 typedef struct Choice1 {
133 /* Context for parsing across buffer boundaries */
134 asn_struct_ctx_t _asn_ctx;
137 /*** <<< FUNC-DECLS [Choice1] >>> ***/
139 extern asn_TYPE_descriptor_t asn_DEF_Choice1;
140 extern asn_CHOICE_specifics_t asn_SPC_Choice1_specs_1;
141 extern asn_TYPE_member_t asn_MBR_Choice1_1[2];
143 /*** <<< STAT-DEFS [Choice1] >>> ***/
145 asn_TYPE_member_t asn_MBR_Choice1_1[] = {
146 { ATF_NOFLAGS, 0, offsetof(struct Choice1, choice.c_a),
147 .tag = (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
149 .type = &asn_DEF_OCTET_STRING,
151 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
152 0, 0, /* No default value */
155 { ATF_NOFLAGS, 0, offsetof(struct Choice1, choice.c_b),
156 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
158 .type = &asn_DEF_INTEGER,
160 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
161 0, 0, /* No default value */
165 static const asn_TYPE_tag2member_t asn_MAP_Choice1_tag2el_1[] = {
166 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* c-b */
167 { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* c-a */
169 asn_CHOICE_specifics_t asn_SPC_Choice1_specs_1 = {
170 sizeof(struct Choice1),
171 offsetof(struct Choice1, _asn_ctx),
172 offsetof(struct Choice1, present),
173 sizeof(((struct Choice1 *)0)->present),
174 .tag2el = asn_MAP_Choice1_tag2el_1,
175 .tag2el_count = 2, /* Count of tags in the map */
177 .first_extension = -1 /* Extensions start */
179 asn_TYPE_descriptor_t asn_DEF_Choice1 = {
183 0, /* No effective tags (pointer) */
184 0, /* No effective tags (count) */
185 0, /* No tags (pointer) */
186 0, /* No tags (count) */
187 { 0, 0, CHOICE_constraint },
189 2, /* Elements count */
190 &asn_SPC_Choice1_specs_1 /* Additional specs */
194 /*** <<< INCLUDES [Choice2] >>> ***/
196 #include <OCTET_STRING.h>
199 #include <constr_CHOICE.h>
201 /*** <<< DEPS [Choice2] >>> ***/
203 typedef enum Choice2_PR {
204 Choice2_PR_NOTHING, /* No components present */
211 /*** <<< TYPE-DECLS [Choice2] >>> ***/
213 typedef struct Choice2 {
222 /* Context for parsing across buffer boundaries */
223 asn_struct_ctx_t _asn_ctx;
226 /*** <<< FUNC-DECLS [Choice2] >>> ***/
228 extern asn_TYPE_descriptor_t asn_DEF_Choice2;
229 extern asn_CHOICE_specifics_t asn_SPC_Choice2_specs_1;
230 extern asn_TYPE_member_t asn_MBR_Choice2_1[4];
232 /*** <<< STAT-DEFS [Choice2] >>> ***/
234 asn_TYPE_member_t asn_MBR_Choice2_1[] = {
235 { ATF_NOFLAGS, 0, offsetof(struct Choice2, choice.c_a),
236 .tag = (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
238 .type = &asn_DEF_OCTET_STRING,
240 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
241 0, 0, /* No default value */
244 { ATF_NOFLAGS, 0, offsetof(struct Choice2, choice.c_b),
245 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
247 .type = &asn_DEF_INTEGER,
249 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
250 0, 0, /* No default value */
253 { ATF_NOFLAGS, 0, offsetof(struct Choice2, choice.c_d),
254 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
255 .tag_mode = +1, /* EXPLICIT tag at current level */
256 .type = &asn_DEF_Choice1,
258 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
259 0, 0, /* No default value */
262 { ATF_NOFLAGS, 0, offsetof(struct Choice2, choice.c_e),
263 .tag = (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
264 .tag_mode = +1, /* EXPLICIT tag at current level */
265 .type = &asn_DEF_Choice1,
267 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
268 0, 0, /* No default value */
272 static const ber_tlv_tag_t asn_DEF_Choice2_tags_1[] = {
273 (ASN_TAG_CLASS_CONTEXT | (2 << 2))
275 static const asn_TYPE_tag2member_t asn_MAP_Choice2_tag2el_1[] = {
276 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* c-b */
277 { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 }, /* c-a */
278 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* c-d */
279 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* c-e */
281 asn_CHOICE_specifics_t asn_SPC_Choice2_specs_1 = {
282 sizeof(struct Choice2),
283 offsetof(struct Choice2, _asn_ctx),
284 offsetof(struct Choice2, present),
285 sizeof(((struct Choice2 *)0)->present),
286 .tag2el = asn_MAP_Choice2_tag2el_1,
287 .tag2el_count = 4, /* Count of tags in the map */
289 .first_extension = -1 /* Extensions start */
291 asn_TYPE_descriptor_t asn_DEF_Choice2 = {
295 asn_DEF_Choice2_tags_1,
296 sizeof(asn_DEF_Choice2_tags_1)
297 /sizeof(asn_DEF_Choice2_tags_1[0]), /* 1 */
298 asn_DEF_Choice2_tags_1, /* Same as above */
299 sizeof(asn_DEF_Choice2_tags_1)
300 /sizeof(asn_DEF_Choice2_tags_1[0]), /* 1 */
301 { 0, 0, CHOICE_constraint },
303 4, /* Elements count */
304 &asn_SPC_Choice2_specs_1 /* Additional specs */
308 /*** <<< INCLUDES [Choice3] >>> ***/
312 /*** <<< TYPE-DECLS [Choice3] >>> ***/
314 typedef Choice2_t Choice3_t;
316 /*** <<< FUNC-DECLS [Choice3] >>> ***/
318 extern asn_TYPE_descriptor_t asn_DEF_Choice3;
319 asn_struct_free_f Choice3_free;
320 asn_struct_print_f Choice3_print;
321 asn_constr_check_f Choice3_constraint;
322 ber_type_decoder_f Choice3_decode_ber;
323 der_type_encoder_f Choice3_encode_der;
324 xer_type_decoder_f Choice3_decode_xer;
325 xer_type_encoder_f Choice3_encode_xer;
327 /*** <<< CODE [Choice3] >>> ***/
330 * This type is implemented using Choice2,
331 * so here we adjust the DEF accordingly.
334 /*** <<< STAT-DEFS [Choice3] >>> ***/
336 static const ber_tlv_tag_t asn_DEF_Choice3_tags_1[] = {
337 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
338 (ASN_TAG_CLASS_CONTEXT | (2 << 2))
340 asn_TYPE_descriptor_t asn_DEF_Choice3 = {
344 asn_DEF_Choice3_tags_1,
345 sizeof(asn_DEF_Choice3_tags_1)
346 /sizeof(asn_DEF_Choice3_tags_1[0]), /* 2 */
347 asn_DEF_Choice3_tags_1, /* Same as above */
348 sizeof(asn_DEF_Choice3_tags_1)
349 /sizeof(asn_DEF_Choice3_tags_1[0]), /* 2 */
350 { 0, 0, CHOICE_constraint },
352 4, /* Elements count */
353 &asn_SPC_Choice2_specs_1 /* Additional specs */
357 /*** <<< INCLUDES [Choice4] >>> ***/
361 /*** <<< TYPE-DECLS [Choice4] >>> ***/
363 typedef Choice2_t Choice4_t;
365 /*** <<< FUNC-DECLS [Choice4] >>> ***/
367 extern asn_TYPE_descriptor_t asn_DEF_Choice4;
368 asn_struct_free_f Choice4_free;
369 asn_struct_print_f Choice4_print;
370 asn_constr_check_f Choice4_constraint;
371 ber_type_decoder_f Choice4_decode_ber;
372 der_type_encoder_f Choice4_encode_der;
373 xer_type_decoder_f Choice4_decode_xer;
374 xer_type_encoder_f Choice4_encode_xer;
376 /*** <<< CODE [Choice4] >>> ***/
379 * This type is implemented using Choice2,
380 * so here we adjust the DEF accordingly.
383 /*** <<< STAT-DEFS [Choice4] >>> ***/
385 static const ber_tlv_tag_t asn_DEF_Choice4_tags_1[] = {
386 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
387 (ASN_TAG_CLASS_CONTEXT | (2 << 2))
389 asn_TYPE_descriptor_t asn_DEF_Choice4 = {
393 asn_DEF_Choice4_tags_1,
394 sizeof(asn_DEF_Choice4_tags_1)
395 /sizeof(asn_DEF_Choice4_tags_1[0]) - 1, /* 1 */
396 asn_DEF_Choice4_tags_1, /* Same as above */
397 sizeof(asn_DEF_Choice4_tags_1)
398 /sizeof(asn_DEF_Choice4_tags_1[0]), /* 2 */
399 { 0, 0, CHOICE_constraint },
401 4, /* Elements count */
402 &asn_SPC_Choice2_specs_1 /* Additional specs */
406 /*** <<< INCLUDES [Choice5] >>> ***/
410 /*** <<< TYPE-DECLS [Choice5] >>> ***/
412 typedef Choice2_t Choice5_t;
414 /*** <<< FUNC-DECLS [Choice5] >>> ***/
416 extern asn_TYPE_descriptor_t asn_DEF_Choice5;
417 asn_struct_free_f Choice5_free;
418 asn_struct_print_f Choice5_print;
419 asn_constr_check_f Choice5_constraint;
420 ber_type_decoder_f Choice5_decode_ber;
421 der_type_encoder_f Choice5_encode_der;
422 xer_type_decoder_f Choice5_decode_xer;
423 xer_type_encoder_f Choice5_encode_xer;
425 /*** <<< CODE [Choice5] >>> ***/
428 * This type is implemented using Choice2,
429 * so here we adjust the DEF accordingly.
432 /*** <<< STAT-DEFS [Choice5] >>> ***/
434 static const ber_tlv_tag_t asn_DEF_Choice5_tags_1[] = {
435 (ASN_TAG_CLASS_CONTEXT | (2 << 2))
437 asn_TYPE_descriptor_t asn_DEF_Choice5 = {
441 asn_DEF_Choice5_tags_1,
442 sizeof(asn_DEF_Choice5_tags_1)
443 /sizeof(asn_DEF_Choice5_tags_1[0]), /* 1 */
444 asn_DEF_Choice5_tags_1, /* Same as above */
445 sizeof(asn_DEF_Choice5_tags_1)
446 /sizeof(asn_DEF_Choice5_tags_1[0]), /* 1 */
447 { 0, 0, CHOICE_constraint },
449 4, /* Elements count */
450 &asn_SPC_Choice2_specs_1 /* Additional specs */
454 /*** <<< INCLUDES [Choice6] >>> ***/
458 /*** <<< TYPE-DECLS [Choice6] >>> ***/
460 typedef Choice1_t Choice6_t;
462 /*** <<< FUNC-DECLS [Choice6] >>> ***/
464 extern asn_TYPE_descriptor_t asn_DEF_Choice6;
465 asn_struct_free_f Choice6_free;
466 asn_struct_print_f Choice6_print;
467 asn_constr_check_f Choice6_constraint;
468 ber_type_decoder_f Choice6_decode_ber;
469 der_type_encoder_f Choice6_encode_der;
470 xer_type_decoder_f Choice6_decode_xer;
471 xer_type_encoder_f Choice6_encode_xer;
473 /*** <<< CODE [Choice6] >>> ***/
476 * This type is implemented using Choice1,
477 * so here we adjust the DEF accordingly.
480 /*** <<< STAT-DEFS [Choice6] >>> ***/
482 asn_TYPE_descriptor_t asn_DEF_Choice6 = {
486 0, /* No effective tags (pointer) */
487 0, /* No effective tags (count) */
488 0, /* No tags (pointer) */
489 0, /* No tags (count) */
490 { 0, 0, CHOICE_constraint },
492 2, /* Elements count */
493 &asn_SPC_Choice1_specs_1 /* Additional specs */