blob: 51c474b31a41f91290dcb84122c6059b0fa88307 [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
Lev Walkinb7f17972005-03-04 09:10:19 +000010/*** <<< TYPE-DECLS [Type] >>> ***/
11
Lev Walkinb7f17972005-03-04 09:10:19 +000012typedef struct Type {
13 A_SET_OF(struct Member {
14 Type1_t t1;
15 Type2_t t2;
16
17 /* Context for parsing across buffer boundaries */
18 asn_struct_ctx_t _asn_ctx;
19 } ) list;
20
21 /* Context for parsing across buffer boundaries */
22 asn_struct_ctx_t _asn_ctx;
23} Type_t;
24
Lev Walkinc8285712005-03-04 22:18:20 +000025/*** <<< FUNC-DECLS [Type] >>> ***/
26
27extern asn_TYPE_descriptor_t asn_DEF_Type;
28
Lev Walkinb7f17972005-03-04 09:10:19 +000029/*** <<< STAT-DEFS [Type] >>> ***/
30
31static asn_TYPE_member_t asn_MBR_Member_2[] = {
32 { ATF_NOFLAGS, 0, offsetof(struct Member, t1),
33 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
34 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000035 .type = &asn_DEF_Type1,
Lev Walkinb7f17972005-03-04 09:10:19 +000036 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +000037 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
38 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000039 .name = "t1"
40 },
41 { ATF_NOFLAGS, 0, offsetof(struct Member, t2),
42 .tag = -1 /* Ambiguous tag (CHOICE?) */,
43 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000044 .type = &asn_DEF_Type2,
Lev Walkinb7f17972005-03-04 09:10:19 +000045 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +000046 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
47 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000048 .name = "t2"
49 },
50};
Lev Walkina7591b52014-10-12 18:37:35 -070051static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +000052 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
53};
Lev Walkina7591b52014-10-12 18:37:35 -070054static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -070055 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* t1 */
56 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* one-name */
57 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name */
Lev Walkinb7f17972005-03-04 09:10:19 +000058};
Lev Walkin59b176e2005-11-26 11:25:14 +000059static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +000060 sizeof(struct Member),
61 offsetof(struct Member, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +000062 asn_MAP_Member_tag2el_2,
Lev Walkinb7f17972005-03-04 09:10:19 +000063 3, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +000064 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +000065 -1, /* Start extensions */
66 -1 /* Stop extensions */
67};
68static /* Use -fall-defs-global to expose */
69asn_TYPE_descriptor_t asn_DEF_Member_2 = {
Lev Walkin59b176e2005-11-26 11:25:14 +000070 "SEQUENCE",
71 "SEQUENCE",
Lev Walkinb7f17972005-03-04 09:10:19 +000072 SEQUENCE_free,
73 SEQUENCE_print,
74 SEQUENCE_constraint,
75 SEQUENCE_decode_ber,
76 SEQUENCE_encode_der,
77 SEQUENCE_decode_xer,
78 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +000079 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +000080 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +000081 asn_DEF_Member_tags_2,
82 sizeof(asn_DEF_Member_tags_2)
83 /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
84 asn_DEF_Member_tags_2, /* Same as above */
85 sizeof(asn_DEF_Member_tags_2)
86 /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
87 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +000088 asn_MBR_Member_2,
89 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +000090 &asn_SPC_Member_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +000091};
92
93static asn_TYPE_member_t asn_MBR_Type_1[] = {
Lev Walkin8eb4b572005-08-16 16:57:17 +000094 { ATF_POINTER, 0, 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000095 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
96 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000097 .type = &asn_DEF_Member_2,
Lev Walkinb7f17972005-03-04 09:10:19 +000098 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +000099 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
100 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000101 .name = ""
102 },
103};
Lev Walkina7591b52014-10-12 18:37:35 -0700104static const ber_tlv_tag_t asn_DEF_Type_tags_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000105 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
106};
Lev Walkin59b176e2005-11-26 11:25:14 +0000107static asn_SET_OF_specifics_t asn_SPC_Type_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000108 sizeof(struct Type),
109 offsetof(struct Type, _asn_ctx),
110 0, /* XER encoding is XMLDelimitedItemList */
111};
112asn_TYPE_descriptor_t asn_DEF_Type = {
113 "Type",
114 "Type",
115 SET_OF_free,
116 SET_OF_print,
117 SET_OF_constraint,
118 SET_OF_decode_ber,
119 SET_OF_encode_der,
120 SET_OF_decode_xer,
121 SET_OF_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000122 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000123 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000124 asn_DEF_Type_tags_1,
125 sizeof(asn_DEF_Type_tags_1)
126 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
127 asn_DEF_Type_tags_1, /* Same as above */
128 sizeof(asn_DEF_Type_tags_1)
129 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
130 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000131 asn_MBR_Type_1,
132 1, /* Single element */
Lev Walkin59b176e2005-11-26 11:25:14 +0000133 &asn_SPC_Type_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000134};
135
136
137/*** <<< INCLUDES [Type1] >>> ***/
138
139#include <INTEGER.h>
140#include <constr_SEQUENCE.h>
141#include <constr_CHOICE.h>
142
143/*** <<< DEPS [Type1] >>> ***/
144
145typedef enum one_name_PR {
146 one_name_PR_NOTHING, /* No components present */
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000147 one_name_PR_another_name
Lev Walkinb7f17972005-03-04 09:10:19 +0000148} one_name_PR;
Lev Walkinb7f17972005-03-04 09:10:19 +0000149
150/*** <<< TYPE-DECLS [Type1] >>> ***/
151
Lev Walkinb7f17972005-03-04 09:10:19 +0000152typedef struct Type1 {
153 struct one_name {
154 one_name_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +0000155 union Type1__one_name_u {
Lev Walkinb7f17972005-03-04 09:10:19 +0000156 struct another_name {
157 INTEGER_t a;
158 INTEGER_t b;
159
160 /* Context for parsing across buffer boundaries */
161 asn_struct_ctx_t _asn_ctx;
162 } another_name;
163 } choice;
164
165 /* Context for parsing across buffer boundaries */
166 asn_struct_ctx_t _asn_ctx;
167 } one_name;
168
169 /* Context for parsing across buffer boundaries */
170 asn_struct_ctx_t _asn_ctx;
171} Type1_t;
172
Lev Walkinc8285712005-03-04 22:18:20 +0000173/*** <<< FUNC-DECLS [Type1] >>> ***/
174
175extern asn_TYPE_descriptor_t asn_DEF_Type1;
176
Lev Walkinb7f17972005-03-04 09:10:19 +0000177/*** <<< STAT-DEFS [Type1] >>> ***/
178
179static asn_TYPE_member_t asn_MBR_another_name_3[] = {
180 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
181 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
182 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000183 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000184 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000185 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
186 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000187 .name = "a"
188 },
189 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
190 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
191 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000192 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000193 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000194 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
195 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000196 .name = "b"
197 },
198};
Lev Walkina7591b52014-10-12 18:37:35 -0700199static const ber_tlv_tag_t asn_DEF_another_name_tags_3[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000200 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
201};
Lev Walkina7591b52014-10-12 18:37:35 -0700202static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_3[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700203 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* a */
204 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* b */
Lev Walkinb7f17972005-03-04 09:10:19 +0000205};
Lev Walkin59b176e2005-11-26 11:25:14 +0000206static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_3 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000207 sizeof(struct another_name),
208 offsetof(struct another_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000209 asn_MAP_another_name_tag2el_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000210 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000211 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000212 -1, /* Start extensions */
213 -1 /* Stop extensions */
214};
215static /* Use -fall-defs-global to expose */
216asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
217 "another-name",
218 "another-name",
219 SEQUENCE_free,
220 SEQUENCE_print,
221 SEQUENCE_constraint,
222 SEQUENCE_decode_ber,
223 SEQUENCE_encode_der,
224 SEQUENCE_decode_xer,
225 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000226 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000227 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000228 asn_DEF_another_name_tags_3,
229 sizeof(asn_DEF_another_name_tags_3)
230 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
231 asn_DEF_another_name_tags_3, /* Same as above */
232 sizeof(asn_DEF_another_name_tags_3)
233 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
234 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000235 asn_MBR_another_name_3,
236 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000237 &asn_SPC_another_name_specs_3 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000238};
239
240static asn_TYPE_member_t asn_MBR_one_name_2[] = {
241 { ATF_NOFLAGS, 0, offsetof(struct one_name, choice.another_name),
242 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
243 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000244 .type = &asn_DEF_another_name_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000245 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000246 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
247 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000248 .name = "another-name"
249 },
250};
Lev Walkina7591b52014-10-12 18:37:35 -0700251static const asn_TYPE_tag2member_t asn_MAP_one_name_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700252 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000253};
Lev Walkin59b176e2005-11-26 11:25:14 +0000254static asn_CHOICE_specifics_t asn_SPC_one_name_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000255 sizeof(struct one_name),
256 offsetof(struct one_name, _asn_ctx),
257 offsetof(struct one_name, present),
258 sizeof(((struct one_name *)0)->present),
Lev Walkin59b176e2005-11-26 11:25:14 +0000259 asn_MAP_one_name_tag2el_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000260 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000261 .canonical_order = 0,
262 .ext_start = -1 /* Extensions start */
Lev Walkinb7f17972005-03-04 09:10:19 +0000263};
264static /* Use -fall-defs-global to expose */
265asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
266 "one-name",
267 "one-name",
268 CHOICE_free,
269 CHOICE_print,
270 CHOICE_constraint,
271 CHOICE_decode_ber,
272 CHOICE_encode_der,
273 CHOICE_decode_xer,
274 CHOICE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000275 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000276 CHOICE_outmost_tag,
277 0, /* No effective tags (pointer) */
278 0, /* No effective tags (count) */
279 0, /* No tags (pointer) */
280 0, /* No tags (count) */
Lev Walkin59b176e2005-11-26 11:25:14 +0000281 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000282 asn_MBR_one_name_2,
283 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000284 &asn_SPC_one_name_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000285};
286
287static asn_TYPE_member_t asn_MBR_Type1_1[] = {
288 { ATF_NOFLAGS, 0, offsetof(struct Type1, one_name),
289 .tag = -1 /* Ambiguous tag (CHOICE?) */,
290 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000291 .type = &asn_DEF_one_name_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000292 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000293 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
294 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000295 .name = "one-name"
296 },
297};
Lev Walkina7591b52014-10-12 18:37:35 -0700298static const ber_tlv_tag_t asn_DEF_Type1_tags_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000299 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
300};
Lev Walkina7591b52014-10-12 18:37:35 -0700301static const asn_TYPE_tag2member_t asn_MAP_Type1_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700302 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000303};
Lev Walkin59b176e2005-11-26 11:25:14 +0000304static asn_SEQUENCE_specifics_t asn_SPC_Type1_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000305 sizeof(struct Type1),
306 offsetof(struct Type1, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000307 asn_MAP_Type1_tag2el_1,
Lev Walkinb7f17972005-03-04 09:10:19 +0000308 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000309 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000310 -1, /* Start extensions */
311 -1 /* Stop extensions */
312};
313asn_TYPE_descriptor_t asn_DEF_Type1 = {
314 "Type1",
315 "Type1",
316 SEQUENCE_free,
317 SEQUENCE_print,
318 SEQUENCE_constraint,
319 SEQUENCE_decode_ber,
320 SEQUENCE_encode_der,
321 SEQUENCE_decode_xer,
322 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000323 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000324 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000325 asn_DEF_Type1_tags_1,
326 sizeof(asn_DEF_Type1_tags_1)
327 /sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
328 asn_DEF_Type1_tags_1, /* Same as above */
329 sizeof(asn_DEF_Type1_tags_1)
330 /sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
331 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000332 asn_MBR_Type1_1,
333 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000334 &asn_SPC_Type1_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000335};
336
337
338/*** <<< INCLUDES [Type2] >>> ***/
339
340#include <BIT_STRING.h>
341#include <INTEGER.h>
342#include <constr_SEQUENCE.h>
343#include <constr_SET.h>
344#include <constr_CHOICE.h>
345
346/*** <<< DEPS [Type2] >>> ***/
347
348typedef enum Type2_PR {
349 Type2_PR_NOTHING, /* No components present */
350 Type2_PR_one_name,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000351 Type2_PR_two_name
Lev Walkinb7f17972005-03-04 09:10:19 +0000352} Type2_PR;
Lev Walkinb02a8832005-08-13 23:51:47 +0000353typedef enum a {
354 a_one = 0
Lev Walkin171487e2006-03-21 07:25:18 +0000355} e_a;
Lev Walkinb7f17972005-03-04 09:10:19 +0000356
357/*
358 * Method of determining the components presence
359 */
360typedef enum two_name_PR {
361 two_name_PR_another_name, /* Member another_name is present */
362} two_name_PR;
Lev Walkinb02a8832005-08-13 23:51:47 +0000363typedef enum a {
364 a_one = 0
Lev Walkin171487e2006-03-21 07:25:18 +0000365} e_a;
Lev Walkinb7f17972005-03-04 09:10:19 +0000366
367/*** <<< TYPE-DECLS [Type2] >>> ***/
368
Lev Walkinb7f17972005-03-04 09:10:19 +0000369typedef struct Type2 {
370 Type2_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +0000371 union Type2_u {
Lev Walkinb7f17972005-03-04 09:10:19 +0000372 struct one_name {
373 struct another_name {
374 BIT_STRING_t a;
375 INTEGER_t b;
376
377 /* Context for parsing across buffer boundaries */
378 asn_struct_ctx_t _asn_ctx;
379 } another_name;
380
381 /* Context for parsing across buffer boundaries */
382 asn_struct_ctx_t _asn_ctx;
383 } one_name;
384 struct two_name {
385 struct another_name {
386 BIT_STRING_t a;
387 INTEGER_t b;
388
389 /* Context for parsing across buffer boundaries */
390 asn_struct_ctx_t _asn_ctx;
391 } another_name;
392
393 /* Presence bitmask: ASN_SET_ISPRESENT(ptwo_name, two_name_PR_x) */
394 unsigned int _presence_map
395 [((1+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
396
397 /* Context for parsing across buffer boundaries */
398 asn_struct_ctx_t _asn_ctx;
399 } two_name;
400 } choice;
401
402 /* Context for parsing across buffer boundaries */
403 asn_struct_ctx_t _asn_ctx;
404} Type2_t;
405
Lev Walkinc8285712005-03-04 22:18:20 +0000406/*** <<< FUNC-DECLS [Type2] >>> ***/
407
408extern asn_TYPE_descriptor_t asn_DEF_Type2;
409
Lev Walkinb7f17972005-03-04 09:10:19 +0000410/*** <<< CODE [Type2] >>> ***/
411
412static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000413memb_a_constraint_3(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000414 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkinb7f17972005-03-04 09:10:19 +0000415 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
416 size_t size;
417
418 if(!sptr) {
Lev Walkin739d9bf2006-07-13 13:28:32 +0000419 _ASN_CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000420 "%s: value not given (%s:%d)",
421 td->name, __FILE__, __LINE__);
422 return -1;
423 }
424
425 if(st->size > 0) {
426 /* Size in bits */
Lev Walkin1b1c5fc2006-09-08 19:38:11 +0000427 size = 8 * st->size - (st->bits_unused & 0x07);
Lev Walkinb7f17972005-03-04 09:10:19 +0000428 } else {
429 size = 0;
430 }
431
432 if((size == 2)) {
433 /* Constraint check succeeded */
434 return 0;
435 } else {
Lev Walkin739d9bf2006-07-13 13:28:32 +0000436 _ASN_CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000437 "%s: constraint failed (%s:%d)",
438 td->name, __FILE__, __LINE__);
439 return -1;
440 }
441}
442
443static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000444memb_a_constraint_8(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000445 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkinb7f17972005-03-04 09:10:19 +0000446 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
447 size_t size;
448
449 if(!sptr) {
Lev Walkin739d9bf2006-07-13 13:28:32 +0000450 _ASN_CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000451 "%s: value not given (%s:%d)",
452 td->name, __FILE__, __LINE__);
453 return -1;
454 }
455
456 if(st->size > 0) {
457 /* Size in bits */
Lev Walkin1b1c5fc2006-09-08 19:38:11 +0000458 size = 8 * st->size - (st->bits_unused & 0x07);
Lev Walkinb7f17972005-03-04 09:10:19 +0000459 } else {
460 size = 0;
461 }
462
463 if((size == 2)) {
464 /* Constraint check succeeded */
465 return 0;
466 } else {
Lev Walkin739d9bf2006-07-13 13:28:32 +0000467 _ASN_CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000468 "%s: constraint failed (%s:%d)",
469 td->name, __FILE__, __LINE__);
470 return -1;
471 }
472}
473
474
475/*** <<< STAT-DEFS [Type2] >>> ***/
476
477static asn_TYPE_member_t asn_MBR_another_name_3[] = {
478 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
479 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
480 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000481 .type = &asn_DEF_BIT_STRING,
Lev Walkin59b176e2005-11-26 11:25:14 +0000482 .memb_constraints = memb_a_constraint_3,
483 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
484 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000485 .name = "a"
486 },
487 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
488 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
489 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000490 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000491 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000492 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
493 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000494 .name = "b"
495 },
496};
Lev Walkina7591b52014-10-12 18:37:35 -0700497static const ber_tlv_tag_t asn_DEF_another_name_tags_3[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000498 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
499};
Lev Walkina7591b52014-10-12 18:37:35 -0700500static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_3[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700501 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b */
502 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a */
Lev Walkinb7f17972005-03-04 09:10:19 +0000503};
Lev Walkin59b176e2005-11-26 11:25:14 +0000504static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_3 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000505 sizeof(struct another_name),
506 offsetof(struct another_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000507 asn_MAP_another_name_tag2el_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000508 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000509 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000510 -1, /* Start extensions */
511 -1 /* Stop extensions */
512};
513static /* Use -fall-defs-global to expose */
514asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
515 "another-name",
516 "another-name",
517 SEQUENCE_free,
518 SEQUENCE_print,
519 SEQUENCE_constraint,
520 SEQUENCE_decode_ber,
521 SEQUENCE_encode_der,
522 SEQUENCE_decode_xer,
523 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000524 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000525 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000526 asn_DEF_another_name_tags_3,
527 sizeof(asn_DEF_another_name_tags_3)
528 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
529 asn_DEF_another_name_tags_3, /* Same as above */
530 sizeof(asn_DEF_another_name_tags_3)
531 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
532 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000533 asn_MBR_another_name_3,
534 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000535 &asn_SPC_another_name_specs_3 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000536};
537
538static asn_TYPE_member_t asn_MBR_one_name_2[] = {
539 { ATF_NOFLAGS, 0, offsetof(struct one_name, another_name),
540 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
541 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000542 .type = &asn_DEF_another_name_3,
Lev Walkinb7f17972005-03-04 09:10:19 +0000543 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000544 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
545 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000546 .name = "another-name"
547 },
548};
Lev Walkina7591b52014-10-12 18:37:35 -0700549static const ber_tlv_tag_t asn_DEF_one_name_tags_2[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000550 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
551};
Lev Walkina7591b52014-10-12 18:37:35 -0700552static const asn_TYPE_tag2member_t asn_MAP_one_name_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700553 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000554};
Lev Walkin59b176e2005-11-26 11:25:14 +0000555static asn_SEQUENCE_specifics_t asn_SPC_one_name_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000556 sizeof(struct one_name),
557 offsetof(struct one_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000558 asn_MAP_one_name_tag2el_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000559 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000560 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000561 -1, /* Start extensions */
562 -1 /* Stop extensions */
563};
564static /* Use -fall-defs-global to expose */
565asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
566 "one-name",
567 "one-name",
568 SEQUENCE_free,
569 SEQUENCE_print,
570 SEQUENCE_constraint,
571 SEQUENCE_decode_ber,
572 SEQUENCE_encode_der,
573 SEQUENCE_decode_xer,
574 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000575 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000576 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000577 asn_DEF_one_name_tags_2,
578 sizeof(asn_DEF_one_name_tags_2)
579 /sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
580 asn_DEF_one_name_tags_2, /* Same as above */
581 sizeof(asn_DEF_one_name_tags_2)
582 /sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
583 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000584 asn_MBR_one_name_2,
585 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000586 &asn_SPC_one_name_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000587};
588
Lev Walkine8318b82005-03-06 09:29:03 +0000589static asn_TYPE_member_t asn_MBR_another_name_8[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000590 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
591 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
592 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000593 .type = &asn_DEF_BIT_STRING,
Lev Walkin59b176e2005-11-26 11:25:14 +0000594 .memb_constraints = memb_a_constraint_8,
595 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
596 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000597 .name = "a"
598 },
599 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
600 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
601 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000602 .type = &asn_DEF_INTEGER,
Lev Walkinb7f17972005-03-04 09:10:19 +0000603 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000604 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
605 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000606 .name = "b"
607 },
608};
Lev Walkina7591b52014-10-12 18:37:35 -0700609static const ber_tlv_tag_t asn_DEF_another_name_tags_8[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000610 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
611};
Lev Walkina7591b52014-10-12 18:37:35 -0700612static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_8[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700613 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b */
614 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a */
Lev Walkinb7f17972005-03-04 09:10:19 +0000615};
Lev Walkin59b176e2005-11-26 11:25:14 +0000616static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_8 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000617 sizeof(struct another_name),
618 offsetof(struct another_name, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000619 asn_MAP_another_name_tag2el_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000620 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000621 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000622 -1, /* Start extensions */
623 -1 /* Stop extensions */
624};
625static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000626asn_TYPE_descriptor_t asn_DEF_another_name_8 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000627 "another-name",
628 "another-name",
629 SEQUENCE_free,
630 SEQUENCE_print,
631 SEQUENCE_constraint,
632 SEQUENCE_decode_ber,
633 SEQUENCE_encode_der,
634 SEQUENCE_decode_xer,
635 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000636 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000637 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000638 asn_DEF_another_name_tags_8,
639 sizeof(asn_DEF_another_name_tags_8)
640 /sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
641 asn_DEF_another_name_tags_8, /* Same as above */
642 sizeof(asn_DEF_another_name_tags_8)
643 /sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
644 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000645 asn_MBR_another_name_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000646 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000647 &asn_SPC_another_name_specs_8 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000648};
649
Lev Walkine8318b82005-03-06 09:29:03 +0000650static asn_TYPE_member_t asn_MBR_two_name_7[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000651 { ATF_NOFLAGS, 0, offsetof(struct two_name, another_name),
652 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
653 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000654 .type = &asn_DEF_another_name_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000655 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000656 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
657 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000658 .name = "another-name"
659 },
660};
Lev Walkina7591b52014-10-12 18:37:35 -0700661static const ber_tlv_tag_t asn_DEF_two_name_tags_7[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000662 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
663};
Lev Walkina7591b52014-10-12 18:37:35 -0700664static const asn_TYPE_tag2member_t asn_MAP_two_name_tag2el_7[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700665 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000666};
Lev Walkina7591b52014-10-12 18:37:35 -0700667static const uint8_t asn_MAP_two_name_mmap_7[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000668 (1 << 7)
669};
Lev Walkin59b176e2005-11-26 11:25:14 +0000670static asn_SET_specifics_t asn_SPC_two_name_specs_7 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000671 sizeof(struct two_name),
672 offsetof(struct two_name, _asn_ctx),
673 offsetof(struct two_name, _presence_map),
Lev Walkin59b176e2005-11-26 11:25:14 +0000674 asn_MAP_two_name_tag2el_7,
Lev Walkinb7f17972005-03-04 09:10:19 +0000675 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000676 asn_MAP_two_name_tag2el_7, /* Same as above */
Lev Walkinb7f17972005-03-04 09:10:19 +0000677 1, /* Count of tags in the CXER map */
678 0, /* Whether extensible */
Lev Walkin59b176e2005-11-26 11:25:14 +0000679 (unsigned int *)asn_MAP_two_name_mmap_7 /* Mandatory elements map */
Lev Walkinb7f17972005-03-04 09:10:19 +0000680};
681static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000682asn_TYPE_descriptor_t asn_DEF_two_name_7 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000683 "two-name",
684 "two-name",
685 SET_free,
686 SET_print,
687 SET_constraint,
688 SET_decode_ber,
689 SET_encode_der,
690 SET_decode_xer,
691 SET_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000692 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000693 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000694 asn_DEF_two_name_tags_7,
695 sizeof(asn_DEF_two_name_tags_7)
696 /sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
697 asn_DEF_two_name_tags_7, /* Same as above */
698 sizeof(asn_DEF_two_name_tags_7)
699 /sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
700 0, /* No PER visible constraints */
Lev Walkine8318b82005-03-06 09:29:03 +0000701 asn_MBR_two_name_7,
Lev Walkinb7f17972005-03-04 09:10:19 +0000702 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000703 &asn_SPC_two_name_specs_7 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000704};
705
706static asn_TYPE_member_t asn_MBR_Type2_1[] = {
707 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.one_name),
708 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
709 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000710 .type = &asn_DEF_one_name_2,
Lev Walkinb7f17972005-03-04 09:10:19 +0000711 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000712 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
713 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000714 .name = "one-name"
715 },
716 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.two_name),
717 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
718 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000719 .type = &asn_DEF_two_name_7,
Lev Walkinb7f17972005-03-04 09:10:19 +0000720 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000721 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
722 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000723 .name = "two-name"
724 },
725};
Lev Walkina7591b52014-10-12 18:37:35 -0700726static const asn_TYPE_tag2member_t asn_MAP_Type2_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700727 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* one-name */
728 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000729};
Lev Walkin59b176e2005-11-26 11:25:14 +0000730static asn_CHOICE_specifics_t asn_SPC_Type2_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000731 sizeof(struct Type2),
732 offsetof(struct Type2, _asn_ctx),
733 offsetof(struct Type2, present),
734 sizeof(((struct Type2 *)0)->present),
Lev Walkin59b176e2005-11-26 11:25:14 +0000735 asn_MAP_Type2_tag2el_1,
Lev Walkinb7f17972005-03-04 09:10:19 +0000736 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000737 .canonical_order = 0,
738 .ext_start = -1 /* Extensions start */
Lev Walkinb7f17972005-03-04 09:10:19 +0000739};
740asn_TYPE_descriptor_t asn_DEF_Type2 = {
741 "Type2",
742 "Type2",
743 CHOICE_free,
744 CHOICE_print,
745 CHOICE_constraint,
746 CHOICE_decode_ber,
747 CHOICE_encode_der,
748 CHOICE_decode_xer,
749 CHOICE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000750 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinb7f17972005-03-04 09:10:19 +0000751 CHOICE_outmost_tag,
752 0, /* No effective tags (pointer) */
753 0, /* No effective tags (count) */
754 0, /* No tags (pointer) */
755 0, /* No tags (count) */
Lev Walkin59b176e2005-11-26 11:25:14 +0000756 0, /* No PER visible constraints */
Lev Walkinb7f17972005-03-04 09:10:19 +0000757 asn_MBR_Type2_1,
758 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000759 &asn_SPC_Type2_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000760};
761