blob: 143ab8c64c774563679e882134bad22fa48c0650 [file] [log] [blame]
Lev Walkin03ba3e92004-08-22 03:18:17 +00001
2/*** <<< INCLUDES [Forest] >>> ***/
3
4#include <Tree.h>
5#include <asn_SET_OF.h>
6#include <constr_SET_OF.h>
7
8/*** <<< DEPS [Forest] >>> ***/
9
Lev Walkindfae9752004-09-29 13:19:37 +000010extern asn_TYPE_descriptor_t asn_DEF_Forest;
Lev Walkin03ba3e92004-08-22 03:18:17 +000011
12/*** <<< TYPE-DECLS [Forest] >>> ***/
13
14
15typedef struct Forest {
Lev Walkin8dd0eed2004-09-17 06:32:12 +000016 A_SET_OF(Tree_t) list;
Lev Walkin03ba3e92004-08-22 03:18:17 +000017
18 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +000019 asn_struct_ctx_t _asn_ctx;
Lev Walkin03ba3e92004-08-22 03:18:17 +000020} Forest_t;
21
22/*** <<< STAT-DEFS [Forest] >>> ***/
23
Lev Walkindfae9752004-09-29 13:19:37 +000024static asn_TYPE_member_t asn_MBR_Forest[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +000025 { ATF_NOFLAGS, 0, 0,
Lev Walkin03ba3e92004-08-22 03:18:17 +000026 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
27 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +000028 .type = (void *)&asn_DEF_Tree,
Lev Walkin03ba3e92004-08-22 03:18:17 +000029 .memb_constraints = 0, /* Defer to actual type */
30 .name = ""
31 },
32};
Lev Walkindfae9752004-09-29 13:19:37 +000033static ber_tlv_tag_t asn_DEF_Forest_tags[] = {
Lev Walkin03ba3e92004-08-22 03:18:17 +000034 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
35};
Lev Walkindfae9752004-09-29 13:19:37 +000036static asn_SET_OF_specifics_t asn_DEF_Forest_specs = {
Lev Walkin03ba3e92004-08-22 03:18:17 +000037 sizeof(struct Forest),
Lev Walkindfae9752004-09-29 13:19:37 +000038 offsetof(struct Forest, _asn_ctx),
Lev Walkina9cc46e2004-09-22 16:06:28 +000039 0, /* XER encoding is XMLDelimitedItemList */
Lev Walkin03ba3e92004-08-22 03:18:17 +000040};
Lev Walkindfae9752004-09-29 13:19:37 +000041asn_TYPE_descriptor_t asn_DEF_Forest = {
Lev Walkin03ba3e92004-08-22 03:18:17 +000042 "Forest",
Lev Walkina9cc46e2004-09-22 16:06:28 +000043 SET_OF_free,
44 SET_OF_print,
Lev Walkin03ba3e92004-08-22 03:18:17 +000045 SET_OF_constraint,
46 SET_OF_decode_ber,
47 SET_OF_encode_der,
Lev Walkina9cc46e2004-09-22 16:06:28 +000048 0, /* Not implemented yet */
49 SET_OF_encode_xer,
Lev Walkin03ba3e92004-08-22 03:18:17 +000050 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +000051 asn_DEF_Forest_tags,
52 sizeof(asn_DEF_Forest_tags)
53 /sizeof(asn_DEF_Forest_tags[0]), /* 1 */
54 asn_DEF_Forest_tags, /* Same as above */
55 sizeof(asn_DEF_Forest_tags)
56 /sizeof(asn_DEF_Forest_tags[0]), /* 1 */
57 asn_MBR_Forest,
Lev Walkin03ba3e92004-08-22 03:18:17 +000058 1, /* Single element */
Lev Walkindfae9752004-09-29 13:19:37 +000059 &asn_DEF_Forest_specs /* Additional specs */
Lev Walkin03ba3e92004-08-22 03:18:17 +000060};
61
62
63/*** <<< INCLUDES [Tree] >>> ***/
64
65#include <INTEGER.h>
66#include <constr_SEQUENCE.h>
67
68/*** <<< DEPS [Tree] >>> ***/
69
Lev Walkindfae9752004-09-29 13:19:37 +000070extern asn_TYPE_descriptor_t asn_DEF_Tree;
Lev Walkin03ba3e92004-08-22 03:18:17 +000071
72/*** <<< TYPE-DECLS [Tree] >>> ***/
73
74
75typedef struct Tree {
76 INTEGER_t height;
77 INTEGER_t width;
78
79 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +000080 asn_struct_ctx_t _asn_ctx;
Lev Walkin03ba3e92004-08-22 03:18:17 +000081} Tree_t;
82
83/*** <<< STAT-DEFS [Tree] >>> ***/
84
Lev Walkindfae9752004-09-29 13:19:37 +000085static asn_TYPE_member_t asn_MBR_Tree[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +000086 { ATF_NOFLAGS, 0, offsetof(struct Tree, height),
Lev Walkin03ba3e92004-08-22 03:18:17 +000087 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
88 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +000089 .type = (void *)&asn_DEF_INTEGER,
Lev Walkin03ba3e92004-08-22 03:18:17 +000090 .memb_constraints = 0, /* Defer to actual type */
91 .name = "height"
92 },
Lev Walkincc93b0f2004-09-10 09:18:20 +000093 { ATF_NOFLAGS, 0, offsetof(struct Tree, width),
Lev Walkin03ba3e92004-08-22 03:18:17 +000094 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
95 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +000096 .type = (void *)&asn_DEF_INTEGER,
Lev Walkin03ba3e92004-08-22 03:18:17 +000097 .memb_constraints = 0, /* Defer to actual type */
98 .name = "width"
99 },
100};
Lev Walkindfae9752004-09-29 13:19:37 +0000101static ber_tlv_tag_t asn_DEF_Tree_tags[] = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000102 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
103};
Lev Walkindfae9752004-09-29 13:19:37 +0000104static asn_TYPE_tag2member_t asn_DEF_Tree_tag2el[] = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000105 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* height at 17 */
106 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* width at 19 */
107};
Lev Walkindfae9752004-09-29 13:19:37 +0000108static asn_SEQUENCE_specifics_t asn_DEF_Tree_specs = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000109 sizeof(struct Tree),
Lev Walkindfae9752004-09-29 13:19:37 +0000110 offsetof(struct Tree, _asn_ctx),
111 asn_DEF_Tree_tag2el,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000112 2, /* Count of tags in the map */
113 -1, /* Start extensions */
114 -1 /* Stop extensions */
115};
Lev Walkindfae9752004-09-29 13:19:37 +0000116asn_TYPE_descriptor_t asn_DEF_Tree = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000117 "Tree",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000118 SEQUENCE_free,
119 SEQUENCE_print,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000120 SEQUENCE_constraint,
121 SEQUENCE_decode_ber,
122 SEQUENCE_encode_der,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000123 0, /* Not implemented yet */
124 SEQUENCE_encode_xer,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000125 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000126 asn_DEF_Tree_tags,
127 sizeof(asn_DEF_Tree_tags)
128 /sizeof(asn_DEF_Tree_tags[0]), /* 1 */
129 asn_DEF_Tree_tags, /* Same as above */
130 sizeof(asn_DEF_Tree_tags)
131 /sizeof(asn_DEF_Tree_tags[0]), /* 1 */
132 asn_MBR_Tree,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000133 2, /* Elements count */
Lev Walkindfae9752004-09-29 13:19:37 +0000134 &asn_DEF_Tree_specs /* Additional specs */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000135};
136
137
138/*** <<< INCLUDES [Stuff] >>> ***/
139
140#include <Forest.h>
141#include <asn_SET_OF.h>
142#include <constr_SET_OF.h>
143#include <BIT_STRING.h>
144#include <constr_SEQUENCE.h>
Lev Walkin2a8672e2004-10-03 09:14:49 +0000145#include <INTEGER.h>
146#include <constr_CHOICE.h>
Lev Walkin03ba3e92004-08-22 03:18:17 +0000147#include <constr_SET.h>
148
149/*** <<< DEPS [Stuff] >>> ***/
150
151
152/*
153 * Method of determining the components presence
154 */
155typedef enum Stuff_PR {
156 Stuff_PR_trees, /* Member trees is present */
157 Stuff_PR_anything, /* Member anything is present */
Lev Walkin2a8672e2004-10-03 09:14:49 +0000158 Stuff_PR_other, /* Member other is present */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000159} Stuff_PR;
Lev Walkin2a8672e2004-10-03 09:14:49 +0000160typedef enum other_PR {
161 other_PR_NOTHING, /* No components present */
162 other_PR_a,
163 other_PR_b,
164} other_PR;
Lev Walkindfae9752004-09-29 13:19:37 +0000165extern asn_TYPE_descriptor_t asn_DEF_Stuff;
Lev Walkin03ba3e92004-08-22 03:18:17 +0000166
167/*** <<< TYPE-DECLS [Stuff] >>> ***/
168
169
170typedef struct Stuff {
171 struct trees {
Lev Walkin8dd0eed2004-09-17 06:32:12 +0000172 A_SET_OF(Forest_t) list;
Lev Walkin03ba3e92004-08-22 03:18:17 +0000173
174 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000175 asn_struct_ctx_t _asn_ctx;
Lev Walkin03ba3e92004-08-22 03:18:17 +0000176 } *trees;
177 struct anything {
178 A_SET_OF(struct anything_member {
179 BIT_STRING_t cup_of_coffee;
180 /*
181 * This type is extensible,
182 * possible extensions are below.
183 */
184
185 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000186 asn_struct_ctx_t _asn_ctx;
Lev Walkin03ba3e92004-08-22 03:18:17 +0000187 } ) list;
188
189 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000190 asn_struct_ctx_t _asn_ctx;
Lev Walkin03ba3e92004-08-22 03:18:17 +0000191 } *anything;
Lev Walkin2a8672e2004-10-03 09:14:49 +0000192 /*
193 * This type is extensible,
194 * possible extensions are below.
195 */
196 struct other {
197 other_PR present;
198 union {
199 INTEGER_t a;
200 INTEGER_t b;
201 } choice;
202
203 /* Context for parsing across buffer boundaries */
204 asn_struct_ctx_t _asn_ctx;
205 } *other;
Lev Walkin03ba3e92004-08-22 03:18:17 +0000206
207 /* Presence bitmask: ASN_SET_ISPRESENT(pStuff, Stuff_PR_x) */
208 unsigned int _presence_map
Lev Walkin2a8672e2004-10-03 09:14:49 +0000209 [((3+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
Lev Walkin03ba3e92004-08-22 03:18:17 +0000210
211 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000212 asn_struct_ctx_t _asn_ctx;
Lev Walkin03ba3e92004-08-22 03:18:17 +0000213} Stuff_t;
214
215/*** <<< STAT-DEFS [Stuff] >>> ***/
216
Lev Walkindfae9752004-09-29 13:19:37 +0000217static asn_TYPE_member_t asn_MBR_trees[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000218 { ATF_NOFLAGS, 0, 0,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000219 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
220 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000221 .type = (void *)&asn_DEF_Forest,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000222 .memb_constraints = 0, /* Defer to actual type */
223 .name = ""
224 },
225};
Lev Walkindfae9752004-09-29 13:19:37 +0000226static ber_tlv_tag_t asn_DEF_trees_tags[] = {
Lev Walkin2a8672e2004-10-03 09:14:49 +0000227 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
Lev Walkin188ed2c2004-09-13 08:31:01 +0000228 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
Lev Walkin03ba3e92004-08-22 03:18:17 +0000229};
Lev Walkindfae9752004-09-29 13:19:37 +0000230static asn_SET_OF_specifics_t asn_DEF_trees_specs = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000231 sizeof(struct trees),
Lev Walkindfae9752004-09-29 13:19:37 +0000232 offsetof(struct trees, _asn_ctx),
Lev Walkina9cc46e2004-09-22 16:06:28 +0000233 0, /* XER encoding is XMLDelimitedItemList */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000234};
Lev Walkind04430c2004-09-07 06:44:29 +0000235static /* Use -fall-defs-global to expose */
Lev Walkindfae9752004-09-29 13:19:37 +0000236asn_TYPE_descriptor_t asn_DEF_trees = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000237 "trees",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000238 SET_OF_free,
239 SET_OF_print,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000240 SET_OF_constraint,
241 SET_OF_decode_ber,
242 SET_OF_encode_der,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000243 0, /* Not implemented yet */
244 SET_OF_encode_xer,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000245 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000246 asn_DEF_trees_tags,
247 sizeof(asn_DEF_trees_tags)
248 /sizeof(asn_DEF_trees_tags[0]) - 1, /* 1 */
249 asn_DEF_trees_tags, /* Same as above */
250 sizeof(asn_DEF_trees_tags)
251 /sizeof(asn_DEF_trees_tags[0]), /* 2 */
252 asn_MBR_trees,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000253 1, /* Single element */
Lev Walkindfae9752004-09-29 13:19:37 +0000254 &asn_DEF_trees_specs /* Additional specs */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000255};
256
Lev Walkindfae9752004-09-29 13:19:37 +0000257static asn_TYPE_member_t asn_MBR_anything_member[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000258 { ATF_NOFLAGS, 0, offsetof(struct anything_member, cup_of_coffee),
Lev Walkin03ba3e92004-08-22 03:18:17 +0000259 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
260 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000261 .type = (void *)&asn_DEF_BIT_STRING,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000262 .memb_constraints = 0, /* Defer to actual type */
263 .name = "cup-of-coffee"
264 },
265};
Lev Walkindfae9752004-09-29 13:19:37 +0000266static ber_tlv_tag_t asn_DEF_anything_member_tags[] = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000267 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
268};
Lev Walkindfae9752004-09-29 13:19:37 +0000269static asn_TYPE_tag2member_t asn_DEF_anything_member_tag2el[] = {
Lev Walkin2a8672e2004-10-03 09:14:49 +0000270 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 }, /* cup-of-coffee at 32 */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000271};
Lev Walkindfae9752004-09-29 13:19:37 +0000272static asn_SEQUENCE_specifics_t asn_DEF_anything_member_specs = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000273 sizeof(struct anything_member),
Lev Walkindfae9752004-09-29 13:19:37 +0000274 offsetof(struct anything_member, _asn_ctx),
275 asn_DEF_anything_member_tag2el,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000276 1, /* Count of tags in the map */
277 0, /* Start extensions */
278 2 /* Stop extensions */
279};
Lev Walkind04430c2004-09-07 06:44:29 +0000280static /* Use -fall-defs-global to expose */
Lev Walkindfae9752004-09-29 13:19:37 +0000281asn_TYPE_descriptor_t asn_DEF_anything_member = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000282 "",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000283 SEQUENCE_free,
284 SEQUENCE_print,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000285 SEQUENCE_constraint,
286 SEQUENCE_decode_ber,
287 SEQUENCE_encode_der,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000288 0, /* Not implemented yet */
289 SEQUENCE_encode_xer,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000290 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000291 asn_DEF_anything_member_tags,
292 sizeof(asn_DEF_anything_member_tags)
293 /sizeof(asn_DEF_anything_member_tags[0]), /* 1 */
294 asn_DEF_anything_member_tags, /* Same as above */
295 sizeof(asn_DEF_anything_member_tags)
296 /sizeof(asn_DEF_anything_member_tags[0]), /* 1 */
297 asn_MBR_anything_member,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000298 1, /* Elements count */
Lev Walkindfae9752004-09-29 13:19:37 +0000299 &asn_DEF_anything_member_specs /* Additional specs */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000300};
301
Lev Walkindfae9752004-09-29 13:19:37 +0000302static asn_TYPE_member_t asn_MBR_anything[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000303 { ATF_NOFLAGS, 0, 0,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000304 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
305 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000306 .type = (void *)&asn_DEF_anything_member,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000307 .memb_constraints = 0, /* Defer to actual type */
308 .name = ""
309 },
310};
Lev Walkindfae9752004-09-29 13:19:37 +0000311static ber_tlv_tag_t asn_DEF_anything_tags[] = {
Lev Walkin2a8672e2004-10-03 09:14:49 +0000312 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
Lev Walkin188ed2c2004-09-13 08:31:01 +0000313 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
Lev Walkin03ba3e92004-08-22 03:18:17 +0000314};
Lev Walkindfae9752004-09-29 13:19:37 +0000315static asn_SET_OF_specifics_t asn_DEF_anything_specs = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000316 sizeof(struct anything),
Lev Walkindfae9752004-09-29 13:19:37 +0000317 offsetof(struct anything, _asn_ctx),
Lev Walkina9cc46e2004-09-22 16:06:28 +0000318 0, /* XER encoding is XMLDelimitedItemList */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000319};
Lev Walkind04430c2004-09-07 06:44:29 +0000320static /* Use -fall-defs-global to expose */
Lev Walkindfae9752004-09-29 13:19:37 +0000321asn_TYPE_descriptor_t asn_DEF_anything = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000322 "anything",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000323 SET_OF_free,
324 SET_OF_print,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000325 SET_OF_constraint,
326 SET_OF_decode_ber,
327 SET_OF_encode_der,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000328 0, /* Not implemented yet */
329 SET_OF_encode_xer,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000330 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000331 asn_DEF_anything_tags,
332 sizeof(asn_DEF_anything_tags)
333 /sizeof(asn_DEF_anything_tags[0]) - 1, /* 1 */
334 asn_DEF_anything_tags, /* Same as above */
335 sizeof(asn_DEF_anything_tags)
336 /sizeof(asn_DEF_anything_tags[0]), /* 2 */
337 asn_MBR_anything,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000338 1, /* Single element */
Lev Walkindfae9752004-09-29 13:19:37 +0000339 &asn_DEF_anything_specs /* Additional specs */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000340};
341
Lev Walkin2a8672e2004-10-03 09:14:49 +0000342static asn_TYPE_member_t asn_MBR_other[] = {
343 { ATF_NOFLAGS, 0, offsetof(struct other, choice.a),
Lev Walkin03ba3e92004-08-22 03:18:17 +0000344 .tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
345 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkin2a8672e2004-10-03 09:14:49 +0000346 .type = (void *)&asn_DEF_INTEGER,
347 .memb_constraints = 0, /* Defer to actual type */
348 .name = "a"
349 },
350 { ATF_NOFLAGS, 0, offsetof(struct other, choice.b),
351 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
352 .tag_mode = -1, /* IMPLICIT tag at current level */
353 .type = (void *)&asn_DEF_INTEGER,
354 .memb_constraints = 0, /* Defer to actual type */
355 .name = "b"
356 },
357};
358static asn_TYPE_tag2member_t asn_DEF_other_tag2el[] = {
359 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* a at 26 */
360 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* b at 28 */
361};
362static asn_CHOICE_specifics_t asn_DEF_other_specs = {
363 sizeof(struct other),
364 offsetof(struct other, _asn_ctx),
365 offsetof(struct other, present),
366 sizeof(((struct other *)0)->present),
367 asn_DEF_other_tag2el,
368 2, /* Count of tags in the map */
369 0 /* Whether extensible */
370};
371static /* Use -fall-defs-global to expose */
372asn_TYPE_descriptor_t asn_DEF_other = {
373 "other",
374 CHOICE_free,
375 CHOICE_print,
376 CHOICE_constraint,
377 CHOICE_decode_ber,
378 CHOICE_encode_der,
379 0, /* Not implemented yet */
380 CHOICE_encode_xer,
381 CHOICE_outmost_tag,
382 0, /* No effective tags (pointer) */
383 0, /* No effective tags (count) */
384 0, /* No tags (pointer) */
385 0, /* No tags (count) */
386 asn_MBR_other,
387 2, /* Elements count */
388 &asn_DEF_other_specs /* Additional specs */
389};
390
391static asn_TYPE_member_t asn_MBR_Stuff[] = {
392 { ATF_POINTER, 3, offsetof(struct Stuff, trees),
393 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
394 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkindfae9752004-09-29 13:19:37 +0000395 .type = (void *)&asn_DEF_trees,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000396 .memb_constraints = 0, /* Defer to actual type */
397 .name = "trees"
398 },
Lev Walkin2a8672e2004-10-03 09:14:49 +0000399 { ATF_POINTER, 2, offsetof(struct Stuff, anything),
400 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
Lev Walkin03ba3e92004-08-22 03:18:17 +0000401 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkindfae9752004-09-29 13:19:37 +0000402 .type = (void *)&asn_DEF_anything,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000403 .memb_constraints = 0, /* Defer to actual type */
404 .name = "anything"
405 },
Lev Walkin2a8672e2004-10-03 09:14:49 +0000406 { ATF_POINTER, 0, offsetof(struct Stuff, other),
407 .tag = -1 /* Ambiguous tag (CHOICE?) */,
408 .tag_mode = 0,
409 .type = (void *)&asn_DEF_other,
410 .memb_constraints = 0, /* Defer to actual type */
411 .name = "other"
412 },
Lev Walkin03ba3e92004-08-22 03:18:17 +0000413};
Lev Walkindfae9752004-09-29 13:19:37 +0000414static ber_tlv_tag_t asn_DEF_Stuff_tags[] = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000415 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
416};
Lev Walkindfae9752004-09-29 13:19:37 +0000417static asn_TYPE_tag2member_t asn_DEF_Stuff_tag2el[] = {
Lev Walkin2a8672e2004-10-03 09:14:49 +0000418 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* a at 26 */
419 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* trees at 23 */
420 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* anything at 34 */
421 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* b at 28 */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000422};
Lev Walkin2a8672e2004-10-03 09:14:49 +0000423static asn_TYPE_tag2member_t asn_DEF_Stuff_tag2el_cxer[] = {
424 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* trees at 23 */
425 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* anything at 34 */
426 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* a at 26 */
427};
428static uint8_t asn_DEF_Stuff_mmap[(3 + (8 * sizeof(unsigned int)) - 1) / 8] = {
429 (0 << 7) | (0 << 6) | (0 << 5)
Lev Walkin03ba3e92004-08-22 03:18:17 +0000430};
Lev Walkindfae9752004-09-29 13:19:37 +0000431static asn_SET_specifics_t asn_DEF_Stuff_specs = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000432 sizeof(struct Stuff),
Lev Walkindfae9752004-09-29 13:19:37 +0000433 offsetof(struct Stuff, _asn_ctx),
Lev Walkin03ba3e92004-08-22 03:18:17 +0000434 offsetof(struct Stuff, _presence_map),
Lev Walkindfae9752004-09-29 13:19:37 +0000435 asn_DEF_Stuff_tag2el,
Lev Walkin2a8672e2004-10-03 09:14:49 +0000436 4, /* Count of tags in the map */
437 asn_DEF_Stuff_tag2el_cxer,
438 3, /* Count of tags in the CANONICAL-XER map */
439 1, /* Whether extensible */
Lev Walkindfae9752004-09-29 13:19:37 +0000440 (unsigned int *)asn_DEF_Stuff_mmap /* Mandatory elements map */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000441};
Lev Walkindfae9752004-09-29 13:19:37 +0000442asn_TYPE_descriptor_t asn_DEF_Stuff = {
Lev Walkin03ba3e92004-08-22 03:18:17 +0000443 "Stuff",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000444 SET_free,
445 SET_print,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000446 SET_constraint,
447 SET_decode_ber,
448 SET_encode_der,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000449 0, /* Not implemented yet */
450 SET_encode_xer,
Lev Walkin03ba3e92004-08-22 03:18:17 +0000451 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000452 asn_DEF_Stuff_tags,
453 sizeof(asn_DEF_Stuff_tags)
454 /sizeof(asn_DEF_Stuff_tags[0]), /* 1 */
455 asn_DEF_Stuff_tags, /* Same as above */
456 sizeof(asn_DEF_Stuff_tags)
457 /sizeof(asn_DEF_Stuff_tags[0]), /* 1 */
458 asn_MBR_Stuff,
Lev Walkin2a8672e2004-10-03 09:14:49 +0000459 3, /* Elements count */
Lev Walkindfae9752004-09-29 13:19:37 +0000460 &asn_DEF_Stuff_specs /* Additional specs */
Lev Walkin03ba3e92004-08-22 03:18:17 +0000461};
462