2 /*** <<< INCLUDES [T] >>> ***/
5 #include <constr_CHOICE.h>
7 /*** <<< DEPS [T] >>> ***/
10 T_PR_NOTHING, /* No components present */
17 /*** <<< TYPE-DECLS [T] >>> ***/
28 /* Context for parsing across buffer boundaries */
29 asn_struct_ctx_t _asn_ctx;
32 /*** <<< FUNC-DECLS [T] >>> ***/
34 extern asn_TYPE_descriptor_t asn_DEF_T;
36 /*** <<< CTDEFS [T] >>> ***/
38 static asn_per_constraints_t asn_PER_type_T_constr_1 CC_NOTUSED = {
39 { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */,
40 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
41 0, 0 /* No PER value map */
44 /*** <<< STAT-DEFS [T] >>> ***/
46 static asn_TYPE_member_t asn_MBR_T_1[] = {
47 { ATF_NOFLAGS, 0, offsetof(struct T, choice.one),
48 .tag = (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
49 .tag_mode = +1, /* EXPLICIT tag at current level */
50 .type = &asn_DEF_NULL,
52 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
53 0, 0, /* No default value */
56 { ATF_NOFLAGS, 0, offsetof(struct T, choice.two),
57 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
58 .tag_mode = +1, /* EXPLICIT tag at current level */
59 .type = &asn_DEF_NULL,
61 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
62 0, 0, /* No default value */
65 { ATF_NOFLAGS, 0, offsetof(struct T, choice.three),
66 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
67 .tag_mode = +1, /* EXPLICIT tag at current level */
68 .type = &asn_DEF_NULL,
70 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
71 0, 0, /* No default value */
74 { ATF_NOFLAGS, 0, offsetof(struct T, choice.four),
75 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
76 .tag_mode = +1, /* EXPLICIT tag at current level */
77 .type = &asn_DEF_NULL,
79 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
80 0, 0, /* No default value */
84 static const unsigned asn_MAP_T_to_canonical_1[] = { 2, 3, 1, 0 };
85 static const unsigned asn_MAP_T_from_canonical_1[] = { 3, 2, 0, 1 };
86 static const asn_TYPE_tag2member_t asn_MAP_T_tag2el_1[] = {
87 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* three */
88 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* four */
89 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* two */
90 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* one */
92 static asn_CHOICE_specifics_t asn_SPC_T_specs_1 = {
94 offsetof(struct T, _asn_ctx),
95 offsetof(struct T, present),
96 sizeof(((struct T *)0)->present),
97 .tag2el = asn_MAP_T_tag2el_1,
98 .tag2el_count = 4, /* Count of tags in the map */
99 .to_canonical_order = asn_MAP_T_to_canonical_1,
100 .from_canonical_order = asn_MAP_T_from_canonical_1,
101 .first_extension = -1 /* Extensions start */
103 asn_TYPE_descriptor_t asn_DEF_T = {
107 0, /* No effective tags (pointer) */
108 0, /* No effective tags (count) */
109 0, /* No tags (pointer) */
110 0, /* No tags (count) */
111 { 0, &asn_PER_type_T_constr_1, CHOICE_constraint },
113 4, /* Elements count */
114 &asn_SPC_T_specs_1 /* Additional specs */