blob: bda3445f71471838213d4e4b9a4fbf4435a813cb [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
Bi-Ruei, Chiu9b87e5b2016-06-06 00:23:16 +080010/*** <<< FWD-DEFS [Type] >>> ***/
11
12typedef struct Member {
13 Type1_t t1;
14 Type2_t t2;
15
16 /* Context for parsing across buffer boundaries */
17 asn_struct_ctx_t _asn_ctx;
18} Member;
19
Lev Walkinb7f17972005-03-04 09:10:19 +000020/*** <<< TYPE-DECLS [Type] >>> ***/
21
Lev Walkinb7f17972005-03-04 09:10:19 +000022typedef struct Type {
Bi-Ruei, Chiu9b87e5b2016-06-06 00:23:16 +080023 A_SET_OF(Member) list;
Lev Walkinb7f17972005-03-04 09:10:19 +000024
25 /* Context for parsing across buffer boundaries */
26 asn_struct_ctx_t _asn_ctx;
27} Type_t;
28
Lev Walkinc8285712005-03-04 22:18:20 +000029/*** <<< FUNC-DECLS [Type] >>> ***/
30
31extern asn_TYPE_descriptor_t asn_DEF_Type;
32
Lev Walkinb7f17972005-03-04 09:10:19 +000033/*** <<< STAT-DEFS [Type] >>> ***/
34
35static asn_TYPE_member_t asn_MBR_Member_2[] = {
36 { ATF_NOFLAGS, 0, offsetof(struct Member, t1),
37 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
38 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000039 .type = &asn_DEF_Type1,
Lev Walkin67a30122017-08-10 05:48:54 -070040 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -070041 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +000042 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000043 .name = "t1"
44 },
45 { ATF_NOFLAGS, 0, offsetof(struct Member, t2),
46 .tag = -1 /* Ambiguous tag (CHOICE?) */,
47 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000048 .type = &asn_DEF_Type2,
Lev Walkin67a30122017-08-10 05:48:54 -070049 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -070050 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +000051 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000052 .name = "t2"
53 },
54};
Lev Walkina7591b52014-10-12 18:37:35 -070055static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +000056 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
57};
Lev Walkina7591b52014-10-12 18:37:35 -070058static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -070059 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* t1 */
60 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* one-name */
61 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name */
Lev Walkinb7f17972005-03-04 09:10:19 +000062};
Lev Walkin59b176e2005-11-26 11:25:14 +000063static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +000064 sizeof(struct Member),
65 offsetof(struct Member, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -070066 .tag2el = asn_MAP_Member_tag2el_2,
67 .tag2el_count = 3, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +000068 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +000069 -1, /* Start extensions */
70 -1 /* Stop extensions */
71};
72static /* Use -fall-defs-global to expose */
73asn_TYPE_descriptor_t asn_DEF_Member_2 = {
Lev Walkin59b176e2005-11-26 11:25:14 +000074 "SEQUENCE",
75 "SEQUENCE",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +080076 &asn_OP_SEQUENCE,
Lev Walkin59b176e2005-11-26 11:25:14 +000077 asn_DEF_Member_tags_2,
78 sizeof(asn_DEF_Member_tags_2)
79 /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
80 asn_DEF_Member_tags_2, /* Same as above */
81 sizeof(asn_DEF_Member_tags_2)
82 /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -070083 { 0, 0, SEQUENCE_constraint },
Lev Walkinb7f17972005-03-04 09:10:19 +000084 asn_MBR_Member_2,
85 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +000086 &asn_SPC_Member_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +000087};
88
89static asn_TYPE_member_t asn_MBR_Type_1[] = {
Lev Walkin8eb4b572005-08-16 16:57:17 +000090 { ATF_POINTER, 0, 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000091 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
92 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +000093 .type = &asn_DEF_Member_2,
Lev Walkin67a30122017-08-10 05:48:54 -070094 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -070095 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +000096 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +000097 .name = ""
98 },
99};
Lev Walkina7591b52014-10-12 18:37:35 -0700100static const ber_tlv_tag_t asn_DEF_Type_tags_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000101 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
102};
Lev Walkin59b176e2005-11-26 11:25:14 +0000103static asn_SET_OF_specifics_t asn_SPC_Type_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000104 sizeof(struct Type),
105 offsetof(struct Type, _asn_ctx),
106 0, /* XER encoding is XMLDelimitedItemList */
107};
108asn_TYPE_descriptor_t asn_DEF_Type = {
109 "Type",
110 "Type",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800111 &asn_OP_SET_OF,
Lev Walkin59b176e2005-11-26 11:25:14 +0000112 asn_DEF_Type_tags_1,
113 sizeof(asn_DEF_Type_tags_1)
114 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
115 asn_DEF_Type_tags_1, /* Same as above */
116 sizeof(asn_DEF_Type_tags_1)
117 /sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700118 { 0, 0, SET_OF_constraint },
Lev Walkinb7f17972005-03-04 09:10:19 +0000119 asn_MBR_Type_1,
120 1, /* Single element */
Lev Walkin59b176e2005-11-26 11:25:14 +0000121 &asn_SPC_Type_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000122};
123
124
125/*** <<< INCLUDES [Type1] >>> ***/
126
127#include <INTEGER.h>
128#include <constr_SEQUENCE.h>
129#include <constr_CHOICE.h>
130
131/*** <<< DEPS [Type1] >>> ***/
132
133typedef enum one_name_PR {
134 one_name_PR_NOTHING, /* No components present */
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000135 one_name_PR_another_name
Lev Walkinb7f17972005-03-04 09:10:19 +0000136} one_name_PR;
Lev Walkinb7f17972005-03-04 09:10:19 +0000137
138/*** <<< TYPE-DECLS [Type1] >>> ***/
139
Lev Walkinb7f17972005-03-04 09:10:19 +0000140typedef struct Type1 {
141 struct one_name {
142 one_name_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +0000143 union Type1__one_name_u {
Lev Walkinb7f17972005-03-04 09:10:19 +0000144 struct another_name {
145 INTEGER_t a;
146 INTEGER_t b;
147
148 /* Context for parsing across buffer boundaries */
149 asn_struct_ctx_t _asn_ctx;
150 } another_name;
151 } choice;
152
153 /* Context for parsing across buffer boundaries */
154 asn_struct_ctx_t _asn_ctx;
155 } one_name;
156
157 /* Context for parsing across buffer boundaries */
158 asn_struct_ctx_t _asn_ctx;
159} Type1_t;
160
Lev Walkinc8285712005-03-04 22:18:20 +0000161/*** <<< FUNC-DECLS [Type1] >>> ***/
162
163extern asn_TYPE_descriptor_t asn_DEF_Type1;
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800164extern asn_SEQUENCE_specifics_t asn_SPC_Type1_specs_1;
165extern asn_TYPE_member_t asn_MBR_Type1_1[1];
Lev Walkinc8285712005-03-04 22:18:20 +0000166
Lev Walkinb7f17972005-03-04 09:10:19 +0000167/*** <<< STAT-DEFS [Type1] >>> ***/
168
169static asn_TYPE_member_t asn_MBR_another_name_3[] = {
170 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
171 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
172 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000173 .type = &asn_DEF_INTEGER,
Lev Walkin67a30122017-08-10 05:48:54 -0700174 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700175 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000176 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000177 .name = "a"
178 },
179 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
180 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
181 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000182 .type = &asn_DEF_INTEGER,
Lev Walkin67a30122017-08-10 05:48:54 -0700183 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700184 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000185 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000186 .name = "b"
187 },
188};
Lev Walkina7591b52014-10-12 18:37:35 -0700189static const ber_tlv_tag_t asn_DEF_another_name_tags_3[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000190 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
191};
Lev Walkina7591b52014-10-12 18:37:35 -0700192static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_3[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700193 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* a */
194 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* b */
Lev Walkinb7f17972005-03-04 09:10:19 +0000195};
Lev Walkin59b176e2005-11-26 11:25:14 +0000196static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_3 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000197 sizeof(struct another_name),
198 offsetof(struct another_name, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -0700199 .tag2el = asn_MAP_another_name_tag2el_3,
200 .tag2el_count = 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000201 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000202 -1, /* Start extensions */
203 -1 /* Stop extensions */
204};
205static /* Use -fall-defs-global to expose */
206asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
207 "another-name",
208 "another-name",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800209 &asn_OP_SEQUENCE,
Lev Walkin59b176e2005-11-26 11:25:14 +0000210 asn_DEF_another_name_tags_3,
211 sizeof(asn_DEF_another_name_tags_3)
212 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
213 asn_DEF_another_name_tags_3, /* Same as above */
214 sizeof(asn_DEF_another_name_tags_3)
215 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700216 { 0, 0, SEQUENCE_constraint },
Lev Walkinb7f17972005-03-04 09:10:19 +0000217 asn_MBR_another_name_3,
218 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000219 &asn_SPC_another_name_specs_3 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000220};
221
222static asn_TYPE_member_t asn_MBR_one_name_2[] = {
223 { ATF_NOFLAGS, 0, offsetof(struct one_name, choice.another_name),
224 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
225 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000226 .type = &asn_DEF_another_name_3,
Lev Walkin67a30122017-08-10 05:48:54 -0700227 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700228 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000229 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000230 .name = "another-name"
231 },
232};
Lev Walkina7591b52014-10-12 18:37:35 -0700233static const asn_TYPE_tag2member_t asn_MAP_one_name_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700234 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000235};
Lev Walkin59b176e2005-11-26 11:25:14 +0000236static asn_CHOICE_specifics_t asn_SPC_one_name_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000237 sizeof(struct one_name),
238 offsetof(struct one_name, _asn_ctx),
239 offsetof(struct one_name, present),
240 sizeof(((struct one_name *)0)->present),
Lev Walkine3917082017-08-23 10:29:38 -0700241 .tag2el = asn_MAP_one_name_tag2el_2,
242 .tag2el_count = 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000243 .canonical_order = 0,
244 .ext_start = -1 /* Extensions start */
Lev Walkinb7f17972005-03-04 09:10:19 +0000245};
246static /* Use -fall-defs-global to expose */
247asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
248 "one-name",
249 "one-name",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800250 &asn_OP_CHOICE,
Lev Walkinb7f17972005-03-04 09:10:19 +0000251 0, /* No effective tags (pointer) */
252 0, /* No effective tags (count) */
253 0, /* No tags (pointer) */
254 0, /* No tags (count) */
Lev Walkin0bfea562017-09-29 23:16:48 -0700255 { 0, 0, CHOICE_constraint },
Lev Walkinb7f17972005-03-04 09:10:19 +0000256 asn_MBR_one_name_2,
257 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000258 &asn_SPC_one_name_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000259};
260
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800261asn_TYPE_member_t asn_MBR_Type1_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000262 { ATF_NOFLAGS, 0, offsetof(struct Type1, one_name),
263 .tag = -1 /* Ambiguous tag (CHOICE?) */,
264 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000265 .type = &asn_DEF_one_name_2,
Lev Walkin67a30122017-08-10 05:48:54 -0700266 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700267 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000268 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000269 .name = "one-name"
270 },
271};
Lev Walkina7591b52014-10-12 18:37:35 -0700272static const ber_tlv_tag_t asn_DEF_Type1_tags_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000273 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
274};
Lev Walkina7591b52014-10-12 18:37:35 -0700275static const asn_TYPE_tag2member_t asn_MAP_Type1_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700276 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000277};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800278asn_SEQUENCE_specifics_t asn_SPC_Type1_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000279 sizeof(struct Type1),
280 offsetof(struct Type1, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -0700281 .tag2el = asn_MAP_Type1_tag2el_1,
282 .tag2el_count = 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000283 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000284 -1, /* Start extensions */
285 -1 /* Stop extensions */
286};
287asn_TYPE_descriptor_t asn_DEF_Type1 = {
288 "Type1",
289 "Type1",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800290 &asn_OP_SEQUENCE,
Lev Walkin59b176e2005-11-26 11:25:14 +0000291 asn_DEF_Type1_tags_1,
292 sizeof(asn_DEF_Type1_tags_1)
293 /sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
294 asn_DEF_Type1_tags_1, /* Same as above */
295 sizeof(asn_DEF_Type1_tags_1)
296 /sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700297 { 0, 0, SEQUENCE_constraint },
Lev Walkinb7f17972005-03-04 09:10:19 +0000298 asn_MBR_Type1_1,
299 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000300 &asn_SPC_Type1_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000301};
302
303
304/*** <<< INCLUDES [Type2] >>> ***/
305
306#include <BIT_STRING.h>
307#include <INTEGER.h>
308#include <constr_SEQUENCE.h>
309#include <constr_SET.h>
310#include <constr_CHOICE.h>
311
312/*** <<< DEPS [Type2] >>> ***/
313
314typedef enum Type2_PR {
315 Type2_PR_NOTHING, /* No components present */
316 Type2_PR_one_name,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000317 Type2_PR_two_name
Lev Walkinb7f17972005-03-04 09:10:19 +0000318} Type2_PR;
Lev Walkinb02a8832005-08-13 23:51:47 +0000319typedef enum a {
320 a_one = 0
Lev Walkin171487e2006-03-21 07:25:18 +0000321} e_a;
Lev Walkinb7f17972005-03-04 09:10:19 +0000322
323/*
324 * Method of determining the components presence
325 */
326typedef enum two_name_PR {
327 two_name_PR_another_name, /* Member another_name is present */
328} two_name_PR;
Lev Walkinb02a8832005-08-13 23:51:47 +0000329typedef enum a {
330 a_one = 0
Lev Walkin171487e2006-03-21 07:25:18 +0000331} e_a;
Lev Walkinb7f17972005-03-04 09:10:19 +0000332
333/*** <<< TYPE-DECLS [Type2] >>> ***/
334
Lev Walkinb7f17972005-03-04 09:10:19 +0000335typedef struct Type2 {
336 Type2_PR present;
Lev Walkin0f5d74c2005-08-14 15:03:31 +0000337 union Type2_u {
Lev Walkinb7f17972005-03-04 09:10:19 +0000338 struct one_name {
339 struct another_name {
340 BIT_STRING_t a;
341 INTEGER_t b;
342
343 /* Context for parsing across buffer boundaries */
344 asn_struct_ctx_t _asn_ctx;
345 } another_name;
346
347 /* Context for parsing across buffer boundaries */
348 asn_struct_ctx_t _asn_ctx;
349 } one_name;
350 struct two_name {
351 struct another_name {
352 BIT_STRING_t a;
353 INTEGER_t b;
354
355 /* Context for parsing across buffer boundaries */
356 asn_struct_ctx_t _asn_ctx;
357 } another_name;
358
359 /* Presence bitmask: ASN_SET_ISPRESENT(ptwo_name, two_name_PR_x) */
360 unsigned int _presence_map
361 [((1+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
362
363 /* Context for parsing across buffer boundaries */
364 asn_struct_ctx_t _asn_ctx;
365 } two_name;
366 } choice;
367
368 /* Context for parsing across buffer boundaries */
369 asn_struct_ctx_t _asn_ctx;
370} Type2_t;
371
Lev Walkinc8285712005-03-04 22:18:20 +0000372/*** <<< FUNC-DECLS [Type2] >>> ***/
373
374extern asn_TYPE_descriptor_t asn_DEF_Type2;
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800375extern asn_CHOICE_specifics_t asn_SPC_Type2_specs_1;
376extern asn_TYPE_member_t asn_MBR_Type2_1[2];
Lev Walkinc8285712005-03-04 22:18:20 +0000377
Lev Walkinb7f17972005-03-04 09:10:19 +0000378/*** <<< CODE [Type2] >>> ***/
379
380static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000381memb_a_constraint_3(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000382 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkinb7f17972005-03-04 09:10:19 +0000383 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
384 size_t size;
385
386 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700387 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000388 "%s: value not given (%s:%d)",
389 td->name, __FILE__, __LINE__);
390 return -1;
391 }
392
393 if(st->size > 0) {
394 /* Size in bits */
Lev Walkin1b1c5fc2006-09-08 19:38:11 +0000395 size = 8 * st->size - (st->bits_unused & 0x07);
Lev Walkinb7f17972005-03-04 09:10:19 +0000396 } else {
397 size = 0;
398 }
399
400 if((size == 2)) {
401 /* Constraint check succeeded */
402 return 0;
403 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700404 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000405 "%s: constraint failed (%s:%d)",
406 td->name, __FILE__, __LINE__);
407 return -1;
408 }
409}
410
411static int
Lev Walkin59b176e2005-11-26 11:25:14 +0000412memb_a_constraint_8(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000413 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkinb7f17972005-03-04 09:10:19 +0000414 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
415 size_t size;
416
417 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700418 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000419 "%s: value not given (%s:%d)",
420 td->name, __FILE__, __LINE__);
421 return -1;
422 }
423
424 if(st->size > 0) {
425 /* Size in bits */
Lev Walkin1b1c5fc2006-09-08 19:38:11 +0000426 size = 8 * st->size - (st->bits_unused & 0x07);
Lev Walkinb7f17972005-03-04 09:10:19 +0000427 } else {
428 size = 0;
429 }
430
431 if((size == 2)) {
432 /* Constraint check succeeded */
433 return 0;
434 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700435 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinb7f17972005-03-04 09:10:19 +0000436 "%s: constraint failed (%s:%d)",
437 td->name, __FILE__, __LINE__);
438 return -1;
439 }
440}
441
442
443/*** <<< STAT-DEFS [Type2] >>> ***/
444
445static asn_TYPE_member_t asn_MBR_another_name_3[] = {
446 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
447 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
448 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000449 .type = &asn_DEF_BIT_STRING,
Lev Walkin67a30122017-08-10 05:48:54 -0700450 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700451 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = memb_a_constraint_3 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000452 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000453 .name = "a"
454 },
455 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
456 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
457 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000458 .type = &asn_DEF_INTEGER,
Lev Walkin67a30122017-08-10 05:48:54 -0700459 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700460 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000461 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000462 .name = "b"
463 },
464};
Lev Walkina7591b52014-10-12 18:37:35 -0700465static const ber_tlv_tag_t asn_DEF_another_name_tags_3[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000466 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
467};
Lev Walkina7591b52014-10-12 18:37:35 -0700468static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_3[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700469 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b */
470 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a */
Lev Walkinb7f17972005-03-04 09:10:19 +0000471};
Lev Walkin59b176e2005-11-26 11:25:14 +0000472static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_3 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000473 sizeof(struct another_name),
474 offsetof(struct another_name, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -0700475 .tag2el = asn_MAP_another_name_tag2el_3,
476 .tag2el_count = 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000477 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000478 -1, /* Start extensions */
479 -1 /* Stop extensions */
480};
481static /* Use -fall-defs-global to expose */
482asn_TYPE_descriptor_t asn_DEF_another_name_3 = {
483 "another-name",
484 "another-name",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800485 &asn_OP_SEQUENCE,
Lev Walkin59b176e2005-11-26 11:25:14 +0000486 asn_DEF_another_name_tags_3,
487 sizeof(asn_DEF_another_name_tags_3)
488 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
489 asn_DEF_another_name_tags_3, /* Same as above */
490 sizeof(asn_DEF_another_name_tags_3)
491 /sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700492 { 0, 0, SEQUENCE_constraint },
Lev Walkinb7f17972005-03-04 09:10:19 +0000493 asn_MBR_another_name_3,
494 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000495 &asn_SPC_another_name_specs_3 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000496};
497
498static asn_TYPE_member_t asn_MBR_one_name_2[] = {
499 { ATF_NOFLAGS, 0, offsetof(struct one_name, another_name),
500 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
501 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000502 .type = &asn_DEF_another_name_3,
Lev Walkin67a30122017-08-10 05:48:54 -0700503 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700504 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000505 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000506 .name = "another-name"
507 },
508};
Lev Walkina7591b52014-10-12 18:37:35 -0700509static const ber_tlv_tag_t asn_DEF_one_name_tags_2[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000510 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
511};
Lev Walkina7591b52014-10-12 18:37:35 -0700512static const asn_TYPE_tag2member_t asn_MAP_one_name_tag2el_2[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700513 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000514};
Lev Walkin59b176e2005-11-26 11:25:14 +0000515static asn_SEQUENCE_specifics_t asn_SPC_one_name_specs_2 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000516 sizeof(struct one_name),
517 offsetof(struct one_name, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -0700518 .tag2el = asn_MAP_one_name_tag2el_2,
519 .tag2el_count = 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000520 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000521 -1, /* Start extensions */
522 -1 /* Stop extensions */
523};
524static /* Use -fall-defs-global to expose */
525asn_TYPE_descriptor_t asn_DEF_one_name_2 = {
526 "one-name",
527 "one-name",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800528 &asn_OP_SEQUENCE,
Lev Walkin59b176e2005-11-26 11:25:14 +0000529 asn_DEF_one_name_tags_2,
530 sizeof(asn_DEF_one_name_tags_2)
531 /sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
532 asn_DEF_one_name_tags_2, /* Same as above */
533 sizeof(asn_DEF_one_name_tags_2)
534 /sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700535 { 0, 0, SEQUENCE_constraint },
Lev Walkinb7f17972005-03-04 09:10:19 +0000536 asn_MBR_one_name_2,
537 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000538 &asn_SPC_one_name_specs_2 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000539};
540
Lev Walkine8318b82005-03-06 09:29:03 +0000541static asn_TYPE_member_t asn_MBR_another_name_8[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000542 { ATF_NOFLAGS, 0, offsetof(struct another_name, a),
543 .tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
544 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000545 .type = &asn_DEF_BIT_STRING,
Lev Walkin67a30122017-08-10 05:48:54 -0700546 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700547 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = memb_a_constraint_8 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000548 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000549 .name = "a"
550 },
551 { ATF_NOFLAGS, 0, offsetof(struct another_name, b),
552 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
553 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000554 .type = &asn_DEF_INTEGER,
Lev Walkin67a30122017-08-10 05:48:54 -0700555 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700556 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000557 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000558 .name = "b"
559 },
560};
Lev Walkina7591b52014-10-12 18:37:35 -0700561static const ber_tlv_tag_t asn_DEF_another_name_tags_8[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000562 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
563};
Lev Walkina7591b52014-10-12 18:37:35 -0700564static const asn_TYPE_tag2member_t asn_MAP_another_name_tag2el_8[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700565 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* b */
566 { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* a */
Lev Walkinb7f17972005-03-04 09:10:19 +0000567};
Lev Walkin59b176e2005-11-26 11:25:14 +0000568static asn_SEQUENCE_specifics_t asn_SPC_another_name_specs_8 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000569 sizeof(struct another_name),
570 offsetof(struct another_name, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -0700571 .tag2el = asn_MAP_another_name_tag2el_8,
572 .tag2el_count = 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000573 0, 0, 0, /* Optional elements (not needed) */
Lev Walkinb7f17972005-03-04 09:10:19 +0000574 -1, /* Start extensions */
575 -1 /* Stop extensions */
576};
577static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000578asn_TYPE_descriptor_t asn_DEF_another_name_8 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000579 "another-name",
580 "another-name",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800581 &asn_OP_SEQUENCE,
Lev Walkin59b176e2005-11-26 11:25:14 +0000582 asn_DEF_another_name_tags_8,
583 sizeof(asn_DEF_another_name_tags_8)
584 /sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
585 asn_DEF_another_name_tags_8, /* Same as above */
586 sizeof(asn_DEF_another_name_tags_8)
587 /sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700588 { 0, 0, SEQUENCE_constraint },
Lev Walkine8318b82005-03-06 09:29:03 +0000589 asn_MBR_another_name_8,
Lev Walkinb7f17972005-03-04 09:10:19 +0000590 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000591 &asn_SPC_another_name_specs_8 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000592};
593
Lev Walkine8318b82005-03-06 09:29:03 +0000594static asn_TYPE_member_t asn_MBR_two_name_7[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000595 { ATF_NOFLAGS, 0, offsetof(struct two_name, another_name),
596 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
597 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000598 .type = &asn_DEF_another_name_8,
Lev Walkin67a30122017-08-10 05:48:54 -0700599 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700600 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000601 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000602 .name = "another-name"
603 },
604};
Lev Walkina7591b52014-10-12 18:37:35 -0700605static const ber_tlv_tag_t asn_DEF_two_name_tags_7[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000606 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
607};
Lev Walkina7591b52014-10-12 18:37:35 -0700608static const asn_TYPE_tag2member_t asn_MAP_two_name_tag2el_7[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700609 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000610};
Lev Walkina7591b52014-10-12 18:37:35 -0700611static const uint8_t asn_MAP_two_name_mmap_7[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000612 (1 << 7)
613};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800614static
615asn_SET_specifics_t asn_SPC_two_name_specs_7 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000616 sizeof(struct two_name),
617 offsetof(struct two_name, _asn_ctx),
618 offsetof(struct two_name, _presence_map),
Lev Walkine3917082017-08-23 10:29:38 -0700619 .tag2el = asn_MAP_two_name_tag2el_7,
620 .tag2el_count = 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000621 asn_MAP_two_name_tag2el_7, /* Same as above */
Lev Walkinb7f17972005-03-04 09:10:19 +0000622 1, /* Count of tags in the CXER map */
623 0, /* Whether extensible */
Lev Walkin46ef3f32017-07-06 08:47:53 -0700624 (const unsigned int *)asn_MAP_two_name_mmap_7 /* Mandatory elements map */
Lev Walkinb7f17972005-03-04 09:10:19 +0000625};
626static /* Use -fall-defs-global to expose */
Lev Walkine8318b82005-03-06 09:29:03 +0000627asn_TYPE_descriptor_t asn_DEF_two_name_7 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000628 "two-name",
629 "two-name",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800630 &asn_OP_SET,
Lev Walkin59b176e2005-11-26 11:25:14 +0000631 asn_DEF_two_name_tags_7,
632 sizeof(asn_DEF_two_name_tags_7)
633 /sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
634 asn_DEF_two_name_tags_7, /* Same as above */
635 sizeof(asn_DEF_two_name_tags_7)
636 /sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700637 { 0, 0, SET_constraint },
Lev Walkine8318b82005-03-06 09:29:03 +0000638 asn_MBR_two_name_7,
Lev Walkinb7f17972005-03-04 09:10:19 +0000639 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000640 &asn_SPC_two_name_specs_7 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000641};
642
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800643asn_TYPE_member_t asn_MBR_Type2_1[] = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000644 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.one_name),
645 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
646 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000647 .type = &asn_DEF_one_name_2,
Lev Walkin67a30122017-08-10 05:48:54 -0700648 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700649 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000650 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000651 .name = "one-name"
652 },
653 { ATF_NOFLAGS, 0, offsetof(struct Type2, choice.two_name),
654 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
655 .tag_mode = 0,
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000656 .type = &asn_DEF_two_name_7,
Lev Walkin67a30122017-08-10 05:48:54 -0700657 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -0700658 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin59b176e2005-11-26 11:25:14 +0000659 .default_value = 0,
Lev Walkinb7f17972005-03-04 09:10:19 +0000660 .name = "two-name"
661 },
662};
Lev Walkina7591b52014-10-12 18:37:35 -0700663static const asn_TYPE_tag2member_t asn_MAP_Type2_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700664 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* one-name */
665 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name */
Lev Walkinb7f17972005-03-04 09:10:19 +0000666};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800667asn_CHOICE_specifics_t asn_SPC_Type2_specs_1 = {
Lev Walkinb7f17972005-03-04 09:10:19 +0000668 sizeof(struct Type2),
669 offsetof(struct Type2, _asn_ctx),
670 offsetof(struct Type2, present),
671 sizeof(((struct Type2 *)0)->present),
Lev Walkine3917082017-08-23 10:29:38 -0700672 .tag2el = asn_MAP_Type2_tag2el_1,
673 .tag2el_count = 2, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000674 .canonical_order = 0,
675 .ext_start = -1 /* Extensions start */
Lev Walkinb7f17972005-03-04 09:10:19 +0000676};
677asn_TYPE_descriptor_t asn_DEF_Type2 = {
678 "Type2",
679 "Type2",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800680 &asn_OP_CHOICE,
Lev Walkinb7f17972005-03-04 09:10:19 +0000681 0, /* No effective tags (pointer) */
682 0, /* No effective tags (count) */
683 0, /* No tags (pointer) */
684 0, /* No tags (count) */
Lev Walkin0bfea562017-09-29 23:16:48 -0700685 { 0, 0, CHOICE_constraint },
Lev Walkinb7f17972005-03-04 09:10:19 +0000686 asn_MBR_Type2_1,
687 2, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000688 &asn_SPC_Type2_specs_1 /* Additional specs */
Lev Walkinb7f17972005-03-04 09:10:19 +0000689};
690