blob: ec6c12e523143e618f3d8e9169073fe8d9fe7ed0 [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 Walkinb7f17972005-03-04 09:10:19 +000084 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +000085 asn_DEF_Member_tags_2,
86 sizeof(asn_DEF_Member_tags_2)
87 /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
88 asn_DEF_Member_tags_2, /* Same as above */
89 sizeof(asn_DEF_Member_tags_2)
90 /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
91 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +000092 asn_MBR_Member_2,
93 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +000094 &asn_SPC_Member_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +000095};
96
97static asn_TYPE_member_t asn_MBR_Type_1[] = {
Lev Walkin8eb4b572005-08-16 16:57:17 +000098 { ATF_POINTER, 0, 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000099 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
100 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000101 .type = &asn_DEF_Member_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000102 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000103 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
104 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000105 .name = ""
106 },
107};
Lev Walkina7591b52014-10-12 18:37:35 -0700108static const ber_tlv_tag_t asn_DEF_Type_tags_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000109 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
110};
Lev Walkin59b176e2005-11-26 11:25:14 +0000111static asn_SET_OF_specifics_t asn_SPC_Type_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000112 sizeof(struct Type),
113 offsetof(struct Type, _asn_ctx),
114 0, /* XER encoding is XMLDelimitedItemList */
115};
116asn_TYPE_descriptor_t asn_DEF_Type = {
117 "Type",
118 "Type",
119 SET_OF_free,
120 SET_OF_print,
121 SET_OF_constraint,
122 SET_OF_decode_ber,
123 SET_OF_encode_der,
124 SET_OF_decode_xer,
125 SET_OF_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000126 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000127 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000128 asn_DEF_Type_tags_1,
129 sizeof(asn_DEF_Type_tags_1)
130 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
131 asn_DEF_Type_tags_1, /* Same as above */
132 sizeof(asn_DEF_Type_tags_1)
133 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
134 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000135 asn_MBR_Type_1,
136 1, /* Single element */
Lev Walkin59b176e2005-11-26 11:25:14 +0000137 &asn_SPC_Type_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000138};
139
140
141/*** <<< INCLUDES [Type1] >>> ***/
142
143#include <INTEGER.h>
144#include <constr_SEQUENCE.h>
145#include <constr_CHOICE.h>
146
147/*** <<< DEPS [Type1] >>> ***/
148
149typedef enum one_name_PR {
150 one_name_PR_NOTHING, /* No components present */
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000151 one_name_PR_another_name
Lev Walkinb7f17972005-03-04 09:10:19 +0000152} one_name_PR;
Lev Walkinb7f17972005-03-04 09:10:19 +0000153
154/*** <<< TYPE-DECLS [Type1] >>> ***/
155
Lev Walkinb7f17972005-03-04 09:10:19 +0000156typedef struct Type1 {
157 struct one_name {
158 one_name_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +0000159 union Type1__one_name_u {
Lev Walkinb7f17972005-03-04 09:10:19 +0000160 struct another_name {
161 INTEGER_t a;
162 INTEGER_t b;
163
164 /* Context for parsing across buffer boundaries */
165 asn_struct_ctx_t _asn_ctx;
166 } another_name;
167 } choice;
168
169 /* Context for parsing across buffer boundaries */
170 asn_struct_ctx_t _asn_ctx;
171 } one_name;
172
173 /* Context for parsing across buffer boundaries */
174 asn_struct_ctx_t _asn_ctx;
175} Type1_t;
176
Lev Walkinc8285712005-03-04 22:18:20 +0000177/*** <<< FUNC-DECLS [Type1] >>> ***/
178
179extern asn_TYPE_descriptor_t asn_DEF_Type1;
180
Lev Walkinb7f17972005-03-04 09:10:19 +0000181/*** <<< STAT-DEFS [Type1] >>> ***/
182
183static asn_TYPE_member_t asn_MBR_another_name_3[] = {
184 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
185 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
186 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000187 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000188 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000189 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
190 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000191 .name = "a"
192 },
193 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
194 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
195 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000196 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000197 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000198 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
199 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000200 .name = "b"
201 },
202};
Lev Walkina7591b52014-10-12 18:37:35 -0700203static const ber_tlv_tag_t asn_DEF_another_name_tags_3[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000204 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
205};
Lev Walkina7591b52014-10-12 18:37:35 -0700206static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_3[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700207 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* a */
208 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* b */
Lev Walkinb7f17972005-03-04 09:10:19 +0000209};
Lev Walkin59b176e2005-11-26 11:25:14 +0000210static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_3 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000211 sizeof(struct another_name),
212 offsetof(struct another_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000213 asn_MAP_another_name_tag2el_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000214 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000215 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000216 -1, /* Start extensions */
217 -1 /* Stop extensions */
218};
219static /* Use -fall-defs-global to expose */
220asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
221 "another-name",
222 "another-name",
223 SEQUENCE_free,
224 SEQUENCE_print,
225 SEQUENCE_constraint,
226 SEQUENCE_decode_ber,
227 SEQUENCE_encode_der,
228 SEQUENCE_decode_xer,
229 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000230 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000231 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000232 asn_DEF_another_name_tags_3,
233 sizeof(asn_DEF_another_name_tags_3)
234 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
235 asn_DEF_another_name_tags_3, /* Same as above */
236 sizeof(asn_DEF_another_name_tags_3)
237 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
238 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000239 asn_MBR_another_name_3,
240 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000241 &asn_SPC_another_name_specs_3 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000242};
243
244static asn_TYPE_member_t asn_MBR_one_name_2[] = {
245 { ATF_NOFLAGS, 0, offsetof(struct one_name, choice.another_name),
246 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
247 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000248 .type = &asn_DEF_another_name_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000249 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000250 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
251 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000252 .name = "another-name"
253 },
254};
Lev Walkina7591b52014-10-12 18:37:35 -0700255static const asn_TYPE_tag2member_t asn_MAP_one_name_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700256 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000257};
Lev Walkin59b176e2005-11-26 11:25:14 +0000258static asn_CHOICE_specifics_t asn_SPC_one_name_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000259 sizeof(struct one_name),
260 offsetof(struct one_name, _asn_ctx),
261 offsetof(struct one_name, present),
262 sizeof(((struct one_name *)0)->present),
Lev Walkin59b176e2005-11-26 11:25:14 +0000263 asn_MAP_one_name_tag2el_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000264 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000265 .canonical_order = 0,
266 .ext_start = -1 /* Extensions start */
Lev Walkinb7f17972005-03-04 09:10:19 +0000267};
268static /* Use -fall-defs-global to expose */
269asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
270 "one-name",
271 "one-name",
272 CHOICE_free,
273 CHOICE_print,
274 CHOICE_constraint,
275 CHOICE_decode_ber,
276 CHOICE_encode_der,
277 CHOICE_decode_xer,
278 CHOICE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000279 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000280 CHOICE_outmost_tag,
281 0, /* No effective tags (pointer) */
282 0, /* No effective tags (count) */
283 0, /* No tags (pointer) */
284 0, /* No tags (count) */
Lev Walkin59b176e2005-11-26 11:25:14 +0000285 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000286 asn_MBR_one_name_2,
287 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000288 &asn_SPC_one_name_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000289};
290
291static asn_TYPE_member_t asn_MBR_Type1_1[] = {
292 { ATF_NOFLAGS, 0, offsetof(struct Type1, one_name),
293 .tag = -1 /* Ambiguous tag (CHOICE?) */,
294 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000295 .type = &asn_DEF_one_name_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000296 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000297 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
298 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000299 .name = "one-name"
300 },
301};
Lev Walkina7591b52014-10-12 18:37:35 -0700302static const ber_tlv_tag_t asn_DEF_Type1_tags_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000303 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
304};
Lev Walkina7591b52014-10-12 18:37:35 -0700305static const asn_TYPE_tag2member_t asn_MAP_Type1_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700306 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000307};
Lev Walkin59b176e2005-11-26 11:25:14 +0000308static asn_SEQUENCE_specifics_t asn_SPC_Type1_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000309 sizeof(struct Type1),
310 offsetof(struct Type1, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000311 asn_MAP_Type1_tag2el_1,
Lev Walkinb7f17972005-03-04 09:10:19 +0000312 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000313 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000314 -1, /* Start extensions */
315 -1 /* Stop extensions */
316};
317asn_TYPE_descriptor_t asn_DEF_Type1 = {
318 "Type1",
319 "Type1",
320 SEQUENCE_free,
321 SEQUENCE_print,
322 SEQUENCE_constraint,
323 SEQUENCE_decode_ber,
324 SEQUENCE_encode_der,
325 SEQUENCE_decode_xer,
326 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000327 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000328 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000329 asn_DEF_Type1_tags_1,
330 sizeof(asn_DEF_Type1_tags_1)
331 /sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
332 asn_DEF_Type1_tags_1, /* Same as above */
333 sizeof(asn_DEF_Type1_tags_1)
334 /sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
335 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000336 asn_MBR_Type1_1,
337 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000338 &asn_SPC_Type1_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000339};
340
341
342/*** <<< INCLUDES [Type2] >>> ***/
343
344#include <BIT_STRING.h>
345#include <INTEGER.h>
346#include <constr_SEQUENCE.h>
347#include <constr_SET.h>
348#include <constr_CHOICE.h>
349
350/*** <<< DEPS [Type2] >>> ***/
351
352typedef enum Type2_PR {
353 Type2_PR_NOTHING, /* No components present */
354 Type2_PR_one_name,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000355 Type2_PR_two_name
Lev Walkinb7f17972005-03-04 09:10:19 +0000356} Type2_PR;
Lev Walkinb02a8832005-08-13 23:51:47 +0000357typedef enum a {
358 a_one = 0
Lev Walkin171487e2006-03-21 07:25:18 +0000359} e_a;
Lev Walkinb7f17972005-03-04 09:10:19 +0000360
361/*
362 * Method of determining the components presence
363 */
364typedef enum two_name_PR {
365 two_name_PR_another_name, /* Member another_name is present */
366} two_name_PR;
Lev Walkinb02a8832005-08-13 23:51:47 +0000367typedef enum a {
368 a_one = 0
Lev Walkin171487e2006-03-21 07:25:18 +0000369} e_a;
Lev Walkinb7f17972005-03-04 09:10:19 +0000370
371/*** <<< TYPE-DECLS [Type2] >>> ***/
372
Lev Walkinb7f17972005-03-04 09:10:19 +0000373typedef struct Type2 {
374 Type2_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +0000375 union Type2_u {
Lev Walkinb7f17972005-03-04 09:10:19 +0000376 struct one_name {
377 struct another_name {
378 BIT_STRING_t a;
379 INTEGER_t b;
380
381 /* Context for parsing across buffer boundaries */
382 asn_struct_ctx_t _asn_ctx;
383 } another_name;
384
385 /* Context for parsing across buffer boundaries */
386 asn_struct_ctx_t _asn_ctx;
387 } one_name;
388 struct two_name {
389 struct another_name {
390 BIT_STRING_t a;
391 INTEGER_t b;
392
393 /* Context for parsing across buffer boundaries */
394 asn_struct_ctx_t _asn_ctx;
395 } another_name;
396
397 /* Presence bitmask: ASN_SET_ISPRESENT(ptwo_name, two_name_PR_x) */
398 unsigned int _presence_map
399 [((1+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
400
401 /* Context for parsing across buffer boundaries */
402 asn_struct_ctx_t _asn_ctx;
403 } two_name;
404 } choice;
405
406 /* Context for parsing across buffer boundaries */
407 asn_struct_ctx_t _asn_ctx;
408} Type2_t;
409
Lev Walkinc8285712005-03-04 22:18:20 +0000410/*** <<< FUNC-DECLS [Type2] >>> ***/
411
412extern asn_TYPE_descriptor_t asn_DEF_Type2;
413
Lev Walkinb7f17972005-03-04 09:10:19 +0000414/*** <<< CODE [Type2] >>> ***/
415
416static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000417memb_a_constraint_3(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000418 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkinb7f17972005-03-04 09:10:19 +0000419 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
420 size_t size;
421
422 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700423 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000424 "%s: value not given (%s:%d)",
425 td->name, __FILE__, __LINE__);
426 return -1;
427 }
428
429 if(st->size > 0) {
430 /* Size in bits */
Lev Walkin1b1c5fc2006-09-08 19:38:11 +0000431 size = 8 * st->size - (st->bits_unused & 0x07);
Lev Walkinb7f17972005-03-04 09:10:19 +0000432 } else {
433 size = 0;
434 }
435
436 if((size == 2)) {
437 /* Constraint check succeeded */
438 return 0;
439 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700440 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000441 "%s: constraint failed (%s:%d)",
442 td->name, __FILE__, __LINE__);
443 return -1;
444 }
445}
446
447static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000448memb_a_constraint_8(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000449 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkinb7f17972005-03-04 09:10:19 +0000450 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
451 size_t size;
452
453 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700454 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000455 "%s: value not given (%s:%d)",
456 td->name, __FILE__, __LINE__);
457 return -1;
458 }
459
460 if(st->size > 0) {
461 /* Size in bits */
Lev Walkin1b1c5fc2006-09-08 19:38:11 +0000462 size = 8 * st->size - (st->bits_unused & 0x07);
Lev Walkinb7f17972005-03-04 09:10:19 +0000463 } else {
464 size = 0;
465 }
466
467 if((size == 2)) {
468 /* Constraint check succeeded */
469 return 0;
470 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700471 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000472 "%s: constraint failed (%s:%d)",
473 td->name, __FILE__, __LINE__);
474 return -1;
475 }
476}
477
478
479/*** <<< STAT-DEFS [Type2] >>> ***/
480
481static asn_TYPE_member_t asn_MBR_another_name_3[] = {
482 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
483 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
484 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000485 .type = &asn_DEF_BIT_STRING,
Lev Walkin59b176e2005-11-26 11:25:14 +0000486 .memb_constraints = memb_a_constraint_3,
487 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
488 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000489 .name = "a"
490 },
491 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
492 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
493 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000494 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000495 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000496 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
497 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000498 .name = "b"
499 },
500};
Lev Walkina7591b52014-10-12 18:37:35 -0700501static const ber_tlv_tag_t asn_DEF_another_name_tags_3[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000502 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
503};
Lev Walkina7591b52014-10-12 18:37:35 -0700504static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_3[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700505 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b */
506 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a */
Lev Walkinb7f17972005-03-04 09:10:19 +0000507};
Lev Walkin59b176e2005-11-26 11:25:14 +0000508static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_3 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000509 sizeof(struct another_name),
510 offsetof(struct another_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000511 asn_MAP_another_name_tag2el_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000512 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000513 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000514 -1, /* Start extensions */
515 -1 /* Stop extensions */
516};
517static /* Use -fall-defs-global to expose */
518asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
519 "another-name",
520 "another-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,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000528 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000529 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000530 asn_DEF_another_name_tags_3,
531 sizeof(asn_DEF_another_name_tags_3)
532 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
533 asn_DEF_another_name_tags_3, /* Same as above */
534 sizeof(asn_DEF_another_name_tags_3)
535 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
536 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000537 asn_MBR_another_name_3,
538 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000539 &asn_SPC_another_name_specs_3 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000540};
541
542static asn_TYPE_member_t asn_MBR_one_name_2[] = {
543 { ATF_NOFLAGS, 0, offsetof(struct one_name, another_name),
544 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
545 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000546 .type = &asn_DEF_another_name_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000547 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000548 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
549 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000550 .name = "another-name"
551 },
552};
Lev Walkina7591b52014-10-12 18:37:35 -0700553static const ber_tlv_tag_t asn_DEF_one_name_tags_2[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000554 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
555};
Lev Walkina7591b52014-10-12 18:37:35 -0700556static const asn_TYPE_tag2member_t asn_MAP_one_name_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700557 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000558};
Lev Walkin59b176e2005-11-26 11:25:14 +0000559static asn_SEQUENCE_specifics_t asn_SPC_one_name_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000560 sizeof(struct one_name),
561 offsetof(struct one_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000562 asn_MAP_one_name_tag2el_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000563 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000564 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000565 -1, /* Start extensions */
566 -1 /* Stop extensions */
567};
568static /* Use -fall-defs-global to expose */
569asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
570 "one-name",
571 "one-name",
572 SEQUENCE_free,
573 SEQUENCE_print,
574 SEQUENCE_constraint,
575 SEQUENCE_decode_ber,
576 SEQUENCE_encode_der,
577 SEQUENCE_decode_xer,
578 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000579 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000580 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000581 asn_DEF_one_name_tags_2,
582 sizeof(asn_DEF_one_name_tags_2)
583 /sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
584 asn_DEF_one_name_tags_2, /* Same as above */
585 sizeof(asn_DEF_one_name_tags_2)
586 /sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
587 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000588 asn_MBR_one_name_2,
589 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000590 &asn_SPC_one_name_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000591};
592
Lev Walkine8318b82005-03-06 09:29:03 +0000593static asn_TYPE_member_t asn_MBR_another_name_8[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000594 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
595 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
596 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000597 .type = &asn_DEF_BIT_STRING,
Lev Walkin59b176e2005-11-26 11:25:14 +0000598 .memb_constraints = memb_a_constraint_8,
599 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
600 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000601 .name = "a"
602 },
603 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
604 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
605 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000606 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000607 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000608 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
609 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000610 .name = "b"
611 },
612};
Lev Walkina7591b52014-10-12 18:37:35 -0700613static const ber_tlv_tag_t asn_DEF_another_name_tags_8[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000614 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
615};
Lev Walkina7591b52014-10-12 18:37:35 -0700616static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_8[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700617 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b */
618 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a */
Lev Walkinb7f17972005-03-04 09:10:19 +0000619};
Lev Walkin59b176e2005-11-26 11:25:14 +0000620static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_8 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000621 sizeof(struct another_name),
622 offsetof(struct another_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000623 asn_MAP_another_name_tag2el_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000624 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000625 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000626 -1, /* Start extensions */
627 -1 /* Stop extensions */
628};
629static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000630asn_TYPE_descriptor_t asn_DEF_another_name_8 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000631 "another-name",
632 "another-name",
633 SEQUENCE_free,
634 SEQUENCE_print,
635 SEQUENCE_constraint,
636 SEQUENCE_decode_ber,
637 SEQUENCE_encode_der,
638 SEQUENCE_decode_xer,
639 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000640 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000641 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000642 asn_DEF_another_name_tags_8,
643 sizeof(asn_DEF_another_name_tags_8)
644 /sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
645 asn_DEF_another_name_tags_8, /* Same as above */
646 sizeof(asn_DEF_another_name_tags_8)
647 /sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
648 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000649 asn_MBR_another_name_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000650 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000651 &asn_SPC_another_name_specs_8 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000652};
653
Lev Walkine8318b82005-03-06 09:29:03 +0000654static asn_TYPE_member_t asn_MBR_two_name_7[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000655 { ATF_NOFLAGS, 0, offsetof(struct two_name, another_name),
656 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
657 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000658 .type = &asn_DEF_another_name_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000659 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000660 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
661 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000662 .name = "another-name"
663 },
664};
Lev Walkina7591b52014-10-12 18:37:35 -0700665static const ber_tlv_tag_t asn_DEF_two_name_tags_7[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000666 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
667};
Lev Walkina7591b52014-10-12 18:37:35 -0700668static const asn_TYPE_tag2member_t asn_MAP_two_name_tag2el_7[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700669 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000670};
Lev Walkina7591b52014-10-12 18:37:35 -0700671static const uint8_t asn_MAP_two_name_mmap_7[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000672 (1 << 7)
673};
Lev Walkin59b176e2005-11-26 11:25:14 +0000674static asn_SET_specifics_t asn_SPC_two_name_specs_7 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000675 sizeof(struct two_name),
676 offsetof(struct two_name, _asn_ctx),
677 offsetof(struct two_name, _presence_map),
Lev Walkin59b176e2005-11-26 11:25:14 +0000678 asn_MAP_two_name_tag2el_7,
Lev Walkinb7f17972005-03-04 09:10:19 +0000679 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000680 asn_MAP_two_name_tag2el_7, /* Same as above */
Lev Walkinb7f17972005-03-04 09:10:19 +0000681 1, /* Count of tags in the CXER map */
682 0, /* Whether extensible */
Lev Walkin59b176e2005-11-26 11:25:14 +0000683 (unsigned int *)asn_MAP_two_name_mmap_7 /* Mandatory elements map */
Lev Walkinb7f17972005-03-04 09:10:19 +0000684};
685static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000686asn_TYPE_descriptor_t asn_DEF_two_name_7 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000687 "two-name",
688 "two-name",
689 SET_free,
690 SET_print,
691 SET_constraint,
692 SET_decode_ber,
693 SET_encode_der,
694 SET_decode_xer,
695 SET_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000696 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000697 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000698 asn_DEF_two_name_tags_7,
699 sizeof(asn_DEF_two_name_tags_7)
700 /sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
701 asn_DEF_two_name_tags_7, /* Same as above */
702 sizeof(asn_DEF_two_name_tags_7)
703 /sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
704 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000705 asn_MBR_two_name_7,
Lev Walkinb7f17972005-03-04 09:10:19 +0000706 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000707 &asn_SPC_two_name_specs_7 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000708};
709
710static asn_TYPE_member_t asn_MBR_Type2_1[] = {
711 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.one_name),
712 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
713 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000714 .type = &asn_DEF_one_name_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000715 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000716 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
717 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000718 .name = "one-name"
719 },
720 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.two_name),
721 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
722 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000723 .type = &asn_DEF_two_name_7,
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 = "two-name"
728 },
729};
Lev Walkina7591b52014-10-12 18:37:35 -0700730static const asn_TYPE_tag2member_t asn_MAP_Type2_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700731 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* one-name */
732 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000733};
Lev Walkin59b176e2005-11-26 11:25:14 +0000734static asn_CHOICE_specifics_t asn_SPC_Type2_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000735 sizeof(struct Type2),
736 offsetof(struct Type2, _asn_ctx),
737 offsetof(struct Type2, present),
738 sizeof(((struct Type2 *)0)->present),
Lev Walkin59b176e2005-11-26 11:25:14 +0000739 asn_MAP_Type2_tag2el_1,
Lev Walkinb7f17972005-03-04 09:10:19 +0000740 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000741 .canonical_order = 0,
742 .ext_start = -1 /* Extensions start */
Lev Walkinb7f17972005-03-04 09:10:19 +0000743};
744asn_TYPE_descriptor_t asn_DEF_Type2 = {
745 "Type2",
746 "Type2",
747 CHOICE_free,
748 CHOICE_print,
749 CHOICE_constraint,
750 CHOICE_decode_ber,
751 CHOICE_encode_der,
752 CHOICE_decode_xer,
753 CHOICE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000754 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000755 CHOICE_outmost_tag,
756 0, /* No effective tags (pointer) */
757 0, /* No effective tags (count) */
758 0, /* No tags (pointer) */
759 0, /* No tags (count) */
Lev Walkin59b176e2005-11-26 11:25:14 +0000760 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000761 asn_MBR_Type2_1,
762 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000763 &asn_SPC_Type2_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000764};
765