blob: ab8d27a4e5a0c450666a9da2dde83f6095103f15 [file] [log] [blame]
Lev Walkin5bbff1e2004-06-28 21:13:22 +00001
Lev Walkinb47ddce2004-08-11 05:25:47 +00002/*** <<< INCLUDES [T] >>> ***/
Lev Walkin5bbff1e2004-06-28 21:13:22 +00003
Lev Walkin5bbff1e2004-06-28 21:13:22 +00004#include <NULL.h>
Lev Walkinb47ddce2004-08-11 05:25:47 +00005#include <constr_CHOICE.h>
Lev Walkin5bbff1e2004-06-28 21:13:22 +00006#include <constr_SEQUENCE.h>
7
Lev Walkinb47ddce2004-08-11 05:25:47 +00008/*** <<< DEPS [T] >>> ***/
9
Lev Walkin2e3055d2004-08-20 13:36:32 +000010typedef enum b_PR {
11 b_PR_NOTHING, /* No components present */
12 b_PR_c,
13 b_PR_d,
14 b_PR_e,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +000015 b_PR_h
Lev Walkin2e3055d2004-08-20 13:36:32 +000016} b_PR;
17typedef enum e_PR {
18 e_PR_NOTHING, /* No components present */
19 e_PR_f,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +000020 e_PR_g
Lev Walkin2e3055d2004-08-20 13:36:32 +000021} e_PR;
22typedef enum h_PR {
23 h_PR_NOTHING, /* No components present */
24 h_PR_i,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +000025 h_PR_j
Lev Walkin2e3055d2004-08-20 13:36:32 +000026} h_PR;
Lev Walkin5bbff1e2004-06-28 21:13:22 +000027
28/*** <<< TYPE-DECLS [T] >>> ***/
29
Lev Walkin5bbff1e2004-06-28 21:13:22 +000030typedef struct T {
31 NULL_t a;
32 struct b {
Lev Walkin64399722004-08-11 07:17:22 +000033 b_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +000034 union T__b_u {
Lev Walkin5bbff1e2004-06-28 21:13:22 +000035 NULL_t c;
36 NULL_t d;
37 struct e {
Lev Walkin64399722004-08-11 07:17:22 +000038 e_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +000039 union T__b__e_u {
Lev Walkin5bbff1e2004-06-28 21:13:22 +000040 NULL_t f;
41 NULL_t g;
42 } choice;
43
44 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +000045 asn_struct_ctx_t _asn_ctx;
Lev Walkin5bbff1e2004-06-28 21:13:22 +000046 } e;
47 struct h {
Lev Walkin64399722004-08-11 07:17:22 +000048 h_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +000049 union T__b__h_u {
Lev Walkin5bbff1e2004-06-28 21:13:22 +000050 NULL_t i;
51 NULL_t j;
52 } choice;
53
54 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +000055 asn_struct_ctx_t _asn_ctx;
Lev Walkin5bbff1e2004-06-28 21:13:22 +000056 } h;
57 } choice;
58
59 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +000060 asn_struct_ctx_t _asn_ctx;
Lev Walkin5bbff1e2004-06-28 21:13:22 +000061 } b;
62
63 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +000064 asn_struct_ctx_t _asn_ctx;
Lev Walkin5bbff1e2004-06-28 21:13:22 +000065} T_t;
66
Lev Walkinc8285712005-03-04 22:18:20 +000067/*** <<< FUNC-DECLS [T] >>> ***/
68
69extern asn_TYPE_descriptor_t asn_DEF_T;
70
Lev Walkin5bbff1e2004-06-28 21:13:22 +000071/*** <<< STAT-DEFS [T] >>> ***/
72
Lev Walkine8318b82005-03-06 09:29:03 +000073static asn_TYPE_member_t asn_MBR_e_6[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +000074 { ATF_NOFLAGS, 0, offsetof(struct e, choice.f),
Lev Walkin2e3055d2004-08-20 13:36:32 +000075 .tag = (ASN_TAG_CLASS_PRIVATE | (7 << 2)),
76 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +000077 .type = &asn_DEF_NULL,
Lev Walkin67a30122017-08-10 05:48:54 -070078 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +000079 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +040080 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +000081 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
82 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +000083 .name = "f"
Lev Walkin5bbff1e2004-06-28 21:13:22 +000084 },
Lev Walkincc93b0f2004-09-10 09:18:20 +000085 { ATF_NOFLAGS, 0, offsetof(struct e, choice.g),
Lev Walkin2e3055d2004-08-20 13:36:32 +000086 .tag = (ASN_TAG_CLASS_PRIVATE | (8 << 2)),
87 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +000088 .type = &asn_DEF_NULL,
Lev Walkin67a30122017-08-10 05:48:54 -070089 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +000090 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +040091 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +000092 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
93 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +000094 .name = "g"
95 },
96};
Lev Walkina7591b52014-10-12 18:37:35 -070097static const asn_TYPE_tag2member_t asn_MAP_e_tag2el_6[] = {
Lev Walkin4062b012013-10-11 14:29:38 -070098 { (ASN_TAG_CLASS_PRIVATE | (7 << 2)), 0, 0, 0 }, /* f */
99 { (ASN_TAG_CLASS_PRIVATE | (8 << 2)), 1, 0, 0 } /* g */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000100};
Lev Walkin59b176e2005-11-26 11:25:14 +0000101static asn_CHOICE_specifics_t asn_SPC_e_specs_6 = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000102 sizeof(struct e),
Lev Walkindfae9752004-09-29 13:19:37 +0000103 offsetof(struct e, _asn_ctx),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000104 offsetof(struct e, present),
105 sizeof(((struct e *)0)->present),
Lev Walkine3917082017-08-23 10:29:38 -0700106 .tag2el = asn_MAP_e_tag2el_6,
107 .tag2el_count = 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000108 .canonical_order = 0,
109 .ext_start = -1 /* Extensions start */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000110};
Lev Walkind04430c2004-09-07 06:44:29 +0000111static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000112asn_TYPE_descriptor_t asn_DEF_e_6 = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000113 "e",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000114 "e",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000115 CHOICE_free,
116 CHOICE_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700117 CHOICE_compare,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000118 CHOICE_constraint,
119 CHOICE_decode_ber,
120 CHOICE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000121 CHOICE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000122 CHOICE_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700123 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400124 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000125 CHOICE_outmost_tag,
Lev Walkin188ed2c2004-09-13 08:31:01 +0000126 0, /* No effective tags (pointer) */
127 0, /* No effective tags (count) */
128 0, /* No tags (pointer) */
129 0, /* No tags (count) */
Lev Walkinb33425f2017-07-14 14:59:52 +0400130 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000131 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000132 asn_MBR_e_6,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000133 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000134 &asn_SPC_e_specs_6 /* Additional specs */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000135};
136
Lev Walkine8318b82005-03-06 09:29:03 +0000137static asn_TYPE_member_t asn_MBR_h_9[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000138 { ATF_NOFLAGS, 0, offsetof(struct h, choice.i),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000139 .tag = (ASN_TAG_CLASS_PRIVATE | (1 << 2)),
140 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000141 .type = &asn_DEF_NULL,
Lev Walkin67a30122017-08-10 05:48:54 -0700142 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000143 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400144 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000145 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
146 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000147 .name = "i"
148 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000149 { ATF_NOFLAGS, 0, offsetof(struct h, choice.j),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000150 .tag = (ASN_TAG_CLASS_PRIVATE | (2 << 2)),
151 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000152 .type = &asn_DEF_NULL,
Lev Walkin67a30122017-08-10 05:48:54 -0700153 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000154 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400155 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000156 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
157 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000158 .name = "j"
159 },
160};
Lev Walkina7591b52014-10-12 18:37:35 -0700161static const asn_TYPE_tag2member_t asn_MAP_h_tag2el_9[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700162 { (ASN_TAG_CLASS_PRIVATE | (1 << 2)), 0, 0, 0 }, /* i */
163 { (ASN_TAG_CLASS_PRIVATE | (2 << 2)), 1, 0, 0 } /* j */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000164};
Lev Walkin59b176e2005-11-26 11:25:14 +0000165static asn_CHOICE_specifics_t asn_SPC_h_specs_9 = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000166 sizeof(struct h),
Lev Walkindfae9752004-09-29 13:19:37 +0000167 offsetof(struct h, _asn_ctx),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000168 offsetof(struct h, present),
169 sizeof(((struct h *)0)->present),
Lev Walkine3917082017-08-23 10:29:38 -0700170 .tag2el = asn_MAP_h_tag2el_9,
171 .tag2el_count = 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000172 .canonical_order = 0,
173 .ext_start = -1 /* Extensions start */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000174};
Lev Walkind04430c2004-09-07 06:44:29 +0000175static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000176asn_TYPE_descriptor_t asn_DEF_h_9 = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000177 "h",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000178 "h",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000179 CHOICE_free,
180 CHOICE_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700181 CHOICE_compare,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000182 CHOICE_constraint,
183 CHOICE_decode_ber,
184 CHOICE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000185 CHOICE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000186 CHOICE_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700187 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400188 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000189 CHOICE_outmost_tag,
Lev Walkin188ed2c2004-09-13 08:31:01 +0000190 0, /* No effective tags (pointer) */
191 0, /* No effective tags (count) */
192 0, /* No tags (pointer) */
193 0, /* No tags (count) */
Lev Walkinb33425f2017-07-14 14:59:52 +0400194 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000195 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000196 asn_MBR_h_9,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000197 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000198 &asn_SPC_h_specs_9 /* Additional specs */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000199};
200
Lev Walkine8318b82005-03-06 09:29:03 +0000201static asn_TYPE_member_t asn_MBR_b_3[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000202 { ATF_NOFLAGS, 0, offsetof(struct b, choice.c),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000203 .tag = (ASN_TAG_CLASS_PRIVATE | (5 << 2)),
204 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000205 .type = &asn_DEF_NULL,
Lev Walkin67a30122017-08-10 05:48:54 -0700206 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000207 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400208 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000209 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
210 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000211 .name = "c"
212 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000213 { ATF_NOFLAGS, 0, offsetof(struct b, choice.d),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000214 .tag = (ASN_TAG_CLASS_PRIVATE | (6 << 2)),
215 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000216 .type = &asn_DEF_NULL,
Lev Walkin67a30122017-08-10 05:48:54 -0700217 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000218 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400219 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000220 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
221 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000222 .name = "d"
223 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000224 { ATF_NOFLAGS, 0, offsetof(struct b, choice.e),
Lev Walkinb9189732004-09-10 09:37:12 +0000225 .tag = -1 /* Ambiguous tag (CHOICE?) */,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000226 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000227 .type = &asn_DEF_e_6,
Lev Walkin67a30122017-08-10 05:48:54 -0700228 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000229 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400230 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000231 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
232 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000233 .name = "e"
234 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000235 { ATF_NOFLAGS, 0, offsetof(struct b, choice.h),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000236 .tag = (ASN_TAG_CLASS_PRIVATE | (9 << 2)),
237 .tag_mode = +1, /* EXPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000238 .type = &asn_DEF_h_9,
Lev Walkin67a30122017-08-10 05:48:54 -0700239 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000240 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400241 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000242 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
243 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000244 .name = "h"
245 },
246};
Lev Walkina7591b52014-10-12 18:37:35 -0700247static const asn_TYPE_tag2member_t asn_MAP_b_tag2el_3[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700248 { (ASN_TAG_CLASS_PRIVATE | (5 << 2)), 0, 0, 0 }, /* c */
249 { (ASN_TAG_CLASS_PRIVATE | (6 << 2)), 1, 0, 0 }, /* d */
250 { (ASN_TAG_CLASS_PRIVATE | (7 << 2)), 2, 0, 0 }, /* f */
251 { (ASN_TAG_CLASS_PRIVATE | (8 << 2)), 2, 0, 0 }, /* g */
252 { (ASN_TAG_CLASS_PRIVATE | (9 << 2)), 3, 0, 0 } /* h */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000253};
Lev Walkin59b176e2005-11-26 11:25:14 +0000254static asn_CHOICE_specifics_t asn_SPC_b_specs_3 = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000255 sizeof(struct b),
Lev Walkindfae9752004-09-29 13:19:37 +0000256 offsetof(struct b, _asn_ctx),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000257 offsetof(struct b, present),
258 sizeof(((struct b *)0)->present),
Lev Walkine3917082017-08-23 10:29:38 -0700259 .tag2el = asn_MAP_b_tag2el_3,
260 .tag2el_count = 5, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000261 .canonical_order = 0,
262 .ext_start = -1 /* Extensions start */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000263};
Lev Walkind04430c2004-09-07 06:44:29 +0000264static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000265asn_TYPE_descriptor_t asn_DEF_b_3 = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000266 "b",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000267 "b",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000268 CHOICE_free,
269 CHOICE_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700270 CHOICE_compare,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000271 CHOICE_constraint,
272 CHOICE_decode_ber,
273 CHOICE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000274 CHOICE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000275 CHOICE_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700276 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400277 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000278 CHOICE_outmost_tag,
Lev Walkin188ed2c2004-09-13 08:31:01 +0000279 0, /* No effective tags (pointer) */
280 0, /* No effective tags (count) */
281 0, /* No tags (pointer) */
282 0, /* No tags (count) */
Lev Walkinb33425f2017-07-14 14:59:52 +0400283 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000284 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000285 asn_MBR_b_3,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000286 4, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000287 &asn_SPC_b_specs_3 /* Additional specs */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000288};
289
Lev Walkine0272aa2005-03-04 11:26:08 +0000290static asn_TYPE_member_t asn_MBR_T_1[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000291 { ATF_NOFLAGS, 0, offsetof(struct T, a),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000292 .tag = (ASN_TAG_CLASS_PRIVATE | (2 << 2)),
293 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000294 .type = &asn_DEF_NULL,
Lev Walkin67a30122017-08-10 05:48:54 -0700295 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000296 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400297 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000298 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
299 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000300 .name = "a"
301 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000302 { ATF_NOFLAGS, 0, offsetof(struct T, b),
Lev Walkinb9189732004-09-10 09:37:12 +0000303 .tag = -1 /* Ambiguous tag (CHOICE?) */,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000304 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000305 .type = &asn_DEF_b_3,
Lev Walkin67a30122017-08-10 05:48:54 -0700306 .type_selector = 0,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000307 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400308 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000309 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
310 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000311 .name = "b"
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000312 },
313};
Lev Walkina7591b52014-10-12 18:37:35 -0700314static const ber_tlv_tag_t asn_DEF_T_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000315 (ASN_TAG_CLASS_PRIVATE | (1 << 2)),
316 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000317};
Lev Walkina7591b52014-10-12 18:37:35 -0700318static const asn_TYPE_tag2member_t asn_MAP_T_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700319 { (ASN_TAG_CLASS_PRIVATE | (2 << 2)), 0, 0, 0 }, /* a */
320 { (ASN_TAG_CLASS_PRIVATE | (5 << 2)), 1, 0, 0 }, /* c */
321 { (ASN_TAG_CLASS_PRIVATE | (6 << 2)), 1, 0, 0 }, /* d */
322 { (ASN_TAG_CLASS_PRIVATE | (7 << 2)), 1, 0, 0 }, /* f */
323 { (ASN_TAG_CLASS_PRIVATE | (8 << 2)), 1, 0, 0 }, /* g */
324 { (ASN_TAG_CLASS_PRIVATE | (9 << 2)), 1, 0, 0 } /* h */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000325};
Lev Walkin59b176e2005-11-26 11:25:14 +0000326static asn_SEQUENCE_specifics_t asn_SPC_T_specs_1 = {
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000327 sizeof(struct T),
Lev Walkindfae9752004-09-29 13:19:37 +0000328 offsetof(struct T, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -0700329 .tag2el = asn_MAP_T_tag2el_1,
330 .tag2el_count = 6, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000331 0, 0, 0, /* Optional elements (not needed) */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000332 -1, /* Start extensions */
333 -1 /* Stop extensions */
334};
Lev Walkindfae9752004-09-29 13:19:37 +0000335asn_TYPE_descriptor_t asn_DEF_T = {
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000336 "T",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000337 "T",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000338 SEQUENCE_free,
339 SEQUENCE_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700340 SEQUENCE_compare,
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000341 SEQUENCE_constraint,
342 SEQUENCE_decode_ber,
343 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000344 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000345 SEQUENCE_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700346 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400347 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000348 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000349 asn_DEF_T_tags_1,
350 sizeof(asn_DEF_T_tags_1)
351 /sizeof(asn_DEF_T_tags_1[0]) - 1, /* 1 */
352 asn_DEF_T_tags_1, /* Same as above */
353 sizeof(asn_DEF_T_tags_1)
354 /sizeof(asn_DEF_T_tags_1[0]), /* 2 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400355 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000356 0, /* No PER visible constraints */
Lev Walkine0272aa2005-03-04 11:26:08 +0000357 asn_MBR_T_1,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000358 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000359 &asn_SPC_T_specs_1 /* Additional specs */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000360};
361