blob: bcf07a4dad264d147c7db99941b7a086e9249576 [file] [log] [blame]
Lev Walkinb7f17972005-03-04 09:10:19 +00001
2/*** <<< INCLUDES [Type] >>> ***/
3
4#include <asn_SET_OF.h>
Lev Walkin22b5ed42006-09-13 02:51:20 +00005#include "Type1.h"
6#include "Type2.h"
Lev Walkinb7f17972005-03-04 09:10:19 +00007#include <constr_SEQUENCE.h>
8#include <constr_SET_OF.h>
9
Bi-Ruei, Chiu9b87e5b2016-06-06 00:23:16 +080010/*** <<< FWD-DEFS [Type] >>> ***/
11
12typedef struct Member {
13 Type1_t t1;
14 Type2_t t2;
15
16 /* Context for parsing across buffer boundaries */
17 asn_struct_ctx_t _asn_ctx;
18} Member;
19
Lev Walkinb7f17972005-03-04 09:10:19 +000020/*** <<< TYPE-DECLS [Type] >>> ***/
21
Lev Walkinb7f17972005-03-04 09:10:19 +000022typedef struct Type {
Bi-Ruei, Chiu9b87e5b2016-06-06 00:23:16 +080023 A_SET_OF(Member) list;
Lev Walkinb7f17972005-03-04 09:10:19 +000024
25 /* Context for parsing across buffer boundaries */
26 asn_struct_ctx_t _asn_ctx;
27} Type_t;
28
Lev Walkinc8285712005-03-04 22:18:20 +000029/*** <<< FUNC-DECLS [Type] >>> ***/
30
31extern asn_TYPE_descriptor_t asn_DEF_Type;
32
Lev Walkinb7f17972005-03-04 09:10:19 +000033/*** <<< STAT-DEFS [Type] >>> ***/
34
35static asn_TYPE_member_t asn_MBR_Member_2[] = {
36 { ATF_NOFLAGS, 0, offsetof(struct Member, t1),
37 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
38 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000039 .type = &asn_DEF_Type1,
Lev Walkinb7f17972005-03-04 09:10:19 +000040 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +000041 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
42 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000043 .name = "t1"
44 },
45 { ATF_NOFLAGS, 0, offsetof(struct Member, t2),
46 .tag = -1 /* Ambiguous tag (CHOICE?) */,
47 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000048 .type = &asn_DEF_Type2,
Lev Walkinb7f17972005-03-04 09:10:19 +000049 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +000050 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
51 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000052 .name = "t2"
53 },
54};
Lev Walkina7591b52014-10-12 18:37:35 -070055static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +000056 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
57};
Lev Walkina7591b52014-10-12 18:37:35 -070058static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -070059 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* t1 */
60 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* one-name */
61 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name */
Lev Walkinb7f17972005-03-04 09:10:19 +000062};
Lev Walkin59b176e2005-11-26 11:25:14 +000063static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +000064 sizeof(struct Member),
65 offsetof(struct Member, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +000066 asn_MAP_Member_tag2el_2,
Lev Walkinb7f17972005-03-04 09:10:19 +000067 3, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +000068 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +000069 -1, /* Start extensions */
70 -1 /* Stop extensions */
71};
72static /* Use -fall-defs-global to expose */
73asn_TYPE_descriptor_t asn_DEF_Member_2 = {
Lev Walkin59b176e2005-11-26 11:25:14 +000074 "SEQUENCE",
75 "SEQUENCE",
Lev Walkinb7f17972005-03-04 09:10:19 +000076 SEQUENCE_free,
77 SEQUENCE_print,
78 SEQUENCE_constraint,
79 SEQUENCE_decode_ber,
80 SEQUENCE_encode_der,
81 SEQUENCE_decode_xer,
82 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +000083 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -070084 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +000085 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +000086 asn_DEF_Member_tags_2,
87 sizeof(asn_DEF_Member_tags_2)
88 /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
89 asn_DEF_Member_tags_2, /* Same as above */
90 sizeof(asn_DEF_Member_tags_2)
91 /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
92 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +000093 asn_MBR_Member_2,
94 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +000095 &asn_SPC_Member_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +000096};
97
98static asn_TYPE_member_t asn_MBR_Type_1[] = {
Lev Walkin8eb4b572005-08-16 16:57:17 +000099 { ATF_POINTER, 0, 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000100 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
101 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000102 .type = &asn_DEF_Member_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000103 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000104 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
105 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000106 .name = ""
107 },
108};
Lev Walkina7591b52014-10-12 18:37:35 -0700109static const ber_tlv_tag_t asn_DEF_Type_tags_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000110 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
111};
Lev Walkin59b176e2005-11-26 11:25:14 +0000112static asn_SET_OF_specifics_t asn_SPC_Type_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000113 sizeof(struct Type),
114 offsetof(struct Type, _asn_ctx),
115 0, /* XER encoding is XMLDelimitedItemList */
116};
117asn_TYPE_descriptor_t asn_DEF_Type = {
118 "Type",
119 "Type",
120 SET_OF_free,
121 SET_OF_print,
122 SET_OF_constraint,
123 SET_OF_decode_ber,
124 SET_OF_encode_der,
125 SET_OF_decode_xer,
126 SET_OF_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000127 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700128 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000129 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000130 asn_DEF_Type_tags_1,
131 sizeof(asn_DEF_Type_tags_1)
132 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
133 asn_DEF_Type_tags_1, /* Same as above */
134 sizeof(asn_DEF_Type_tags_1)
135 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
136 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000137 asn_MBR_Type_1,
138 1, /* Single element */
Lev Walkin59b176e2005-11-26 11:25:14 +0000139 &asn_SPC_Type_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000140};
141
142
143/*** <<< INCLUDES [Type1] >>> ***/
144
145#include <INTEGER.h>
146#include <constr_SEQUENCE.h>
147#include <constr_CHOICE.h>
148
149/*** <<< DEPS [Type1] >>> ***/
150
151typedef enum one_name_PR {
152 one_name_PR_NOTHING, /* No components present */
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000153 one_name_PR_another_name
Lev Walkinb7f17972005-03-04 09:10:19 +0000154} one_name_PR;
Lev Walkinb7f17972005-03-04 09:10:19 +0000155
156/*** <<< TYPE-DECLS [Type1] >>> ***/
157
Lev Walkinb7f17972005-03-04 09:10:19 +0000158typedef struct Type1 {
159 struct one_name {
160 one_name_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +0000161 union Type1__one_name_u {
Lev Walkinb7f17972005-03-04 09:10:19 +0000162 struct another_name {
163 INTEGER_t a;
164 INTEGER_t b;
165
166 /* Context for parsing across buffer boundaries */
167 asn_struct_ctx_t _asn_ctx;
168 } another_name;
169 } choice;
170
171 /* Context for parsing across buffer boundaries */
172 asn_struct_ctx_t _asn_ctx;
173 } one_name;
174
175 /* Context for parsing across buffer boundaries */
176 asn_struct_ctx_t _asn_ctx;
177} Type1_t;
178
Lev Walkinc8285712005-03-04 22:18:20 +0000179/*** <<< FUNC-DECLS [Type1] >>> ***/
180
181extern asn_TYPE_descriptor_t asn_DEF_Type1;
182
Lev Walkinb7f17972005-03-04 09:10:19 +0000183/*** <<< STAT-DEFS [Type1] >>> ***/
184
185static asn_TYPE_member_t asn_MBR_another_name_3[] = {
186 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
187 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
188 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000189 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000190 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000191 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
192 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000193 .name = "a"
194 },
195 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
196 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
197 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000198 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000199 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000200 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
201 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000202 .name = "b"
203 },
204};
Lev Walkina7591b52014-10-12 18:37:35 -0700205static const ber_tlv_tag_t asn_DEF_another_name_tags_3[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000206 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
207};
Lev Walkina7591b52014-10-12 18:37:35 -0700208static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_3[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700209 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* a */
210 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* b */
Lev Walkinb7f17972005-03-04 09:10:19 +0000211};
Lev Walkin59b176e2005-11-26 11:25:14 +0000212static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_3 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000213 sizeof(struct another_name),
214 offsetof(struct another_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000215 asn_MAP_another_name_tag2el_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000216 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000217 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000218 -1, /* Start extensions */
219 -1 /* Stop extensions */
220};
221static /* Use -fall-defs-global to expose */
222asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
223 "another-name",
224 "another-name",
225 SEQUENCE_free,
226 SEQUENCE_print,
227 SEQUENCE_constraint,
228 SEQUENCE_decode_ber,
229 SEQUENCE_encode_der,
230 SEQUENCE_decode_xer,
231 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000232 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700233 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000234 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000235 asn_DEF_another_name_tags_3,
236 sizeof(asn_DEF_another_name_tags_3)
237 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
238 asn_DEF_another_name_tags_3, /* Same as above */
239 sizeof(asn_DEF_another_name_tags_3)
240 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
241 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000242 asn_MBR_another_name_3,
243 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000244 &asn_SPC_another_name_specs_3 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000245};
246
247static asn_TYPE_member_t asn_MBR_one_name_2[] = {
248 { ATF_NOFLAGS, 0, offsetof(struct one_name, choice.another_name),
249 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
250 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000251 .type = &asn_DEF_another_name_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000252 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000253 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
254 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000255 .name = "another-name"
256 },
257};
Lev Walkina7591b52014-10-12 18:37:35 -0700258static const asn_TYPE_tag2member_t asn_MAP_one_name_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700259 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000260};
Lev Walkin59b176e2005-11-26 11:25:14 +0000261static asn_CHOICE_specifics_t asn_SPC_one_name_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000262 sizeof(struct one_name),
263 offsetof(struct one_name, _asn_ctx),
264 offsetof(struct one_name, present),
265 sizeof(((struct one_name *)0)->present),
Lev Walkin59b176e2005-11-26 11:25:14 +0000266 asn_MAP_one_name_tag2el_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000267 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000268 .canonical_order = 0,
269 .ext_start = -1 /* Extensions start */
Lev Walkinb7f17972005-03-04 09:10:19 +0000270};
271static /* Use -fall-defs-global to expose */
272asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
273 "one-name",
274 "one-name",
275 CHOICE_free,
276 CHOICE_print,
277 CHOICE_constraint,
278 CHOICE_decode_ber,
279 CHOICE_encode_der,
280 CHOICE_decode_xer,
281 CHOICE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000282 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700283 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000284 CHOICE_outmost_tag,
285 0, /* No effective tags (pointer) */
286 0, /* No effective tags (count) */
287 0, /* No tags (pointer) */
288 0, /* No tags (count) */
Lev Walkin59b176e2005-11-26 11:25:14 +0000289 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000290 asn_MBR_one_name_2,
291 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000292 &asn_SPC_one_name_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000293};
294
295static asn_TYPE_member_t asn_MBR_Type1_1[] = {
296 { ATF_NOFLAGS, 0, offsetof(struct Type1, one_name),
297 .tag = -1 /* Ambiguous tag (CHOICE?) */,
298 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000299 .type = &asn_DEF_one_name_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000300 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000301 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
302 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000303 .name = "one-name"
304 },
305};
Lev Walkina7591b52014-10-12 18:37:35 -0700306static const ber_tlv_tag_t asn_DEF_Type1_tags_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000307 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
308};
Lev Walkina7591b52014-10-12 18:37:35 -0700309static const asn_TYPE_tag2member_t asn_MAP_Type1_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700310 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000311};
Lev Walkin59b176e2005-11-26 11:25:14 +0000312static asn_SEQUENCE_specifics_t asn_SPC_Type1_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000313 sizeof(struct Type1),
314 offsetof(struct Type1, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000315 asn_MAP_Type1_tag2el_1,
Lev Walkinb7f17972005-03-04 09:10:19 +0000316 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000317 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000318 -1, /* Start extensions */
319 -1 /* Stop extensions */
320};
321asn_TYPE_descriptor_t asn_DEF_Type1 = {
322 "Type1",
323 "Type1",
324 SEQUENCE_free,
325 SEQUENCE_print,
326 SEQUENCE_constraint,
327 SEQUENCE_decode_ber,
328 SEQUENCE_encode_der,
329 SEQUENCE_decode_xer,
330 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000331 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700332 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000333 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000334 asn_DEF_Type1_tags_1,
335 sizeof(asn_DEF_Type1_tags_1)
336 /sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
337 asn_DEF_Type1_tags_1, /* Same as above */
338 sizeof(asn_DEF_Type1_tags_1)
339 /sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
340 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000341 asn_MBR_Type1_1,
342 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000343 &asn_SPC_Type1_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000344};
345
346
347/*** <<< INCLUDES [Type2] >>> ***/
348
349#include <BIT_STRING.h>
350#include <INTEGER.h>
351#include <constr_SEQUENCE.h>
352#include <constr_SET.h>
353#include <constr_CHOICE.h>
354
355/*** <<< DEPS [Type2] >>> ***/
356
357typedef enum Type2_PR {
358 Type2_PR_NOTHING, /* No components present */
359 Type2_PR_one_name,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000360 Type2_PR_two_name
Lev Walkinb7f17972005-03-04 09:10:19 +0000361} Type2_PR;
Lev Walkinb02a8832005-08-13 23:51:47 +0000362typedef enum a {
363 a_one = 0
Lev Walkin171487e2006-03-21 07:25:18 +0000364} e_a;
Lev Walkinb7f17972005-03-04 09:10:19 +0000365
366/*
367 * Method of determining the components presence
368 */
369typedef enum two_name_PR {
370 two_name_PR_another_name, /* Member another_name is present */
371} two_name_PR;
Lev Walkinb02a8832005-08-13 23:51:47 +0000372typedef enum a {
373 a_one = 0
Lev Walkin171487e2006-03-21 07:25:18 +0000374} e_a;
Lev Walkinb7f17972005-03-04 09:10:19 +0000375
376/*** <<< TYPE-DECLS [Type2] >>> ***/
377
Lev Walkinb7f17972005-03-04 09:10:19 +0000378typedef struct Type2 {
379 Type2_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +0000380 union Type2_u {
Lev Walkinb7f17972005-03-04 09:10:19 +0000381 struct one_name {
382 struct another_name {
383 BIT_STRING_t a;
384 INTEGER_t b;
385
386 /* Context for parsing across buffer boundaries */
387 asn_struct_ctx_t _asn_ctx;
388 } another_name;
389
390 /* Context for parsing across buffer boundaries */
391 asn_struct_ctx_t _asn_ctx;
392 } one_name;
393 struct two_name {
394 struct another_name {
395 BIT_STRING_t a;
396 INTEGER_t b;
397
398 /* Context for parsing across buffer boundaries */
399 asn_struct_ctx_t _asn_ctx;
400 } another_name;
401
402 /* Presence bitmask: ASN_SET_ISPRESENT(ptwo_name, two_name_PR_x) */
403 unsigned int _presence_map
404 [((1+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
405
406 /* Context for parsing across buffer boundaries */
407 asn_struct_ctx_t _asn_ctx;
408 } two_name;
409 } choice;
410
411 /* Context for parsing across buffer boundaries */
412 asn_struct_ctx_t _asn_ctx;
413} Type2_t;
414
Lev Walkinc8285712005-03-04 22:18:20 +0000415/*** <<< FUNC-DECLS [Type2] >>> ***/
416
417extern asn_TYPE_descriptor_t asn_DEF_Type2;
418
Lev Walkinb7f17972005-03-04 09:10:19 +0000419/*** <<< CODE [Type2] >>> ***/
420
421static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000422memb_a_constraint_3(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000423 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkinb7f17972005-03-04 09:10:19 +0000424 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
425 size_t size;
426
427 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700428 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000429 "%s: value not given (%s:%d)",
430 td->name, __FILE__, __LINE__);
431 return -1;
432 }
433
434 if(st->size > 0) {
435 /* Size in bits */
Lev Walkin1b1c5fc2006-09-08 19:38:11 +0000436 size = 8 * st->size - (st->bits_unused & 0x07);
Lev Walkinb7f17972005-03-04 09:10:19 +0000437 } else {
438 size = 0;
439 }
440
441 if((size == 2)) {
442 /* Constraint check succeeded */
443 return 0;
444 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700445 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000446 "%s: constraint failed (%s:%d)",
447 td->name, __FILE__, __LINE__);
448 return -1;
449 }
450}
451
452static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000453memb_a_constraint_8(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000454 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkinb7f17972005-03-04 09:10:19 +0000455 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
456 size_t size;
457
458 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700459 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000460 "%s: value not given (%s:%d)",
461 td->name, __FILE__, __LINE__);
462 return -1;
463 }
464
465 if(st->size > 0) {
466 /* Size in bits */
Lev Walkin1b1c5fc2006-09-08 19:38:11 +0000467 size = 8 * st->size - (st->bits_unused & 0x07);
Lev Walkinb7f17972005-03-04 09:10:19 +0000468 } else {
469 size = 0;
470 }
471
472 if((size == 2)) {
473 /* Constraint check succeeded */
474 return 0;
475 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700476 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000477 "%s: constraint failed (%s:%d)",
478 td->name, __FILE__, __LINE__);
479 return -1;
480 }
481}
482
483
484/*** <<< STAT-DEFS [Type2] >>> ***/
485
486static asn_TYPE_member_t asn_MBR_another_name_3[] = {
487 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
488 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
489 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000490 .type = &asn_DEF_BIT_STRING,
Lev Walkin59b176e2005-11-26 11:25:14 +0000491 .memb_constraints = memb_a_constraint_3,
492 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
493 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000494 .name = "a"
495 },
496 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
497 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
498 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000499 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000500 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000501 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
502 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000503 .name = "b"
504 },
505};
Lev Walkina7591b52014-10-12 18:37:35 -0700506static const ber_tlv_tag_t asn_DEF_another_name_tags_3[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000507 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
508};
Lev Walkina7591b52014-10-12 18:37:35 -0700509static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_3[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700510 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b */
511 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a */
Lev Walkinb7f17972005-03-04 09:10:19 +0000512};
Lev Walkin59b176e2005-11-26 11:25:14 +0000513static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_3 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000514 sizeof(struct another_name),
515 offsetof(struct another_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000516 asn_MAP_another_name_tag2el_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000517 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000518 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000519 -1, /* Start extensions */
520 -1 /* Stop extensions */
521};
522static /* Use -fall-defs-global to expose */
523asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
524 "another-name",
525 "another-name",
526 SEQUENCE_free,
527 SEQUENCE_print,
528 SEQUENCE_constraint,
529 SEQUENCE_decode_ber,
530 SEQUENCE_encode_der,
531 SEQUENCE_decode_xer,
532 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000533 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700534 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000535 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000536 asn_DEF_another_name_tags_3,
537 sizeof(asn_DEF_another_name_tags_3)
538 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
539 asn_DEF_another_name_tags_3, /* Same as above */
540 sizeof(asn_DEF_another_name_tags_3)
541 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
542 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000543 asn_MBR_another_name_3,
544 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000545 &asn_SPC_another_name_specs_3 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000546};
547
548static asn_TYPE_member_t asn_MBR_one_name_2[] = {
549 { ATF_NOFLAGS, 0, offsetof(struct one_name, another_name),
550 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
551 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000552 .type = &asn_DEF_another_name_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000553 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000554 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
555 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000556 .name = "another-name"
557 },
558};
Lev Walkina7591b52014-10-12 18:37:35 -0700559static const ber_tlv_tag_t asn_DEF_one_name_tags_2[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000560 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
561};
Lev Walkina7591b52014-10-12 18:37:35 -0700562static const asn_TYPE_tag2member_t asn_MAP_one_name_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700563 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000564};
Lev Walkin59b176e2005-11-26 11:25:14 +0000565static asn_SEQUENCE_specifics_t asn_SPC_one_name_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000566 sizeof(struct one_name),
567 offsetof(struct one_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000568 asn_MAP_one_name_tag2el_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000569 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000570 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000571 -1, /* Start extensions */
572 -1 /* Stop extensions */
573};
574static /* Use -fall-defs-global to expose */
575asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
576 "one-name",
577 "one-name",
578 SEQUENCE_free,
579 SEQUENCE_print,
580 SEQUENCE_constraint,
581 SEQUENCE_decode_ber,
582 SEQUENCE_encode_der,
583 SEQUENCE_decode_xer,
584 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000585 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700586 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000587 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000588 asn_DEF_one_name_tags_2,
589 sizeof(asn_DEF_one_name_tags_2)
590 /sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
591 asn_DEF_one_name_tags_2, /* Same as above */
592 sizeof(asn_DEF_one_name_tags_2)
593 /sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
594 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000595 asn_MBR_one_name_2,
596 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000597 &asn_SPC_one_name_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000598};
599
Lev Walkine8318b82005-03-06 09:29:03 +0000600static asn_TYPE_member_t asn_MBR_another_name_8[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000601 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
602 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
603 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000604 .type = &asn_DEF_BIT_STRING,
Lev Walkin59b176e2005-11-26 11:25:14 +0000605 .memb_constraints = memb_a_constraint_8,
606 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
607 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000608 .name = "a"
609 },
610 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
611 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
612 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000613 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000614 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000615 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
616 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000617 .name = "b"
618 },
619};
Lev Walkina7591b52014-10-12 18:37:35 -0700620static const ber_tlv_tag_t asn_DEF_another_name_tags_8[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000621 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
622};
Lev Walkina7591b52014-10-12 18:37:35 -0700623static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_8[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700624 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b */
625 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a */
Lev Walkinb7f17972005-03-04 09:10:19 +0000626};
Lev Walkin59b176e2005-11-26 11:25:14 +0000627static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_8 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000628 sizeof(struct another_name),
629 offsetof(struct another_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000630 asn_MAP_another_name_tag2el_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000631 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000632 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000633 -1, /* Start extensions */
634 -1 /* Stop extensions */
635};
636static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000637asn_TYPE_descriptor_t asn_DEF_another_name_8 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000638 "another-name",
639 "another-name",
640 SEQUENCE_free,
641 SEQUENCE_print,
642 SEQUENCE_constraint,
643 SEQUENCE_decode_ber,
644 SEQUENCE_encode_der,
645 SEQUENCE_decode_xer,
646 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000647 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700648 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000649 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000650 asn_DEF_another_name_tags_8,
651 sizeof(asn_DEF_another_name_tags_8)
652 /sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
653 asn_DEF_another_name_tags_8, /* Same as above */
654 sizeof(asn_DEF_another_name_tags_8)
655 /sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
656 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000657 asn_MBR_another_name_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000658 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000659 &asn_SPC_another_name_specs_8 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000660};
661
Lev Walkine8318b82005-03-06 09:29:03 +0000662static asn_TYPE_member_t asn_MBR_two_name_7[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000663 { ATF_NOFLAGS, 0, offsetof(struct two_name, another_name),
664 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
665 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000666 .type = &asn_DEF_another_name_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000667 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000668 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
669 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000670 .name = "another-name"
671 },
672};
Lev Walkina7591b52014-10-12 18:37:35 -0700673static const ber_tlv_tag_t asn_DEF_two_name_tags_7[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000674 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
675};
Lev Walkina7591b52014-10-12 18:37:35 -0700676static const asn_TYPE_tag2member_t asn_MAP_two_name_tag2el_7[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700677 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000678};
Lev Walkina7591b52014-10-12 18:37:35 -0700679static const uint8_t asn_MAP_two_name_mmap_7[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000680 (1 << 7)
681};
Lev Walkin59b176e2005-11-26 11:25:14 +0000682static asn_SET_specifics_t asn_SPC_two_name_specs_7 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000683 sizeof(struct two_name),
684 offsetof(struct two_name, _asn_ctx),
685 offsetof(struct two_name, _presence_map),
Lev Walkin59b176e2005-11-26 11:25:14 +0000686 asn_MAP_two_name_tag2el_7,
Lev Walkinb7f17972005-03-04 09:10:19 +0000687 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000688 asn_MAP_two_name_tag2el_7, /* Same as above */
Lev Walkinb7f17972005-03-04 09:10:19 +0000689 1, /* Count of tags in the CXER map */
690 0, /* Whether extensible */
Lev Walkin46ef3f32017-07-06 08:47:53 -0700691 (const unsigned int *)asn_MAP_two_name_mmap_7 /* Mandatory elements map */
Lev Walkinb7f17972005-03-04 09:10:19 +0000692};
693static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000694asn_TYPE_descriptor_t asn_DEF_two_name_7 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000695 "two-name",
696 "two-name",
697 SET_free,
698 SET_print,
699 SET_constraint,
700 SET_decode_ber,
701 SET_encode_der,
702 SET_decode_xer,
703 SET_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000704 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700705 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000706 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000707 asn_DEF_two_name_tags_7,
708 sizeof(asn_DEF_two_name_tags_7)
709 /sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
710 asn_DEF_two_name_tags_7, /* Same as above */
711 sizeof(asn_DEF_two_name_tags_7)
712 /sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
713 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000714 asn_MBR_two_name_7,
Lev Walkinb7f17972005-03-04 09:10:19 +0000715 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000716 &asn_SPC_two_name_specs_7 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000717};
718
719static asn_TYPE_member_t asn_MBR_Type2_1[] = {
720 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.one_name),
721 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
722 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000723 .type = &asn_DEF_one_name_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000724 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000725 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
726 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000727 .name = "one-name"
728 },
729 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.two_name),
730 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
731 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000732 .type = &asn_DEF_two_name_7,
Lev Walkinb7f17972005-03-04 09:10:19 +0000733 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000734 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
735 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000736 .name = "two-name"
737 },
738};
Lev Walkina7591b52014-10-12 18:37:35 -0700739static const asn_TYPE_tag2member_t asn_MAP_Type2_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700740 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* one-name */
741 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000742};
Lev Walkin59b176e2005-11-26 11:25:14 +0000743static asn_CHOICE_specifics_t asn_SPC_Type2_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000744 sizeof(struct Type2),
745 offsetof(struct Type2, _asn_ctx),
746 offsetof(struct Type2, present),
747 sizeof(((struct Type2 *)0)->present),
Lev Walkin59b176e2005-11-26 11:25:14 +0000748 asn_MAP_Type2_tag2el_1,
Lev Walkinb7f17972005-03-04 09:10:19 +0000749 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000750 .canonical_order = 0,
751 .ext_start = -1 /* Extensions start */
Lev Walkinb7f17972005-03-04 09:10:19 +0000752};
753asn_TYPE_descriptor_t asn_DEF_Type2 = {
754 "Type2",
755 "Type2",
756 CHOICE_free,
757 CHOICE_print,
758 CHOICE_constraint,
759 CHOICE_decode_ber,
760 CHOICE_encode_der,
761 CHOICE_decode_xer,
762 CHOICE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000763 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700764 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000765 CHOICE_outmost_tag,
766 0, /* No effective tags (pointer) */
767 0, /* No effective tags (count) */
768 0, /* No tags (pointer) */
769 0, /* No tags (count) */
Lev Walkin59b176e2005-11-26 11:25:14 +0000770 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000771 asn_MBR_Type2_1,
772 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000773 &asn_SPC_Type2_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000774};
775