b3bc7e75b5a670476d608cd817519e73539cb047
[com/asn1c.git] / tests / tests-asn1c-compiler / 43-recursion-OK.asn1.-Pfwide-types
1
2 /*** <<< INCLUDES [Test-structure-1] >>> ***/
3
4 #include <INTEGER.h>
5 #include <asn_SET_OF.h>
6 #include <constr_SET_OF.h>
7 #include <asn_SEQUENCE_OF.h>
8 #include <constr_SEQUENCE_OF.h>
9 #include <constr_SEQUENCE.h>
10
11 /*** <<< FWD-DECLS [Test-structure-1] >>> ***/
12
13 struct Test_structure_1;
14
15 /*** <<< TYPE-DECLS [Test-structure-1] >>> ***/
16
17 typedef struct Test_structure_1 {
18         struct t_member1 {
19                 A_SET_OF(struct Test_structure_1) list;
20                 
21                 /* Context for parsing across buffer boundaries */
22                 asn_struct_ctx_t _asn_ctx;
23         } t_member1;
24         struct t_member2 {
25                 A_SEQUENCE_OF(struct Test_structure_1) list;
26                 
27                 /* Context for parsing across buffer boundaries */
28                 asn_struct_ctx_t _asn_ctx;
29         } t_member2;
30         struct Test_structure_1 *t_member3;     /* OPTIONAL */
31         INTEGER_t        t_member4;
32         
33         /* Context for parsing across buffer boundaries */
34         asn_struct_ctx_t _asn_ctx;
35 } Test_structure_1_t;
36
37 /*** <<< FUNC-DECLS [Test-structure-1] >>> ***/
38
39 extern asn_TYPE_descriptor_t asn_DEF_Test_structure_1;
40 extern asn_SEQUENCE_specifics_t asn_SPC_Test_structure_1_specs_1;
41 extern asn_TYPE_member_t asn_MBR_Test_structure_1_1[4];
42
43 /*** <<< POST-INCLUDE [Test-structure-1] >>> ***/
44
45 #include "Test-structure-1.h"
46
47 /*** <<< STAT-DEFS [Test-structure-1] >>> ***/
48
49 static asn_TYPE_member_t asn_MBR_t_member1_2[] = {
50         { ATF_POINTER, 0, 0,
51                 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
52                 .tag_mode = 0,
53                 .type = &asn_DEF_Test_structure_1,
54                 .type_selector = 0,
55                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
56                 0, 0, /* No default value */
57                 .name = ""
58                 },
59 };
60 static const ber_tlv_tag_t asn_DEF_t_member1_tags_2[] = {
61         (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
62 };
63 static asn_SET_OF_specifics_t asn_SPC_t_member1_specs_2 = {
64         sizeof(struct t_member1),
65         offsetof(struct t_member1, _asn_ctx),
66         0,      /* XER encoding is XMLDelimitedItemList */
67 };
68 static /* Use -fall-defs-global to expose */
69 asn_TYPE_descriptor_t asn_DEF_t_member1_2 = {
70         "t-member1",
71         "t-member1",
72         &asn_OP_SET_OF,
73         asn_DEF_t_member1_tags_2,
74         sizeof(asn_DEF_t_member1_tags_2)
75                 /sizeof(asn_DEF_t_member1_tags_2[0]), /* 1 */
76         asn_DEF_t_member1_tags_2,       /* Same as above */
77         sizeof(asn_DEF_t_member1_tags_2)
78                 /sizeof(asn_DEF_t_member1_tags_2[0]), /* 1 */
79         { 0, 0, SET_OF_constraint },
80         asn_MBR_t_member1_2,
81         1,      /* Single element */
82         &asn_SPC_t_member1_specs_2      /* Additional specs */
83 };
84
85 static asn_TYPE_member_t asn_MBR_t_member2_4[] = {
86         { ATF_POINTER, 0, 0,
87                 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
88                 .tag_mode = 0,
89                 .type = &asn_DEF_Test_structure_1,
90                 .type_selector = 0,
91                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
92                 0, 0, /* No default value */
93                 .name = ""
94                 },
95 };
96 static const ber_tlv_tag_t asn_DEF_t_member2_tags_4[] = {
97         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
98 };
99 static asn_SET_OF_specifics_t asn_SPC_t_member2_specs_4 = {
100         sizeof(struct t_member2),
101         offsetof(struct t_member2, _asn_ctx),
102         0,      /* XER encoding is XMLDelimitedItemList */
103 };
104 static /* Use -fall-defs-global to expose */
105 asn_TYPE_descriptor_t asn_DEF_t_member2_4 = {
106         "t-member2",
107         "t-member2",
108         &asn_OP_SEQUENCE_OF,
109         asn_DEF_t_member2_tags_4,
110         sizeof(asn_DEF_t_member2_tags_4)
111                 /sizeof(asn_DEF_t_member2_tags_4[0]), /* 1 */
112         asn_DEF_t_member2_tags_4,       /* Same as above */
113         sizeof(asn_DEF_t_member2_tags_4)
114                 /sizeof(asn_DEF_t_member2_tags_4[0]), /* 1 */
115         { 0, 0, SEQUENCE_OF_constraint },
116         asn_MBR_t_member2_4,
117         1,      /* Single element */
118         &asn_SPC_t_member2_specs_4      /* Additional specs */
119 };
120
121 asn_TYPE_member_t asn_MBR_Test_structure_1_1[] = {
122         { ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member1),
123                 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
124                 .tag_mode = 0,
125                 .type = &asn_DEF_t_member1_2,
126                 .type_selector = 0,
127                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
128                 0, 0, /* No default value */
129                 .name = "t-member1"
130                 },
131         { ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member2),
132                 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
133                 .tag_mode = 0,
134                 .type = &asn_DEF_t_member2_4,
135                 .type_selector = 0,
136                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
137                 0, 0, /* No default value */
138                 .name = "t-member2"
139                 },
140         { ATF_POINTER, 1, offsetof(struct Test_structure_1, t_member3),
141                 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
142                 .tag_mode = 0,
143                 .type = &asn_DEF_Test_structure_1,
144                 .type_selector = 0,
145                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
146                 0, 0, /* No default value */
147                 .name = "t-member3"
148                 },
149         { ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member4),
150                 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
151                 .tag_mode = 0,
152                 .type = &asn_DEF_INTEGER,
153                 .type_selector = 0,
154                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
155                 0, 0, /* No default value */
156                 .name = "t-member4"
157                 },
158 };
159 static const ber_tlv_tag_t asn_DEF_Test_structure_1_tags_1[] = {
160         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
161 };
162 static const asn_TYPE_tag2member_t asn_MAP_Test_structure_1_tag2el_1[] = {
163     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, 0, 0 }, /* t-member4 */
164     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* t-member2 */
165     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 }, /* t-member3 */
166     { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 } /* t-member1 */
167 };
168 asn_SEQUENCE_specifics_t asn_SPC_Test_structure_1_specs_1 = {
169         sizeof(struct Test_structure_1),
170         offsetof(struct Test_structure_1, _asn_ctx),
171         .tag2el = asn_MAP_Test_structure_1_tag2el_1,
172         .tag2el_count = 4,      /* Count of tags in the map */
173         0, 0, 0,        /* Optional elements (not needed) */
174         -1,     /* First extension addition */
175 };
176 asn_TYPE_descriptor_t asn_DEF_Test_structure_1 = {
177         "Test-structure-1",
178         "Test-structure-1",
179         &asn_OP_SEQUENCE,
180         asn_DEF_Test_structure_1_tags_1,
181         sizeof(asn_DEF_Test_structure_1_tags_1)
182                 /sizeof(asn_DEF_Test_structure_1_tags_1[0]), /* 1 */
183         asn_DEF_Test_structure_1_tags_1,        /* Same as above */
184         sizeof(asn_DEF_Test_structure_1_tags_1)
185                 /sizeof(asn_DEF_Test_structure_1_tags_1[0]), /* 1 */
186         { 0, 0, SEQUENCE_constraint },
187         asn_MBR_Test_structure_1_1,
188         4,      /* Elements count */
189         &asn_SPC_Test_structure_1_specs_1       /* Additional specs */
190 };
191
192
193 /*** <<< INCLUDES [Choice-1] >>> ***/
194
195 #include <INTEGER.h>
196 #include <asn_SET_OF.h>
197 #include <constr_SET_OF.h>
198 #include <constr_CHOICE.h>
199
200 /*** <<< DEPS [Choice-1] >>> ***/
201
202 typedef enum Choice_1_PR {
203         Choice_1_PR_NOTHING,    /* No components present */
204         Choice_1_PR_and,
205         Choice_1_PR_or,
206         Choice_1_PR_not,
207         Choice_1_PR_other
208 } Choice_1_PR;
209
210 /*** <<< FWD-DECLS [Choice-1] >>> ***/
211
212 struct Choice_1;
213
214 /*** <<< TYPE-DECLS [Choice-1] >>> ***/
215
216 typedef struct Choice_1 {
217         Choice_1_PR present;
218         union Choice_1_u {
219                 struct Choice_1 *And;
220                 struct Or {
221                         A_SET_OF(struct Choice_1) list;
222                         
223                         /* Context for parsing across buffer boundaries */
224                         asn_struct_ctx_t _asn_ctx;
225                 } Or;
226                 struct Choice_1 *Not;
227                 INTEGER_t        other;
228         } choice;
229         
230         /* Context for parsing across buffer boundaries */
231         asn_struct_ctx_t _asn_ctx;
232 } Choice_1_t;
233
234 /*** <<< FUNC-DECLS [Choice-1] >>> ***/
235
236 extern asn_TYPE_descriptor_t asn_DEF_Choice_1;
237 extern asn_CHOICE_specifics_t asn_SPC_Choice_1_specs_1;
238 extern asn_TYPE_member_t asn_MBR_Choice_1_1[4];
239
240 /*** <<< POST-INCLUDE [Choice-1] >>> ***/
241
242 #include "Choice-1.h"
243
244 /*** <<< STAT-DEFS [Choice-1] >>> ***/
245
246 static asn_TYPE_member_t asn_MBR_or_3[] = {
247         { ATF_POINTER, 0, 0,
248                 .tag = -1 /* Ambiguous tag (CHOICE?) */,
249                 .tag_mode = 0,
250                 .type = &asn_DEF_Choice_1,
251                 .type_selector = 0,
252                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
253                 0, 0, /* No default value */
254                 .name = ""
255                 },
256 };
257 static const ber_tlv_tag_t asn_DEF_or_tags_3[] = {
258         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
259         (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
260 };
261 static asn_SET_OF_specifics_t asn_SPC_or_specs_3 = {
262         sizeof(struct Or),
263         offsetof(struct Or, _asn_ctx),
264         2,      /* XER encoding is XMLValueList */
265 };
266 static /* Use -fall-defs-global to expose */
267 asn_TYPE_descriptor_t asn_DEF_or_3 = {
268         "or",
269         "or",
270         &asn_OP_SET_OF,
271         asn_DEF_or_tags_3,
272         sizeof(asn_DEF_or_tags_3)
273                 /sizeof(asn_DEF_or_tags_3[0]) - 1, /* 1 */
274         asn_DEF_or_tags_3,      /* Same as above */
275         sizeof(asn_DEF_or_tags_3)
276                 /sizeof(asn_DEF_or_tags_3[0]), /* 2 */
277         { 0, 0, SET_OF_constraint },
278         asn_MBR_or_3,
279         1,      /* Single element */
280         &asn_SPC_or_specs_3     /* Additional specs */
281 };
282
283 asn_TYPE_member_t asn_MBR_Choice_1_1[] = {
284         { ATF_POINTER, 0, offsetof(struct Choice_1, choice.And),
285                 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
286                 .tag_mode = +1, /* EXPLICIT tag at current level */
287                 .type = &asn_DEF_Choice_1,
288                 .type_selector = 0,
289                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
290                 0, 0, /* No default value */
291                 .name = "and"
292                 },
293         { ATF_NOFLAGS, 0, offsetof(struct Choice_1, choice.Or),
294                 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
295                 .tag_mode = 0,
296                 .type = &asn_DEF_or_3,
297                 .type_selector = 0,
298                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
299                 0, 0, /* No default value */
300                 .name = "or"
301                 },
302         { ATF_POINTER, 0, offsetof(struct Choice_1, choice.Not),
303                 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
304                 .tag_mode = +1, /* EXPLICIT tag at current level */
305                 .type = &asn_DEF_Choice_1,
306                 .type_selector = 0,
307                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
308                 0, 0, /* No default value */
309                 .name = "not"
310                 },
311         { ATF_NOFLAGS, 0, offsetof(struct Choice_1, choice.other),
312                 .tag = (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
313                 .tag_mode = +1, /* EXPLICIT tag at current level */
314                 .type = &asn_DEF_INTEGER,
315                 .type_selector = 0,
316                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
317                 0, 0, /* No default value */
318                 .name = "other"
319                 },
320 };
321 static const asn_TYPE_tag2member_t asn_MAP_Choice_1_tag2el_1[] = {
322     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* and */
323     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* or */
324     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* not */
325     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* other */
326 };
327 asn_CHOICE_specifics_t asn_SPC_Choice_1_specs_1 = {
328         sizeof(struct Choice_1),
329         offsetof(struct Choice_1, _asn_ctx),
330         offsetof(struct Choice_1, present),
331         sizeof(((struct Choice_1 *)0)->present),
332         .tag2el = asn_MAP_Choice_1_tag2el_1,
333         .tag2el_count = 4,      /* Count of tags in the map */
334         0, 0,
335         .first_extension = -1   /* Extensions start */
336 };
337 asn_TYPE_descriptor_t asn_DEF_Choice_1 = {
338         "Choice-1",
339         "Choice-1",
340         &asn_OP_CHOICE,
341         0,      /* No effective tags (pointer) */
342         0,      /* No effective tags (count) */
343         0,      /* No tags (pointer) */
344         0,      /* No tags (count) */
345         { 0, 0, CHOICE_constraint },
346         asn_MBR_Choice_1_1,
347         4,      /* Elements count */
348         &asn_SPC_Choice_1_specs_1       /* Additional specs */
349 };
350
351
352 /*** <<< INCLUDES [Test-structure-2] >>> ***/
353
354 #include <constr_SET.h>
355
356 /*** <<< DEPS [Test-structure-2] >>> ***/
357
358
359 /*
360  * Method of determining the components presence
361  */
362 typedef enum Test_structure_2_PR {
363         Test_structure_2_PR_m1, /* Member m1 is present */
364 } Test_structure_2_PR;
365
366 /*** <<< FWD-DECLS [Test-structure-2] >>> ***/
367
368 struct Test_structure_3;
369
370 /*** <<< TYPE-DECLS [Test-structure-2] >>> ***/
371
372 typedef struct Test_structure_2 {
373         struct Test_structure_3 *m1;    /* OPTIONAL */
374         
375         /* Presence bitmask: ASN_SET_ISPRESENT(pTest_structure_2, Test_structure_2_PR_x) */
376         unsigned int _presence_map
377                 [((1+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
378         
379         /* Context for parsing across buffer boundaries */
380         asn_struct_ctx_t _asn_ctx;
381 } Test_structure_2_t;
382
383 /*** <<< FUNC-DECLS [Test-structure-2] >>> ***/
384
385 extern asn_TYPE_descriptor_t asn_DEF_Test_structure_2;
386 extern asn_SET_specifics_t asn_SPC_Test_structure_2_specs_1;
387 extern asn_TYPE_member_t asn_MBR_Test_structure_2_1[1];
388
389 /*** <<< POST-INCLUDE [Test-structure-2] >>> ***/
390
391 #include "Test-structure-3.h"
392
393 /*** <<< STAT-DEFS [Test-structure-2] >>> ***/
394
395 asn_TYPE_member_t asn_MBR_Test_structure_2_1[] = {
396         { ATF_POINTER, 1, offsetof(struct Test_structure_2, m1),
397                 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
398                 .tag_mode = 0,
399                 .type = &asn_DEF_Test_structure_3,
400                 .type_selector = 0,
401                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
402                 0, 0, /* No default value */
403                 .name = "m1"
404                 },
405 };
406 static const ber_tlv_tag_t asn_DEF_Test_structure_2_tags_1[] = {
407         (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
408 };
409 static const asn_TYPE_tag2member_t asn_MAP_Test_structure_2_tag2el_1[] = {
410     { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 } /* m1 */
411 };
412 static const uint8_t asn_MAP_Test_structure_2_mmap_1[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
413         (0 << 7)
414 };
415 asn_SET_specifics_t asn_SPC_Test_structure_2_specs_1 = {
416         sizeof(struct Test_structure_2),
417         offsetof(struct Test_structure_2, _asn_ctx),
418         offsetof(struct Test_structure_2, _presence_map),
419         .tag2el = asn_MAP_Test_structure_2_tag2el_1,
420         .tag2el_count = 1,      /* Count of tags in the map */
421         asn_MAP_Test_structure_2_tag2el_1,      /* Same as above */
422         1,      /* Count of tags in the CXER map */
423         0,      /* Whether extensible */
424         (const unsigned int *)asn_MAP_Test_structure_2_mmap_1   /* Mandatory elements map */
425 };
426 asn_TYPE_descriptor_t asn_DEF_Test_structure_2 = {
427         "Test-structure-2",
428         "Test-structure-2",
429         &asn_OP_SET,
430         asn_DEF_Test_structure_2_tags_1,
431         sizeof(asn_DEF_Test_structure_2_tags_1)
432                 /sizeof(asn_DEF_Test_structure_2_tags_1[0]), /* 1 */
433         asn_DEF_Test_structure_2_tags_1,        /* Same as above */
434         sizeof(asn_DEF_Test_structure_2_tags_1)
435                 /sizeof(asn_DEF_Test_structure_2_tags_1[0]), /* 1 */
436         { 0, 0, SET_constraint },
437         asn_MBR_Test_structure_2_1,
438         1,      /* Elements count */
439         &asn_SPC_Test_structure_2_specs_1       /* Additional specs */
440 };
441
442
443 /*** <<< INCLUDES [Test-structure-3] >>> ***/
444
445 #include <constr_SET.h>
446
447 /*** <<< DEPS [Test-structure-3] >>> ***/
448
449
450 /*
451  * Method of determining the components presence
452  */
453 typedef enum Test_structure_3_PR {
454         Test_structure_3_PR_m1, /* Member m1 is present */
455 } Test_structure_3_PR;
456
457 /*** <<< FWD-DECLS [Test-structure-3] >>> ***/
458
459 struct Test_structure_2;
460
461 /*** <<< TYPE-DECLS [Test-structure-3] >>> ***/
462
463 typedef struct Test_structure_3 {
464         struct Test_structure_2 *m1;    /* OPTIONAL */
465         
466         /* Presence bitmask: ASN_SET_ISPRESENT(pTest_structure_3, Test_structure_3_PR_x) */
467         unsigned int _presence_map
468                 [((1+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
469         
470         /* Context for parsing across buffer boundaries */
471         asn_struct_ctx_t _asn_ctx;
472 } Test_structure_3_t;
473
474 /*** <<< FUNC-DECLS [Test-structure-3] >>> ***/
475
476 extern asn_TYPE_descriptor_t asn_DEF_Test_structure_3;
477 extern asn_SET_specifics_t asn_SPC_Test_structure_3_specs_1;
478 extern asn_TYPE_member_t asn_MBR_Test_structure_3_1[1];
479
480 /*** <<< POST-INCLUDE [Test-structure-3] >>> ***/
481
482 #include "Test-structure-2.h"
483
484 /*** <<< STAT-DEFS [Test-structure-3] >>> ***/
485
486 asn_TYPE_member_t asn_MBR_Test_structure_3_1[] = {
487         { ATF_POINTER, 1, offsetof(struct Test_structure_3, m1),
488                 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
489                 .tag_mode = 0,
490                 .type = &asn_DEF_Test_structure_2,
491                 .type_selector = 0,
492                 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
493                 0, 0, /* No default value */
494                 .name = "m1"
495                 },
496 };
497 static const ber_tlv_tag_t asn_DEF_Test_structure_3_tags_1[] = {
498         (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
499 };
500 static const asn_TYPE_tag2member_t asn_MAP_Test_structure_3_tag2el_1[] = {
501     { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 } /* m1 */
502 };
503 static const uint8_t asn_MAP_Test_structure_3_mmap_1[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
504         (0 << 7)
505 };
506 asn_SET_specifics_t asn_SPC_Test_structure_3_specs_1 = {
507         sizeof(struct Test_structure_3),
508         offsetof(struct Test_structure_3, _asn_ctx),
509         offsetof(struct Test_structure_3, _presence_map),
510         .tag2el = asn_MAP_Test_structure_3_tag2el_1,
511         .tag2el_count = 1,      /* Count of tags in the map */
512         asn_MAP_Test_structure_3_tag2el_1,      /* Same as above */
513         1,      /* Count of tags in the CXER map */
514         0,      /* Whether extensible */
515         (const unsigned int *)asn_MAP_Test_structure_3_mmap_1   /* Mandatory elements map */
516 };
517 asn_TYPE_descriptor_t asn_DEF_Test_structure_3 = {
518         "Test-structure-3",
519         "Test-structure-3",
520         &asn_OP_SET,
521         asn_DEF_Test_structure_3_tags_1,
522         sizeof(asn_DEF_Test_structure_3_tags_1)
523                 /sizeof(asn_DEF_Test_structure_3_tags_1[0]), /* 1 */
524         asn_DEF_Test_structure_3_tags_1,        /* Same as above */
525         sizeof(asn_DEF_Test_structure_3_tags_1)
526                 /sizeof(asn_DEF_Test_structure_3_tags_1[0]), /* 1 */
527         { 0, 0, SET_constraint },
528         asn_MBR_Test_structure_3_1,
529         1,      /* Elements count */
530         &asn_SPC_Test_structure_3_specs_1       /* Additional specs */
531 };
532