blob: b427ae5a6cda6b87c0b2504b432e02a446c6c56f [file] [log] [blame]
vlmfa67ddc2004-06-03 03:38:44 +00001
2/*** <<< DEPS [T] >>> ***/
3
4/* Dependencies for T */
5#include <INTEGER.h>
6
7/* Dependencies for collection */
8#include <T2.h>
9#include <asn_SEQUENCE_OF.h>
10
11 #include <constr_SEQUENCE_OF.h>
12#include <constr_SEQUENCE.h>
13
14extern asn1_TYPE_descriptor_t asn1_DEF_T;
15
16/*** <<< TYPE-DECLS [T] >>> ***/
17
18
19typedef struct T {
20 INTEGER_t int;
21 struct collection {
22 A_SEQUENCE_OF(struct T2) list;
23
24 /* Context for parsing across buffer boundaries */
25 ber_dec_ctx_t _ber_dec_ctx;
26 } collection;
27
28 /* Context for parsing across buffer boundaries */
29 ber_dec_ctx_t _ber_dec_ctx;
30} T_t;
31
32/*** <<< STAT-DEFS [T] >>> ***/
33
34 static asn1_SET_OF_element_t asn1_DEF_collection_elements[] = {
35 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
36 (void *)&asn1_DEF_T2 },
37 };
38 static ber_tlv_tag_t asn1_DEF_collection_tags[] = {
39 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
40 };
41 static asn1_SET_OF_specifics_t asn1_DEF_collection_specs = {
42 sizeof(struct collection),
43 offsetof(struct collection, _ber_dec_ctx),
44 asn1_DEF_collection_elements
45 };
46 asn1_TYPE_descriptor_t asn1_DEF_collection = {
47 "collection",
48 SEQUENCE_OF_constraint,
49 SEQUENCE_OF_decode_ber,
50 SEQUENCE_OF_encode_der,
51 SEQUENCE_OF_print,
52 SEQUENCE_OF_free,
53 0, /* Use generic outmost tag fetcher */
54 asn1_DEF_collection_tags,
55 sizeof(asn1_DEF_collection_tags)
56 /sizeof(asn1_DEF_collection_tags[0]),
57 0, /* Tags to skip */
58 1, /* Whether CONSTRUCTED */
59 &asn1_DEF_collection_specs /* Additional specs */
60 };
61
62#include <constr_SEQUENCE.h>
63
64static asn1_SEQUENCE_element_t asn1_DEF_T_elements[] = {
65 { offsetof(struct T, int), 0,
66 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
67 0,
68 (void *)&asn1_DEF_INTEGER,
69 "int"
70 },
71 { offsetof(struct T, collection), 0,
72 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
73 0,
74 (void *)&asn1_DEF_collection,
75 "collection"
76 },
77};
78static ber_tlv_tag_t asn1_DEF_T_tags[] = {
79 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
80};
vlm35efd1b2004-06-06 07:20:52 +000081static asn1_TYPE_tag2member_t asn1_DEF_T_tag2el[] = {
82 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0 }, /* int at 15 */
83 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1 }, /* collection at 17 */
84};
vlmfa67ddc2004-06-03 03:38:44 +000085static asn1_SEQUENCE_specifics_t asn1_DEF_T_specs = {
86 sizeof(struct T),
87 offsetof(struct T, _ber_dec_ctx),
88 asn1_DEF_T_elements,
89 2, /* Elements count */
vlm35efd1b2004-06-06 07:20:52 +000090 asn1_DEF_T_tag2el,
91 2, /* Count of tags in the map */
vlmfa67ddc2004-06-03 03:38:44 +000092 -1, /* Start extensions */
93 -1 /* Stop extensions */
94};
95asn1_TYPE_descriptor_t asn1_DEF_T = {
96 "T",
97 SEQUENCE_constraint,
98 SEQUENCE_decode_ber,
99 SEQUENCE_encode_der,
100 SEQUENCE_print,
101 SEQUENCE_free,
102 0, /* Use generic outmost tag fetcher */
103 asn1_DEF_T_tags,
104 sizeof(asn1_DEF_T_tags)
105 /sizeof(asn1_DEF_T_tags[0]),
106 0, /* Tags to skip */
107 1, /* Whether CONSTRUCTED */
108 &asn1_DEF_T_specs /* Additional specs */
109};
110
111
112/*** <<< DEPS [T2] >>> ***/
113
114/* Dependencies for T2 */
115#include <BOOLEAN.h>
116#include <UTF8String.h>
117
118#include <constr_SEQUENCE.h>
119
120extern asn1_TYPE_descriptor_t asn1_DEF_T2;
121
122/*** <<< TYPE-DECLS [T2] >>> ***/
123
124
125typedef struct T2 {
126 BOOLEAN_t flag;
127 UTF8String_t str;
128
129 /* Context for parsing across buffer boundaries */
130 ber_dec_ctx_t _ber_dec_ctx;
131} T2_t;
132
133/*** <<< STAT-DEFS [T2] >>> ***/
134
135#include <constr_SEQUENCE.h>
136
137static asn1_SEQUENCE_element_t asn1_DEF_T2_elements[] = {
138 { offsetof(struct T2, flag), 0,
139 (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
140 0,
141 (void *)&asn1_DEF_BOOLEAN,
142 "flag"
143 },
144 { offsetof(struct T2, str), 0,
145 (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)),
146 0,
147 (void *)&asn1_DEF_UTF8String,
148 "str"
149 },
150};
151static ber_tlv_tag_t asn1_DEF_T2_tags[] = {
152 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
153};
vlm35efd1b2004-06-06 07:20:52 +0000154static asn1_TYPE_tag2member_t asn1_DEF_T2_tag2el[] = {
155 { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 0 }, /* flag at 20 */
156 { (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)), 1 }, /* str at 21 */
157};
vlmfa67ddc2004-06-03 03:38:44 +0000158static asn1_SEQUENCE_specifics_t asn1_DEF_T2_specs = {
159 sizeof(struct T2),
160 offsetof(struct T2, _ber_dec_ctx),
161 asn1_DEF_T2_elements,
162 2, /* Elements count */
vlm35efd1b2004-06-06 07:20:52 +0000163 asn1_DEF_T2_tag2el,
164 2, /* Count of tags in the map */
vlmfa67ddc2004-06-03 03:38:44 +0000165 -1, /* Start extensions */
166 -1 /* Stop extensions */
167};
168asn1_TYPE_descriptor_t asn1_DEF_T2 = {
169 "T2",
170 SEQUENCE_constraint,
171 SEQUENCE_decode_ber,
172 SEQUENCE_encode_der,
173 SEQUENCE_print,
174 SEQUENCE_free,
175 0, /* Use generic outmost tag fetcher */
176 asn1_DEF_T2_tags,
177 sizeof(asn1_DEF_T2_tags)
178 /sizeof(asn1_DEF_T2_tags[0]),
179 0, /* Tags to skip */
180 1, /* Whether CONSTRUCTED */
181 &asn1_DEF_T2_specs /* Additional specs */
182};
183