blob: 3dc441816ff8bed27d0c728448000a8491dbbc3c [file] [log] [blame]
vlm37236de2005-03-04 09:10:19 +00001
2/*** <<< INCLUDES [Type] >>> ***/
3
4#include <asn_SET_OF.h>
5#include <Type1.h>
6#include <Type2.h>
7#include <constr_SEQUENCE.h>
8#include <constr_SET_OF.h>
9
10/*** <<< DEPS [Type] >>> ***/
11
12extern asn_TYPE_descriptor_t asn_DEF_Type;
13
14/*** <<< TYPE-DECLS [Type] >>> ***/
15
16
17typedef struct Type {
18 A_SET_OF(struct Member {
19 Type1_t t1;
20 Type2_t t2;
21
22 /* Context for parsing across buffer boundaries */
23 asn_struct_ctx_t _asn_ctx;
24 } ) list;
25
26 /* Context for parsing across buffer boundaries */
27 asn_struct_ctx_t _asn_ctx;
28} Type_t;
29
30/*** <<< STAT-DEFS [Type] >>> ***/
31
32static asn_TYPE_member_t asn_MBR_Member_2[] = {
33 { ATF_NOFLAGS, 0, offsetof(struct Member, t1),
34 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
35 .tag_mode = 0,
36 .type = (void *)&asn_DEF_Type1,
37 .memb_constraints = 0, /* Defer constraints checking to the member type */
38 .name = "t1"
39 },
40 { ATF_NOFLAGS, 0, offsetof(struct Member, t2),
41 .tag = -1 /* Ambiguous tag (CHOICE?) */,
42 .tag_mode = 0,
43 .type = (void *)&asn_DEF_Type2,
44 .memb_constraints = 0, /* Defer constraints checking to the member type */
45 .name = "t2"
46 },
47};
48static ber_tlv_tag_t asn_DEF_Member_2_tags[] = {
49 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
50};
51static asn_TYPE_tag2member_t asn_MAP_Member_2_tag2el[] = {
52 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* t1 at 21 */
53 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* one-name at 37 */
54 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name at 43 */
55};
56static asn_SEQUENCE_specifics_t asn_SPC_Member_2_specs = {
57 sizeof(struct Member),
58 offsetof(struct Member, _asn_ctx),
59 asn_MAP_Member_2_tag2el,
60 3, /* Count of tags in the map */
61 -1, /* Start extensions */
62 -1 /* Stop extensions */
63};
64static /* Use -fall-defs-global to expose */
65asn_TYPE_descriptor_t asn_DEF_Member_2 = {
66 "",
67 "",
68 SEQUENCE_free,
69 SEQUENCE_print,
70 SEQUENCE_constraint,
71 SEQUENCE_decode_ber,
72 SEQUENCE_encode_der,
73 SEQUENCE_decode_xer,
74 SEQUENCE_encode_xer,
75 0, /* Use generic outmost tag fetcher */
76 asn_DEF_Member_2_tags,
77 sizeof(asn_DEF_Member_2_tags)
78 /sizeof(asn_DEF_Member_2_tags[0]), /* 1 */
79 asn_DEF_Member_2_tags, /* Same as above */
80 sizeof(asn_DEF_Member_2_tags)
81 /sizeof(asn_DEF_Member_2_tags[0]), /* 1 */
82 asn_MBR_Member_2,
83 2, /* Elements count */
84 &asn_SPC_Member_2_specs /* Additional specs */
85};
86
87static asn_TYPE_member_t asn_MBR_Type_1[] = {
88 { ATF_NOFLAGS, 0, 0,
89 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
90 .tag_mode = 0,
91 .type = (void *)&asn_DEF_Member_2,
92 .memb_constraints = 0, /* Defer constraints checking to the member type */
93 .name = ""
94 },
95};
96static ber_tlv_tag_t asn_DEF_Type_1_tags[] = {
97 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
98};
99static asn_SET_OF_specifics_t asn_SPC_Type_1_specs = {
100 sizeof(struct Type),
101 offsetof(struct Type, _asn_ctx),
102 0, /* XER encoding is XMLDelimitedItemList */
103};
104asn_TYPE_descriptor_t asn_DEF_Type = {
105 "Type",
106 "Type",
107 SET_OF_free,
108 SET_OF_print,
109 SET_OF_constraint,
110 SET_OF_decode_ber,
111 SET_OF_encode_der,
112 SET_OF_decode_xer,
113 SET_OF_encode_xer,
114 0, /* Use generic outmost tag fetcher */
115 asn_DEF_Type_1_tags,
116 sizeof(asn_DEF_Type_1_tags)
117 /sizeof(asn_DEF_Type_1_tags[0]), /* 1 */
118 asn_DEF_Type_1_tags, /* Same as above */
119 sizeof(asn_DEF_Type_1_tags)
120 /sizeof(asn_DEF_Type_1_tags[0]), /* 1 */
121 asn_MBR_Type_1,
122 1, /* Single element */
123 &asn_SPC_Type_1_specs /* Additional specs */
124};
125
126
127/*** <<< INCLUDES [Type1] >>> ***/
128
129#include <INTEGER.h>
130#include <constr_SEQUENCE.h>
131#include <constr_CHOICE.h>
132
133/*** <<< DEPS [Type1] >>> ***/
134
135typedef enum one_name_PR {
136 one_name_PR_NOTHING, /* No components present */
137 one_name_PR_another_name,
138} one_name_PR;
139extern asn_TYPE_descriptor_t asn_DEF_Type1;
140
141/*** <<< TYPE-DECLS [Type1] >>> ***/
142
143
144typedef struct Type1 {
145 struct one_name {
146 one_name_PR present;
147 union {
148 struct another_name {
149 INTEGER_t a;
150 INTEGER_t b;
151
152 /* Context for parsing across buffer boundaries */
153 asn_struct_ctx_t _asn_ctx;
154 } another_name;
155 } choice;
156
157 /* Context for parsing across buffer boundaries */
158 asn_struct_ctx_t _asn_ctx;
159 } one_name;
160
161 /* Context for parsing across buffer boundaries */
162 asn_struct_ctx_t _asn_ctx;
163} Type1_t;
164
165/*** <<< STAT-DEFS [Type1] >>> ***/
166
167static asn_TYPE_member_t asn_MBR_another_name_3[] = {
168 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
169 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
170 .tag_mode = 0,
171 .type = (void *)&asn_DEF_INTEGER,
172 .memb_constraints = 0, /* Defer constraints checking to the member type */
173 .name = "a"
174 },
175 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
176 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
177 .tag_mode = 0,
178 .type = (void *)&asn_DEF_INTEGER,
179 .memb_constraints = 0, /* Defer constraints checking to the member type */
180 .name = "b"
181 },
182};
183static ber_tlv_tag_t asn_DEF_another_name_3_tags[] = {
184 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
185};
186static asn_TYPE_tag2member_t asn_MAP_another_name_3_tag2el[] = {
187 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* a at 27 */
188 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* b at 27 */
189};
190static asn_SEQUENCE_specifics_t asn_SPC_another_name_3_specs = {
191 sizeof(struct another_name),
192 offsetof(struct another_name, _asn_ctx),
193 asn_MAP_another_name_3_tag2el,
194 2, /* Count of tags in the map */
195 -1, /* Start extensions */
196 -1 /* Stop extensions */
197};
198static /* Use -fall-defs-global to expose */
199asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
200 "another-name",
201 "another-name",
202 SEQUENCE_free,
203 SEQUENCE_print,
204 SEQUENCE_constraint,
205 SEQUENCE_decode_ber,
206 SEQUENCE_encode_der,
207 SEQUENCE_decode_xer,
208 SEQUENCE_encode_xer,
209 0, /* Use generic outmost tag fetcher */
210 asn_DEF_another_name_3_tags,
211 sizeof(asn_DEF_another_name_3_tags)
212 /sizeof(asn_DEF_another_name_3_tags[0]), /* 1 */
213 asn_DEF_another_name_3_tags, /* Same as above */
214 sizeof(asn_DEF_another_name_3_tags)
215 /sizeof(asn_DEF_another_name_3_tags[0]), /* 1 */
216 asn_MBR_another_name_3,
217 2, /* Elements count */
218 &asn_SPC_another_name_3_specs /* Additional specs */
219};
220
221static asn_TYPE_member_t asn_MBR_one_name_2[] = {
222 { ATF_NOFLAGS, 0, offsetof(struct one_name, choice.another_name),
223 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
224 .tag_mode = 0,
225 .type = (void *)&asn_DEF_another_name_3,
226 .memb_constraints = 0, /* Defer constraints checking to the member type */
227 .name = "another-name"
228 },
229};
230static asn_TYPE_tag2member_t asn_MAP_one_name_2_tag2el[] = {
231 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name at 27 */
232};
233static asn_CHOICE_specifics_t asn_SPC_one_name_2_specs = {
234 sizeof(struct one_name),
235 offsetof(struct one_name, _asn_ctx),
236 offsetof(struct one_name, present),
237 sizeof(((struct one_name *)0)->present),
238 asn_MAP_one_name_2_tag2el,
239 1, /* Count of tags in the map */
240 0 /* Whether extensible */
241};
242static /* Use -fall-defs-global to expose */
243asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
244 "one-name",
245 "one-name",
246 CHOICE_free,
247 CHOICE_print,
248 CHOICE_constraint,
249 CHOICE_decode_ber,
250 CHOICE_encode_der,
251 CHOICE_decode_xer,
252 CHOICE_encode_xer,
253 CHOICE_outmost_tag,
254 0, /* No effective tags (pointer) */
255 0, /* No effective tags (count) */
256 0, /* No tags (pointer) */
257 0, /* No tags (count) */
258 asn_MBR_one_name_2,
259 1, /* Elements count */
260 &asn_SPC_one_name_2_specs /* Additional specs */
261};
262
263static asn_TYPE_member_t asn_MBR_Type1_1[] = {
264 { ATF_NOFLAGS, 0, offsetof(struct Type1, one_name),
265 .tag = -1 /* Ambiguous tag (CHOICE?) */,
266 .tag_mode = 0,
267 .type = (void *)&asn_DEF_one_name_2,
268 .memb_constraints = 0, /* Defer constraints checking to the member type */
269 .name = "one-name"
270 },
271};
272static ber_tlv_tag_t asn_DEF_Type1_1_tags[] = {
273 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
274};
275static asn_TYPE_tag2member_t asn_MAP_Type1_1_tag2el[] = {
276 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name at 27 */
277};
278static asn_SEQUENCE_specifics_t asn_SPC_Type1_1_specs = {
279 sizeof(struct Type1),
280 offsetof(struct Type1, _asn_ctx),
281 asn_MAP_Type1_1_tag2el,
282 1, /* Count of tags in the map */
283 -1, /* Start extensions */
284 -1 /* Stop extensions */
285};
286asn_TYPE_descriptor_t asn_DEF_Type1 = {
287 "Type1",
288 "Type1",
289 SEQUENCE_free,
290 SEQUENCE_print,
291 SEQUENCE_constraint,
292 SEQUENCE_decode_ber,
293 SEQUENCE_encode_der,
294 SEQUENCE_decode_xer,
295 SEQUENCE_encode_xer,
296 0, /* Use generic outmost tag fetcher */
297 asn_DEF_Type1_1_tags,
298 sizeof(asn_DEF_Type1_1_tags)
299 /sizeof(asn_DEF_Type1_1_tags[0]), /* 1 */
300 asn_DEF_Type1_1_tags, /* Same as above */
301 sizeof(asn_DEF_Type1_1_tags)
302 /sizeof(asn_DEF_Type1_1_tags[0]), /* 1 */
303 asn_MBR_Type1_1,
304 1, /* Elements count */
305 &asn_SPC_Type1_1_specs /* Additional specs */
306};
307
308
309/*** <<< INCLUDES [Type2] >>> ***/
310
311#include <BIT_STRING.h>
312#include <INTEGER.h>
313#include <constr_SEQUENCE.h>
314#include <constr_SET.h>
315#include <constr_CHOICE.h>
316
317/*** <<< DEPS [Type2] >>> ***/
318
319typedef enum Type2_PR {
320 Type2_PR_NOTHING, /* No components present */
321 Type2_PR_one_name,
322 Type2_PR_two_name,
323} Type2_PR;
324
325/*
326 * Method of determining the components presence
327 */
328typedef enum two_name_PR {
329 two_name_PR_another_name, /* Member another_name is present */
330} two_name_PR;
331extern asn_TYPE_descriptor_t asn_DEF_Type2;
332
333/*** <<< TYPE-DECLS [Type2] >>> ***/
334
335
336typedef struct Type2 {
337 Type2_PR present;
338 union {
339 struct one_name {
340 struct another_name {
341 BIT_STRING_t a;
342 INTEGER_t b;
343
344 /* Context for parsing across buffer boundaries */
345 asn_struct_ctx_t _asn_ctx;
346 } another_name;
347
348 /* Context for parsing across buffer boundaries */
349 asn_struct_ctx_t _asn_ctx;
350 } one_name;
351 struct two_name {
352 struct another_name {
353 BIT_STRING_t a;
354 INTEGER_t b;
355
356 /* Context for parsing across buffer boundaries */
357 asn_struct_ctx_t _asn_ctx;
358 } another_name;
359
360 /* Presence bitmask: ASN_SET_ISPRESENT(ptwo_name, two_name_PR_x) */
361 unsigned int _presence_map
362 [((1+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
363
364 /* Context for parsing across buffer boundaries */
365 asn_struct_ctx_t _asn_ctx;
366 } two_name;
367 } choice;
368
369 /* Context for parsing across buffer boundaries */
370 asn_struct_ctx_t _asn_ctx;
371} Type2_t;
372
373/*** <<< CODE [Type2] >>> ***/
374
375static int
376memb_a_3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
377 asn_app_consume_bytes_f *app_errlog, void *app_key) {
378 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
379 size_t size;
380
381 if(!sptr) {
382 _ASN_ERRLOG(app_errlog, app_key,
383 "%s: value not given (%s:%d)",
384 td->name, __FILE__, __LINE__);
385 return -1;
386 }
387
388 if(st->size > 0) {
389 /* Size in bits */
390 size = 8 * (st->size - 1) - (st->buf[0] & 0x7);
391 } else {
392 size = 0;
393 }
394
395 if((size == 2)) {
396 /* Constraint check succeeded */
397 return 0;
398 } else {
399 _ASN_ERRLOG(app_errlog, app_key,
400 "%s: constraint failed (%s:%d)",
401 td->name, __FILE__, __LINE__);
402 return -1;
403 }
404}
405
406static int
407memb_a_5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
408 asn_app_consume_bytes_f *app_errlog, void *app_key) {
409 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
410 size_t size;
411
412 if(!sptr) {
413 _ASN_ERRLOG(app_errlog, app_key,
414 "%s: value not given (%s:%d)",
415 td->name, __FILE__, __LINE__);
416 return -1;
417 }
418
419 if(st->size > 0) {
420 /* Size in bits */
421 size = 8 * (st->size - 1) - (st->buf[0] & 0x7);
422 } else {
423 size = 0;
424 }
425
426 if((size == 2)) {
427 /* Constraint check succeeded */
428 return 0;
429 } else {
430 _ASN_ERRLOG(app_errlog, app_key,
431 "%s: constraint failed (%s:%d)",
432 td->name, __FILE__, __LINE__);
433 return -1;
434 }
435}
436
437
438/*** <<< STAT-DEFS [Type2] >>> ***/
439
440static asn_TYPE_member_t asn_MBR_another_name_3[] = {
441 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
442 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
443 .tag_mode = 0,
444 .type = (void *)&asn_DEF_BIT_STRING,
445 .memb_constraints = memb_a_3_constraint,
446 .name = "a"
447 },
448 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
449 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
450 .tag_mode = 0,
451 .type = (void *)&asn_DEF_INTEGER,
452 .memb_constraints = 0, /* Defer constraints checking to the member type */
453 .name = "b"
454 },
455};
456static ber_tlv_tag_t asn_DEF_another_name_3_tags[] = {
457 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
458};
459static asn_TYPE_tag2member_t asn_MAP_another_name_3_tag2el[] = {
460 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b at 36 */
461 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a at 34 */
462};
463static asn_SEQUENCE_specifics_t asn_SPC_another_name_3_specs = {
464 sizeof(struct another_name),
465 offsetof(struct another_name, _asn_ctx),
466 asn_MAP_another_name_3_tag2el,
467 2, /* Count of tags in the map */
468 -1, /* Start extensions */
469 -1 /* Stop extensions */
470};
471static /* Use -fall-defs-global to expose */
472asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
473 "another-name",
474 "another-name",
475 SEQUENCE_free,
476 SEQUENCE_print,
477 SEQUENCE_constraint,
478 SEQUENCE_decode_ber,
479 SEQUENCE_encode_der,
480 SEQUENCE_decode_xer,
481 SEQUENCE_encode_xer,
482 0, /* Use generic outmost tag fetcher */
483 asn_DEF_another_name_3_tags,
484 sizeof(asn_DEF_another_name_3_tags)
485 /sizeof(asn_DEF_another_name_3_tags[0]), /* 1 */
486 asn_DEF_another_name_3_tags, /* Same as above */
487 sizeof(asn_DEF_another_name_3_tags)
488 /sizeof(asn_DEF_another_name_3_tags[0]), /* 1 */
489 asn_MBR_another_name_3,
490 2, /* Elements count */
491 &asn_SPC_another_name_3_specs /* Additional specs */
492};
493
494static asn_TYPE_member_t asn_MBR_one_name_2[] = {
495 { ATF_NOFLAGS, 0, offsetof(struct one_name, another_name),
496 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
497 .tag_mode = 0,
498 .type = (void *)&asn_DEF_another_name_3,
499 .memb_constraints = 0, /* Defer constraints checking to the member type */
500 .name = "another-name"
501 },
502};
503static ber_tlv_tag_t asn_DEF_one_name_2_tags[] = {
504 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
505};
506static asn_TYPE_tag2member_t asn_MAP_one_name_2_tag2el[] = {
507 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name at 34 */
508};
509static asn_SEQUENCE_specifics_t asn_SPC_one_name_2_specs = {
510 sizeof(struct one_name),
511 offsetof(struct one_name, _asn_ctx),
512 asn_MAP_one_name_2_tag2el,
513 1, /* Count of tags in the map */
514 -1, /* Start extensions */
515 -1 /* Stop extensions */
516};
517static /* Use -fall-defs-global to expose */
518asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
519 "one-name",
520 "one-name",
521 SEQUENCE_free,
522 SEQUENCE_print,
523 SEQUENCE_constraint,
524 SEQUENCE_decode_ber,
525 SEQUENCE_encode_der,
526 SEQUENCE_decode_xer,
527 SEQUENCE_encode_xer,
528 0, /* Use generic outmost tag fetcher */
529 asn_DEF_one_name_2_tags,
530 sizeof(asn_DEF_one_name_2_tags)
531 /sizeof(asn_DEF_one_name_2_tags[0]), /* 1 */
532 asn_DEF_one_name_2_tags, /* Same as above */
533 sizeof(asn_DEF_one_name_2_tags)
534 /sizeof(asn_DEF_one_name_2_tags[0]), /* 1 */
535 asn_MBR_one_name_2,
536 1, /* Elements count */
537 &asn_SPC_one_name_2_specs /* Additional specs */
538};
539
540static asn_TYPE_member_t asn_MBR_another_name_5[] = {
541 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
542 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
543 .tag_mode = 0,
544 .type = (void *)&asn_DEF_BIT_STRING,
545 .memb_constraints = memb_a_5_constraint,
546 .name = "a"
547 },
548 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
549 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
550 .tag_mode = 0,
551 .type = (void *)&asn_DEF_INTEGER,
552 .memb_constraints = 0, /* Defer constraints checking to the member type */
553 .name = "b"
554 },
555};
556static ber_tlv_tag_t asn_DEF_another_name_5_tags[] = {
557 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
558};
559static asn_TYPE_tag2member_t asn_MAP_another_name_5_tag2el[] = {
560 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b at 42 */
561 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a at 40 */
562};
563static asn_SEQUENCE_specifics_t asn_SPC_another_name_5_specs = {
564 sizeof(struct another_name),
565 offsetof(struct another_name, _asn_ctx),
566 asn_MAP_another_name_5_tag2el,
567 2, /* Count of tags in the map */
568 -1, /* Start extensions */
569 -1 /* Stop extensions */
570};
571static /* Use -fall-defs-global to expose */
572asn_TYPE_descriptor_t asn_DEF_another_name_5 = {
573 "another-name",
574 "another-name",
575 SEQUENCE_free,
576 SEQUENCE_print,
577 SEQUENCE_constraint,
578 SEQUENCE_decode_ber,
579 SEQUENCE_encode_der,
580 SEQUENCE_decode_xer,
581 SEQUENCE_encode_xer,
582 0, /* Use generic outmost tag fetcher */
583 asn_DEF_another_name_5_tags,
584 sizeof(asn_DEF_another_name_5_tags)
585 /sizeof(asn_DEF_another_name_5_tags[0]), /* 1 */
586 asn_DEF_another_name_5_tags, /* Same as above */
587 sizeof(asn_DEF_another_name_5_tags)
588 /sizeof(asn_DEF_another_name_5_tags[0]), /* 1 */
589 asn_MBR_another_name_5,
590 2, /* Elements count */
591 &asn_SPC_another_name_5_specs /* Additional specs */
592};
593
594static asn_TYPE_member_t asn_MBR_two_name_4[] = {
595 { ATF_NOFLAGS, 0, offsetof(struct two_name, another_name),
596 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
597 .tag_mode = 0,
598 .type = (void *)&asn_DEF_another_name_5,
599 .memb_constraints = 0, /* Defer constraints checking to the member type */
600 .name = "another-name"
601 },
602};
603static ber_tlv_tag_t asn_DEF_two_name_4_tags[] = {
604 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
605};
606static asn_TYPE_tag2member_t asn_MAP_two_name_4_tag2el[] = {
607 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name at 40 */
608};
609static uint8_t asn_MAP_two_name_4_mmap[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
610 (1 << 7)
611};
612static asn_SET_specifics_t asn_SPC_two_name_4_specs = {
613 sizeof(struct two_name),
614 offsetof(struct two_name, _asn_ctx),
615 offsetof(struct two_name, _presence_map),
616 asn_MAP_two_name_4_tag2el,
617 1, /* Count of tags in the map */
618 asn_MAP_two_name_4_tag2el, /* Same as above */
619 1, /* Count of tags in the CXER map */
620 0, /* Whether extensible */
621 (unsigned int *)asn_MAP_two_name_4_mmap /* Mandatory elements map */
622};
623static /* Use -fall-defs-global to expose */
624asn_TYPE_descriptor_t asn_DEF_two_name_4 = {
625 "two-name",
626 "two-name",
627 SET_free,
628 SET_print,
629 SET_constraint,
630 SET_decode_ber,
631 SET_encode_der,
632 SET_decode_xer,
633 SET_encode_xer,
634 0, /* Use generic outmost tag fetcher */
635 asn_DEF_two_name_4_tags,
636 sizeof(asn_DEF_two_name_4_tags)
637 /sizeof(asn_DEF_two_name_4_tags[0]), /* 1 */
638 asn_DEF_two_name_4_tags, /* Same as above */
639 sizeof(asn_DEF_two_name_4_tags)
640 /sizeof(asn_DEF_two_name_4_tags[0]), /* 1 */
641 asn_MBR_two_name_4,
642 1, /* Elements count */
643 &asn_SPC_two_name_4_specs /* Additional specs */
644};
645
646static asn_TYPE_member_t asn_MBR_Type2_1[] = {
647 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.one_name),
648 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
649 .tag_mode = 0,
650 .type = (void *)&asn_DEF_one_name_2,
651 .memb_constraints = 0, /* Defer constraints checking to the member type */
652 .name = "one-name"
653 },
654 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.two_name),
655 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
656 .tag_mode = 0,
657 .type = (void *)&asn_DEF_two_name_4,
658 .memb_constraints = 0, /* Defer constraints checking to the member type */
659 .name = "two-name"
660 },
661};
662static asn_TYPE_tag2member_t asn_MAP_Type2_1_tag2el[] = {
663 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* one-name at 37 */
664 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name at 43 */
665};
666static asn_CHOICE_specifics_t asn_SPC_Type2_1_specs = {
667 sizeof(struct Type2),
668 offsetof(struct Type2, _asn_ctx),
669 offsetof(struct Type2, present),
670 sizeof(((struct Type2 *)0)->present),
671 asn_MAP_Type2_1_tag2el,
672 2, /* Count of tags in the map */
673 0 /* Whether extensible */
674};
675asn_TYPE_descriptor_t asn_DEF_Type2 = {
676 "Type2",
677 "Type2",
678 CHOICE_free,
679 CHOICE_print,
680 CHOICE_constraint,
681 CHOICE_decode_ber,
682 CHOICE_encode_der,
683 CHOICE_decode_xer,
684 CHOICE_encode_xer,
685 CHOICE_outmost_tag,
686 0, /* No effective tags (pointer) */
687 0, /* No effective tags (count) */
688 0, /* No tags (pointer) */
689 0, /* No tags (count) */
690 asn_MBR_Type2_1,
691 2, /* Elements count */
692 &asn_SPC_Type2_1_specs /* Additional specs */
693};
694