blob: 12db782eb8ab837ecd14e95ca199b7b40d495161 [file] [log] [blame]
Lev Walkindb33c8d2017-08-22 01:41:58 -07001
2/*** <<< INCLUDES [CommonType] >>> ***/
3
4#include "Type1.h"
5#include "Type2.h"
6#include <constr_CHOICE.h>
7
8/*** <<< DEPS [CommonType] >>> ***/
9
10typedef enum CommonType_PR {
11 CommonType_PR_NOTHING, /* No components present */
12 CommonType_PR_t1,
13 CommonType_PR_t2
14} CommonType_PR;
15
16/*** <<< TYPE-DECLS [CommonType] >>> ***/
17
18typedef struct CommonType {
19 CommonType_PR present;
20 union CommonType_u {
21 Type1_t t1;
22 Type2_t t2;
23 } choice;
24
25 /* Context for parsing across buffer boundaries */
26 asn_struct_ctx_t _asn_ctx;
27} CommonType_t;
28
29/*** <<< FUNC-DECLS [CommonType] >>> ***/
30
31extern asn_TYPE_descriptor_t asn_DEF_CommonType;
32
33/*** <<< STAT-DEFS [CommonType] >>> ***/
34
35static asn_TYPE_member_t asn_MBR_CommonType_1[] = {
36 { ATF_NOFLAGS, 0, offsetof(struct CommonType, choice.t1),
37 .tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
38 .tag_mode = +1, /* EXPLICIT tag at current level */
39 .type = &asn_DEF_Type1,
40 .type_selector = 0,
41 .memb_constraints = 0, /* Defer constraints checking to the member type */
42 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
43 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
44 .default_value = 0,
45 .name = "t1"
46 },
47 { ATF_NOFLAGS, 0, offsetof(struct CommonType, choice.t2),
48 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
49 .tag_mode = +1, /* EXPLICIT tag at current level */
50 .type = &asn_DEF_Type2,
51 .type_selector = 0,
52 .memb_constraints = 0, /* Defer constraints checking to the member type */
53 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
54 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
55 .default_value = 0,
56 .name = "t2"
57 },
58};
59static const asn_TYPE_tag2member_t asn_MAP_CommonType_tag2el_1[] = {
60 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* t1 */
61 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* t2 */
62};
63static asn_CHOICE_specifics_t asn_SPC_CommonType_specs_1 = {
64 sizeof(struct CommonType),
65 offsetof(struct CommonType, _asn_ctx),
66 offsetof(struct CommonType, present),
67 sizeof(((struct CommonType *)0)->present),
Lev Walkine3917082017-08-23 10:29:38 -070068 .tag2el = asn_MAP_CommonType_tag2el_1,
69 .tag2el_count = 2, /* Count of tags in the map */
Lev Walkindb33c8d2017-08-22 01:41:58 -070070 .canonical_order = 0,
71 .ext_start = -1 /* Extensions start */
72};
73asn_TYPE_descriptor_t asn_DEF_CommonType = {
74 "CommonType",
75 "CommonType",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +080076 &asn_OP_CHOICE,
Lev Walkindb33c8d2017-08-22 01:41:58 -070077 CHOICE_constraint,
Lev Walkindb33c8d2017-08-22 01:41:58 -070078 0, /* No effective tags (pointer) */
79 0, /* No effective tags (count) */
80 0, /* No tags (pointer) */
81 0, /* No tags (count) */
82 0, /* No OER visible constraints */
83 0, /* No PER visible constraints */
84 asn_MBR_CommonType_1,
85 2, /* Elements count */
86 &asn_SPC_CommonType_specs_1 /* Additional specs */
87};
88
89
90/*** <<< INCLUDES [Type1] >>> ***/
91
92#include <OCTET_STRING.h>
93#include <constr_SEQUENCE.h>
94#include <constr_CHOICE.h>
95
96/*** <<< DEPS [Type1] >>> ***/
97
98typedef enum Type1_PR {
99 Type1_PR_NOTHING, /* No components present */
100 Type1_PR_anonType
101} Type1_PR;
102
103/*** <<< TYPE-DECLS [Type1] >>> ***/
104
105typedef struct Type1 {
106 Type1_PR present;
107 union Type1_u {
Lev Walkin5efafc52017-09-05 03:43:00 -0700108 struct Type1__anonType {
Lev Walkindb33c8d2017-08-22 01:41:58 -0700109 OCTET_STRING_t x;
110 OCTET_STRING_t y;
111
112 /* Context for parsing across buffer boundaries */
113 asn_struct_ctx_t _asn_ctx;
114 } anonType;
115 } choice;
116
117 /* Context for parsing across buffer boundaries */
118 asn_struct_ctx_t _asn_ctx;
119} Type1_t;
120
121/*** <<< FUNC-DECLS [Type1] >>> ***/
122
123extern asn_TYPE_descriptor_t asn_DEF_Type1;
124extern asn_CHOICE_specifics_t asn_SPC_Type1_specs_1;
125extern asn_TYPE_member_t asn_MBR_Type1_1[1];
126
127/*** <<< CODE [Type1] >>> ***/
128
129static int
130memb_x_constraint_2(asn_TYPE_descriptor_t *td, const void *sptr,
131 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
132 const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
133 size_t size;
134
135 if(!sptr) {
136 ASN__CTFAIL(app_key, td, sptr,
137 "%s: value not given (%s:%d)",
138 td->name, __FILE__, __LINE__);
139 return -1;
140 }
141
142 size = st->size;
143
144 if((size == 32)) {
145 /* Constraint check succeeded */
146 return 0;
147 } else {
148 ASN__CTFAIL(app_key, td, sptr,
149 "%s: constraint failed (%s:%d)",
150 td->name, __FILE__, __LINE__);
151 return -1;
152 }
153}
154
155static int
156memb_y_constraint_2(asn_TYPE_descriptor_t *td, const void *sptr,
157 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
158 const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
159 size_t size;
160
161 if(!sptr) {
162 ASN__CTFAIL(app_key, td, sptr,
163 "%s: value not given (%s:%d)",
164 td->name, __FILE__, __LINE__);
165 return -1;
166 }
167
168 size = st->size;
169
170 if((size == 32)) {
171 /* Constraint check succeeded */
172 return 0;
173 } else {
174 ASN__CTFAIL(app_key, td, sptr,
175 "%s: constraint failed (%s:%d)",
176 td->name, __FILE__, __LINE__);
177 return -1;
178 }
179}
180
181
182/*** <<< STAT-DEFS [Type1] >>> ***/
183
184static asn_TYPE_member_t asn_MBR_anonType_2[] = {
Lev Walkin5efafc52017-09-05 03:43:00 -0700185 { ATF_NOFLAGS, 0, offsetof(struct Type1__anonType, x),
Lev Walkindb33c8d2017-08-22 01:41:58 -0700186 .tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
187 .tag_mode = -1, /* IMPLICIT tag at current level */
188 .type = &asn_DEF_OCTET_STRING,
189 .type_selector = 0,
190 .memb_constraints = memb_x_constraint_2,
191 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
192 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
193 .default_value = 0,
194 .name = "x"
195 },
Lev Walkin5efafc52017-09-05 03:43:00 -0700196 { ATF_NOFLAGS, 0, offsetof(struct Type1__anonType, y),
Lev Walkindb33c8d2017-08-22 01:41:58 -0700197 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
198 .tag_mode = -1, /* IMPLICIT tag at current level */
199 .type = &asn_DEF_OCTET_STRING,
200 .type_selector = 0,
201 .memb_constraints = memb_y_constraint_2,
202 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
203 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
204 .default_value = 0,
205 .name = "y"
206 },
207};
208static const ber_tlv_tag_t asn_DEF_anonType_tags_2[] = {
209 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
210 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
211};
212static const asn_TYPE_tag2member_t asn_MAP_anonType_tag2el_2[] = {
213 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */
214 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */
215};
216static asn_SEQUENCE_specifics_t asn_SPC_anonType_specs_2 = {
Lev Walkin5efafc52017-09-05 03:43:00 -0700217 sizeof(struct Type1__anonType),
218 offsetof(struct Type1__anonType, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -0700219 .tag2el = asn_MAP_anonType_tag2el_2,
220 .tag2el_count = 2, /* Count of tags in the map */
Lev Walkindb33c8d2017-08-22 01:41:58 -0700221 0, 0, 0, /* Optional elements (not needed) */
222 -1, /* Start extensions */
223 -1 /* Stop extensions */
224};
225static /* Use -fall-defs-global to expose */
226asn_TYPE_descriptor_t asn_DEF_anonType_2 = {
227 "anonType",
228 "anonType",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800229 &asn_OP_SEQUENCE,
Lev Walkindb33c8d2017-08-22 01:41:58 -0700230 SEQUENCE_constraint,
Lev Walkindb33c8d2017-08-22 01:41:58 -0700231 asn_DEF_anonType_tags_2,
232 sizeof(asn_DEF_anonType_tags_2)
233 /sizeof(asn_DEF_anonType_tags_2[0]) - 1, /* 1 */
234 asn_DEF_anonType_tags_2, /* Same as above */
235 sizeof(asn_DEF_anonType_tags_2)
236 /sizeof(asn_DEF_anonType_tags_2[0]), /* 2 */
237 0, /* No OER visible constraints */
238 0, /* No PER visible constraints */
239 asn_MBR_anonType_2,
240 2, /* Elements count */
241 &asn_SPC_anonType_specs_2 /* Additional specs */
242};
243
244asn_TYPE_member_t asn_MBR_Type1_1[] = {
245 { ATF_NOFLAGS, 0, offsetof(struct Type1, choice.anonType),
246 .tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
247 .tag_mode = 0,
248 .type = &asn_DEF_anonType_2,
249 .type_selector = 0,
250 .memb_constraints = 0, /* Defer constraints checking to the member type */
251 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
252 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
253 .default_value = 0,
254 .name = "anonType"
255 },
256};
257static const asn_TYPE_tag2member_t asn_MAP_Type1_tag2el_1[] = {
258 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* anonType */
259};
260asn_CHOICE_specifics_t asn_SPC_Type1_specs_1 = {
261 sizeof(struct Type1),
262 offsetof(struct Type1, _asn_ctx),
263 offsetof(struct Type1, present),
264 sizeof(((struct Type1 *)0)->present),
Lev Walkine3917082017-08-23 10:29:38 -0700265 .tag2el = asn_MAP_Type1_tag2el_1,
266 .tag2el_count = 1, /* Count of tags in the map */
Lev Walkindb33c8d2017-08-22 01:41:58 -0700267 .canonical_order = 0,
268 .ext_start = -1 /* Extensions start */
269};
270asn_TYPE_descriptor_t asn_DEF_Type1 = {
271 "Type1",
272 "Type1",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800273 &asn_OP_CHOICE,
Lev Walkindb33c8d2017-08-22 01:41:58 -0700274 CHOICE_constraint,
Lev Walkindb33c8d2017-08-22 01:41:58 -0700275 0, /* No effective tags (pointer) */
276 0, /* No effective tags (count) */
277 0, /* No tags (pointer) */
278 0, /* No tags (count) */
279 0, /* No OER visible constraints */
280 0, /* No PER visible constraints */
281 asn_MBR_Type1_1,
282 1, /* Elements count */
283 &asn_SPC_Type1_specs_1 /* Additional specs */
284};
285
286
287/*** <<< INCLUDES [Type2] >>> ***/
288
289#include <OCTET_STRING.h>
290#include <constr_SEQUENCE.h>
291#include <constr_CHOICE.h>
292
293/*** <<< DEPS [Type2] >>> ***/
294
295typedef enum Type2_PR {
296 Type2_PR_NOTHING, /* No components present */
297 Type2_PR_anonType
298} Type2_PR;
299
300/*** <<< TYPE-DECLS [Type2] >>> ***/
301
302typedef struct Type2 {
303 Type2_PR present;
304 union Type2_u {
Lev Walkin5efafc52017-09-05 03:43:00 -0700305 struct Type2__anonType {
Lev Walkindb33c8d2017-08-22 01:41:58 -0700306 OCTET_STRING_t x;
307 OCTET_STRING_t y;
308
309 /* Context for parsing across buffer boundaries */
310 asn_struct_ctx_t _asn_ctx;
311 } anonType;
312 } choice;
313
314 /* Context for parsing across buffer boundaries */
315 asn_struct_ctx_t _asn_ctx;
316} Type2_t;
317
318/*** <<< FUNC-DECLS [Type2] >>> ***/
319
320extern asn_TYPE_descriptor_t asn_DEF_Type2;
321extern asn_CHOICE_specifics_t asn_SPC_Type2_specs_1;
322extern asn_TYPE_member_t asn_MBR_Type2_1[1];
323
324/*** <<< CODE [Type2] >>> ***/
325
326static int
327memb_x_constraint_2(asn_TYPE_descriptor_t *td, const void *sptr,
328 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
329 const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
330 size_t size;
331
332 if(!sptr) {
333 ASN__CTFAIL(app_key, td, sptr,
334 "%s: value not given (%s:%d)",
335 td->name, __FILE__, __LINE__);
336 return -1;
337 }
338
339 size = st->size;
340
341 if((size == 48)) {
342 /* Constraint check succeeded */
343 return 0;
344 } else {
345 ASN__CTFAIL(app_key, td, sptr,
346 "%s: constraint failed (%s:%d)",
347 td->name, __FILE__, __LINE__);
348 return -1;
349 }
350}
351
352static int
353memb_y_constraint_2(asn_TYPE_descriptor_t *td, const void *sptr,
354 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
355 const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
356 size_t size;
357
358 if(!sptr) {
359 ASN__CTFAIL(app_key, td, sptr,
360 "%s: value not given (%s:%d)",
361 td->name, __FILE__, __LINE__);
362 return -1;
363 }
364
365 size = st->size;
366
367 if((size == 48)) {
368 /* Constraint check succeeded */
369 return 0;
370 } else {
371 ASN__CTFAIL(app_key, td, sptr,
372 "%s: constraint failed (%s:%d)",
373 td->name, __FILE__, __LINE__);
374 return -1;
375 }
376}
377
378
379/*** <<< STAT-DEFS [Type2] >>> ***/
380
381static asn_TYPE_member_t asn_MBR_anonType_2[] = {
Lev Walkin5efafc52017-09-05 03:43:00 -0700382 { ATF_NOFLAGS, 0, offsetof(struct Type2__anonType, x),
Lev Walkindb33c8d2017-08-22 01:41:58 -0700383 .tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
384 .tag_mode = -1, /* IMPLICIT tag at current level */
385 .type = &asn_DEF_OCTET_STRING,
386 .type_selector = 0,
387 .memb_constraints = memb_x_constraint_2,
388 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
389 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
390 .default_value = 0,
391 .name = "x"
392 },
Lev Walkin5efafc52017-09-05 03:43:00 -0700393 { ATF_NOFLAGS, 0, offsetof(struct Type2__anonType, y),
Lev Walkindb33c8d2017-08-22 01:41:58 -0700394 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
395 .tag_mode = -1, /* IMPLICIT tag at current level */
396 .type = &asn_DEF_OCTET_STRING,
397 .type_selector = 0,
398 .memb_constraints = memb_y_constraint_2,
399 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
400 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
401 .default_value = 0,
402 .name = "y"
403 },
404};
405static const ber_tlv_tag_t asn_DEF_anonType_tags_2[] = {
406 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
407 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
408};
409static const asn_TYPE_tag2member_t asn_MAP_anonType_tag2el_2[] = {
410 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */
411 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */
412};
413static asn_SEQUENCE_specifics_t asn_SPC_anonType_specs_2 = {
Lev Walkin5efafc52017-09-05 03:43:00 -0700414 sizeof(struct Type2__anonType),
415 offsetof(struct Type2__anonType, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -0700416 .tag2el = asn_MAP_anonType_tag2el_2,
417 .tag2el_count = 2, /* Count of tags in the map */
Lev Walkindb33c8d2017-08-22 01:41:58 -0700418 0, 0, 0, /* Optional elements (not needed) */
419 -1, /* Start extensions */
420 -1 /* Stop extensions */
421};
422static /* Use -fall-defs-global to expose */
423asn_TYPE_descriptor_t asn_DEF_anonType_2 = {
424 "anonType",
425 "anonType",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800426 &asn_OP_SEQUENCE,
Lev Walkindb33c8d2017-08-22 01:41:58 -0700427 SEQUENCE_constraint,
Lev Walkindb33c8d2017-08-22 01:41:58 -0700428 asn_DEF_anonType_tags_2,
429 sizeof(asn_DEF_anonType_tags_2)
430 /sizeof(asn_DEF_anonType_tags_2[0]) - 1, /* 1 */
431 asn_DEF_anonType_tags_2, /* Same as above */
432 sizeof(asn_DEF_anonType_tags_2)
433 /sizeof(asn_DEF_anonType_tags_2[0]), /* 2 */
434 0, /* No OER visible constraints */
435 0, /* No PER visible constraints */
436 asn_MBR_anonType_2,
437 2, /* Elements count */
438 &asn_SPC_anonType_specs_2 /* Additional specs */
439};
440
441asn_TYPE_member_t asn_MBR_Type2_1[] = {
442 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.anonType),
443 .tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
444 .tag_mode = 0,
445 .type = &asn_DEF_anonType_2,
446 .type_selector = 0,
447 .memb_constraints = 0, /* Defer constraints checking to the member type */
448 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
449 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
450 .default_value = 0,
451 .name = "anonType"
452 },
453};
454static const asn_TYPE_tag2member_t asn_MAP_Type2_tag2el_1[] = {
455 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* anonType */
456};
457asn_CHOICE_specifics_t asn_SPC_Type2_specs_1 = {
458 sizeof(struct Type2),
459 offsetof(struct Type2, _asn_ctx),
460 offsetof(struct Type2, present),
461 sizeof(((struct Type2 *)0)->present),
Lev Walkine3917082017-08-23 10:29:38 -0700462 .tag2el = asn_MAP_Type2_tag2el_1,
463 .tag2el_count = 1, /* Count of tags in the map */
Lev Walkindb33c8d2017-08-22 01:41:58 -0700464 .canonical_order = 0,
465 .ext_start = -1 /* Extensions start */
466};
467asn_TYPE_descriptor_t asn_DEF_Type2 = {
468 "Type2",
469 "Type2",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800470 &asn_OP_CHOICE,
Lev Walkindb33c8d2017-08-22 01:41:58 -0700471 CHOICE_constraint,
Lev Walkindb33c8d2017-08-22 01:41:58 -0700472 0, /* No effective tags (pointer) */
473 0, /* No effective tags (count) */
474 0, /* No tags (pointer) */
475 0, /* No tags (count) */
476 0, /* No OER visible constraints */
477 0, /* No PER visible constraints */
478 asn_MBR_Type2_1,
479 1, /* Elements count */
480 &asn_SPC_Type2_specs_1 /* Additional specs */
481};
482