blob: f4b390779ee16a9c8f288a94f0d98cc74c1a706d [file] [log] [blame]
vlm1308d2b2004-09-10 15:49:15 +00001
2/*** <<< INCLUDES [T1] >>> ***/
3
4#include <T2.h>
5
6/*** <<< TYPE-DECLS [T1] >>> ***/
7
vlm1308d2b2004-09-10 15:49:15 +00008typedef T2_t T1_t;
9
10/*** <<< FUNC-DECLS [T1] >>> ***/
11
vlm02296432004-09-29 13:19:37 +000012extern asn_TYPE_descriptor_t asn_DEF_T1;
vlm39ba4c42004-09-22 16:06:28 +000013asn_struct_free_f T1_free;
14asn_struct_print_f T1_print;
vlm1308d2b2004-09-10 15:49:15 +000015asn_constr_check_f T1_constraint;
16ber_type_decoder_f T1_decode_ber;
17der_type_encoder_f T1_encode_der;
vlma6af74c2004-10-23 13:26:56 +000018xer_type_decoder_f T1_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +000019xer_type_encoder_f T1_encode_xer;
vlm1308d2b2004-09-10 15:49:15 +000020
21/*** <<< CODE [T1] >>> ***/
22
23int
vlm02296432004-09-29 13:19:37 +000024T1_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlm1308d2b2004-09-10 15:49:15 +000025 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +000026 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +000027 td->check_constraints = asn_DEF_T2.check_constraints;
vlmaafc9412004-09-26 13:12:56 +000028 return td->check_constraints(td, sptr, app_errlog, app_key);
vlm1308d2b2004-09-10 15:49:15 +000029}
30
31/*
32 * This type is implemented using T2,
vlmcb0b7fc2004-09-23 22:14:58 +000033 * so here we adjust the DEF accordingly.
vlm1308d2b2004-09-10 15:49:15 +000034 */
35static void
vlm67d57fe2005-03-06 09:29:03 +000036T1_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +000037 td->free_struct = asn_DEF_T2.free_struct;
38 td->print_struct = asn_DEF_T2.print_struct;
39 td->ber_decoder = asn_DEF_T2.ber_decoder;
40 td->der_encoder = asn_DEF_T2.der_encoder;
41 td->xer_decoder = asn_DEF_T2.xer_decoder;
42 td->xer_encoder = asn_DEF_T2.xer_encoder;
vlm337167e2005-11-26 11:25:14 +000043 td->uper_decoder = asn_DEF_T2.uper_decoder;
44 if(!td->per_constraints)
45 td->per_constraints = asn_DEF_T2.per_constraints;
vlm02296432004-09-29 13:19:37 +000046 td->elements = asn_DEF_T2.elements;
47 td->elements_count = asn_DEF_T2.elements_count;
48 td->specifics = asn_DEF_T2.specifics;
vlm1308d2b2004-09-10 15:49:15 +000049}
50
vlm39ba4c42004-09-22 16:06:28 +000051void
vlm02296432004-09-29 13:19:37 +000052T1_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +000053 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +000054 T1_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +000055 td->free_struct(td, struct_ptr, contents_only);
vlm1308d2b2004-09-10 15:49:15 +000056}
57
58int
vlm02296432004-09-29 13:19:37 +000059T1_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlm1308d2b2004-09-10 15:49:15 +000060 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +000061 T1_1_inherit_TYPE_descriptor(td);
vlm1308d2b2004-09-10 15:49:15 +000062 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
63}
64
vlm9de248e2004-10-20 15:50:55 +000065asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +000066T1_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +000067 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +000068 T1_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +000069 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +000070}
71
72asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +000073T1_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +000074 void *structure, int tag_mode, ber_tlv_tag_t tag,
75 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +000076 T1_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +000077 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
78}
79
vlma6af74c2004-10-23 13:26:56 +000080asn_dec_rval_t
81T1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +000082 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +000083 T1_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +000084 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
85}
86
vlm39ba4c42004-09-22 16:06:28 +000087asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +000088T1_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +000089 int ilevel, enum xer_encoder_flags_e flags,
90 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +000091 T1_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +000092 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlm1308d2b2004-09-10 15:49:15 +000093}
94
95
96/*** <<< STAT-DEFS [T1] >>> ***/
97
vlm337167e2005-11-26 11:25:14 +000098static ber_tlv_tag_t asn_DEF_T1_tags_1[] = {
vlm1308d2b2004-09-10 15:49:15 +000099 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
100 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
101 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
102 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
103};
vlm337167e2005-11-26 11:25:14 +0000104static ber_tlv_tag_t asn_DEF_T1_all_tags_1[] = {
vlm72425de2004-09-13 08:31:01 +0000105 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
106 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
107 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
108 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
109 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
vlmde592d72004-09-14 12:46:58 +0000110 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
vlm72425de2004-09-13 08:31:01 +0000111};
vlm02296432004-09-29 13:19:37 +0000112asn_TYPE_descriptor_t asn_DEF_T1 = {
vlm1308d2b2004-09-10 15:49:15 +0000113 "T1",
vlm9de248e2004-10-20 15:50:55 +0000114 "T1",
vlm39ba4c42004-09-22 16:06:28 +0000115 T1_free,
116 T1_print,
vlm1308d2b2004-09-10 15:49:15 +0000117 T1_constraint,
118 T1_decode_ber,
119 T1_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000120 T1_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000121 T1_encode_xer,
vlm337167e2005-11-26 11:25:14 +0000122 0, /* No PER decoder, -gen-PER to enable */
vlm1308d2b2004-09-10 15:49:15 +0000123 0, /* Use generic outmost tag fetcher */
vlm337167e2005-11-26 11:25:14 +0000124 asn_DEF_T1_tags_1,
125 sizeof(asn_DEF_T1_tags_1)
126 /sizeof(asn_DEF_T1_tags_1[0]), /* 4 */
127 asn_DEF_T1_all_tags_1,
128 sizeof(asn_DEF_T1_all_tags_1)
129 /sizeof(asn_DEF_T1_all_tags_1[0]), /* 6 */
130 0, /* No PER visible constraints */
vlm1308d2b2004-09-10 15:49:15 +0000131 0, 0, /* No members */
132 0 /* No specifics */
133};
134
135
136/*** <<< INCLUDES [T2] >>> ***/
137
138#include <T3.h>
139
140/*** <<< TYPE-DECLS [T2] >>> ***/
141
vlm1308d2b2004-09-10 15:49:15 +0000142typedef T3_t T2_t;
143
144/*** <<< FUNC-DECLS [T2] >>> ***/
145
vlm02296432004-09-29 13:19:37 +0000146extern asn_TYPE_descriptor_t asn_DEF_T2;
vlm39ba4c42004-09-22 16:06:28 +0000147asn_struct_free_f T2_free;
148asn_struct_print_f T2_print;
vlm1308d2b2004-09-10 15:49:15 +0000149asn_constr_check_f T2_constraint;
150ber_type_decoder_f T2_decode_ber;
151der_type_encoder_f T2_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000152xer_type_decoder_f T2_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000153xer_type_encoder_f T2_encode_xer;
vlm1308d2b2004-09-10 15:49:15 +0000154
155/*** <<< CODE [T2] >>> ***/
156
157int
vlm02296432004-09-29 13:19:37 +0000158T2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlm1308d2b2004-09-10 15:49:15 +0000159 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000160 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000161 td->check_constraints = asn_DEF_T3.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000162 return td->check_constraints(td, sptr, app_errlog, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000163}
164
165/*
166 * This type is implemented using T3,
vlmcb0b7fc2004-09-23 22:14:58 +0000167 * so here we adjust the DEF accordingly.
vlm1308d2b2004-09-10 15:49:15 +0000168 */
169static void
vlm67d57fe2005-03-06 09:29:03 +0000170T2_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000171 td->free_struct = asn_DEF_T3.free_struct;
172 td->print_struct = asn_DEF_T3.print_struct;
173 td->ber_decoder = asn_DEF_T3.ber_decoder;
174 td->der_encoder = asn_DEF_T3.der_encoder;
175 td->xer_decoder = asn_DEF_T3.xer_decoder;
176 td->xer_encoder = asn_DEF_T3.xer_encoder;
vlm337167e2005-11-26 11:25:14 +0000177 td->uper_decoder = asn_DEF_T3.uper_decoder;
178 if(!td->per_constraints)
179 td->per_constraints = asn_DEF_T3.per_constraints;
vlm02296432004-09-29 13:19:37 +0000180 td->elements = asn_DEF_T3.elements;
181 td->elements_count = asn_DEF_T3.elements_count;
182 td->specifics = asn_DEF_T3.specifics;
vlm1308d2b2004-09-10 15:49:15 +0000183}
184
vlm39ba4c42004-09-22 16:06:28 +0000185void
vlm02296432004-09-29 13:19:37 +0000186T2_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000187 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000188 T2_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000189 td->free_struct(td, struct_ptr, contents_only);
vlm1308d2b2004-09-10 15:49:15 +0000190}
191
192int
vlm02296432004-09-29 13:19:37 +0000193T2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlm1308d2b2004-09-10 15:49:15 +0000194 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000195 T2_1_inherit_TYPE_descriptor(td);
vlm1308d2b2004-09-10 15:49:15 +0000196 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
197}
198
vlm9de248e2004-10-20 15:50:55 +0000199asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000200T2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000201 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000202 T2_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000203 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000204}
205
206asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000207T2_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000208 void *structure, int tag_mode, ber_tlv_tag_t tag,
209 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000210 T2_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000211 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
212}
213
vlma6af74c2004-10-23 13:26:56 +0000214asn_dec_rval_t
215T2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000216 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000217 T2_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000218 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
219}
220
vlm39ba4c42004-09-22 16:06:28 +0000221asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000222T2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000223 int ilevel, enum xer_encoder_flags_e flags,
224 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000225 T2_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000226 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000227}
228
229
230/*** <<< STAT-DEFS [T2] >>> ***/
231
vlm337167e2005-11-26 11:25:14 +0000232static ber_tlv_tag_t asn_DEF_T2_tags_1[] = {
vlm1308d2b2004-09-10 15:49:15 +0000233 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
234 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
235 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
236};
vlm337167e2005-11-26 11:25:14 +0000237static ber_tlv_tag_t asn_DEF_T2_all_tags_1[] = {
vlm72425de2004-09-13 08:31:01 +0000238 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
239 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
240 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
241 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
vlmde592d72004-09-14 12:46:58 +0000242 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
vlm72425de2004-09-13 08:31:01 +0000243};
vlm02296432004-09-29 13:19:37 +0000244asn_TYPE_descriptor_t asn_DEF_T2 = {
vlm1308d2b2004-09-10 15:49:15 +0000245 "T2",
vlm9de248e2004-10-20 15:50:55 +0000246 "T2",
vlm39ba4c42004-09-22 16:06:28 +0000247 T2_free,
248 T2_print,
vlm1308d2b2004-09-10 15:49:15 +0000249 T2_constraint,
250 T2_decode_ber,
251 T2_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000252 T2_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000253 T2_encode_xer,
vlm337167e2005-11-26 11:25:14 +0000254 0, /* No PER decoder, -gen-PER to enable */
vlm1308d2b2004-09-10 15:49:15 +0000255 0, /* Use generic outmost tag fetcher */
vlm337167e2005-11-26 11:25:14 +0000256 asn_DEF_T2_tags_1,
257 sizeof(asn_DEF_T2_tags_1)
258 /sizeof(asn_DEF_T2_tags_1[0]), /* 3 */
259 asn_DEF_T2_all_tags_1,
260 sizeof(asn_DEF_T2_all_tags_1)
261 /sizeof(asn_DEF_T2_all_tags_1[0]), /* 5 */
262 0, /* No PER visible constraints */
vlm1308d2b2004-09-10 15:49:15 +0000263 0, 0, /* No members */
264 0 /* No specifics */
265};
266
267
268/*** <<< INCLUDES [T3] >>> ***/
269
270#include <T4.h>
271
272/*** <<< TYPE-DECLS [T3] >>> ***/
273
vlm1308d2b2004-09-10 15:49:15 +0000274typedef T4_t T3_t;
275
276/*** <<< FUNC-DECLS [T3] >>> ***/
277
vlm02296432004-09-29 13:19:37 +0000278extern asn_TYPE_descriptor_t asn_DEF_T3;
vlm39ba4c42004-09-22 16:06:28 +0000279asn_struct_free_f T3_free;
280asn_struct_print_f T3_print;
vlm1308d2b2004-09-10 15:49:15 +0000281asn_constr_check_f T3_constraint;
282ber_type_decoder_f T3_decode_ber;
283der_type_encoder_f T3_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000284xer_type_decoder_f T3_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000285xer_type_encoder_f T3_encode_xer;
vlm1308d2b2004-09-10 15:49:15 +0000286
287/*** <<< CODE [T3] >>> ***/
288
289int
vlm02296432004-09-29 13:19:37 +0000290T3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlm1308d2b2004-09-10 15:49:15 +0000291 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000292 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000293 td->check_constraints = asn_DEF_T4.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000294 return td->check_constraints(td, sptr, app_errlog, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000295}
296
297/*
298 * This type is implemented using T4,
vlmcb0b7fc2004-09-23 22:14:58 +0000299 * so here we adjust the DEF accordingly.
vlm1308d2b2004-09-10 15:49:15 +0000300 */
301static void
vlm67d57fe2005-03-06 09:29:03 +0000302T3_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000303 td->free_struct = asn_DEF_T4.free_struct;
304 td->print_struct = asn_DEF_T4.print_struct;
305 td->ber_decoder = asn_DEF_T4.ber_decoder;
306 td->der_encoder = asn_DEF_T4.der_encoder;
307 td->xer_decoder = asn_DEF_T4.xer_decoder;
308 td->xer_encoder = asn_DEF_T4.xer_encoder;
vlm337167e2005-11-26 11:25:14 +0000309 td->uper_decoder = asn_DEF_T4.uper_decoder;
310 if(!td->per_constraints)
311 td->per_constraints = asn_DEF_T4.per_constraints;
vlm02296432004-09-29 13:19:37 +0000312 td->elements = asn_DEF_T4.elements;
313 td->elements_count = asn_DEF_T4.elements_count;
314 td->specifics = asn_DEF_T4.specifics;
vlm1308d2b2004-09-10 15:49:15 +0000315}
316
vlm39ba4c42004-09-22 16:06:28 +0000317void
vlm02296432004-09-29 13:19:37 +0000318T3_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000319 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000320 T3_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000321 td->free_struct(td, struct_ptr, contents_only);
vlm1308d2b2004-09-10 15:49:15 +0000322}
323
324int
vlm02296432004-09-29 13:19:37 +0000325T3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlm1308d2b2004-09-10 15:49:15 +0000326 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000327 T3_1_inherit_TYPE_descriptor(td);
vlm1308d2b2004-09-10 15:49:15 +0000328 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
329}
330
vlm9de248e2004-10-20 15:50:55 +0000331asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000332T3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000333 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000334 T3_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000335 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000336}
337
338asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000339T3_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000340 void *structure, int tag_mode, ber_tlv_tag_t tag,
341 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000342 T3_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000343 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
344}
345
vlma6af74c2004-10-23 13:26:56 +0000346asn_dec_rval_t
347T3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000348 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000349 T3_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000350 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
351}
352
vlm39ba4c42004-09-22 16:06:28 +0000353asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000354T3_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000355 int ilevel, enum xer_encoder_flags_e flags,
356 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000357 T3_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000358 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000359}
360
361
362/*** <<< STAT-DEFS [T3] >>> ***/
363
vlm337167e2005-11-26 11:25:14 +0000364static ber_tlv_tag_t asn_DEF_T3_tags_1[] = {
vlm1308d2b2004-09-10 15:49:15 +0000365 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
366 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
367};
vlm337167e2005-11-26 11:25:14 +0000368static ber_tlv_tag_t asn_DEF_T3_all_tags_1[] = {
vlm72425de2004-09-13 08:31:01 +0000369 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
370 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
371 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
vlmde592d72004-09-14 12:46:58 +0000372 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
vlm72425de2004-09-13 08:31:01 +0000373};
vlm02296432004-09-29 13:19:37 +0000374asn_TYPE_descriptor_t asn_DEF_T3 = {
vlm1308d2b2004-09-10 15:49:15 +0000375 "T3",
vlm9de248e2004-10-20 15:50:55 +0000376 "T3",
vlm39ba4c42004-09-22 16:06:28 +0000377 T3_free,
378 T3_print,
vlm1308d2b2004-09-10 15:49:15 +0000379 T3_constraint,
380 T3_decode_ber,
381 T3_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000382 T3_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000383 T3_encode_xer,
vlm337167e2005-11-26 11:25:14 +0000384 0, /* No PER decoder, -gen-PER to enable */
vlm1308d2b2004-09-10 15:49:15 +0000385 0, /* Use generic outmost tag fetcher */
vlm337167e2005-11-26 11:25:14 +0000386 asn_DEF_T3_tags_1,
387 sizeof(asn_DEF_T3_tags_1)
388 /sizeof(asn_DEF_T3_tags_1[0]), /* 2 */
389 asn_DEF_T3_all_tags_1,
390 sizeof(asn_DEF_T3_all_tags_1)
391 /sizeof(asn_DEF_T3_all_tags_1[0]), /* 4 */
392 0, /* No PER visible constraints */
vlm1308d2b2004-09-10 15:49:15 +0000393 0, 0, /* No members */
394 0 /* No specifics */
395};
396
397
398/*** <<< INCLUDES [T4] >>> ***/
399
400#include <T5.h>
401
402/*** <<< TYPE-DECLS [T4] >>> ***/
403
vlm1308d2b2004-09-10 15:49:15 +0000404typedef T5_t T4_t;
405
406/*** <<< FUNC-DECLS [T4] >>> ***/
407
vlm02296432004-09-29 13:19:37 +0000408extern asn_TYPE_descriptor_t asn_DEF_T4;
vlm39ba4c42004-09-22 16:06:28 +0000409asn_struct_free_f T4_free;
410asn_struct_print_f T4_print;
vlm1308d2b2004-09-10 15:49:15 +0000411asn_constr_check_f T4_constraint;
412ber_type_decoder_f T4_decode_ber;
413der_type_encoder_f T4_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000414xer_type_decoder_f T4_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000415xer_type_encoder_f T4_encode_xer;
vlm1308d2b2004-09-10 15:49:15 +0000416
417/*** <<< CODE [T4] >>> ***/
418
419int
vlm02296432004-09-29 13:19:37 +0000420T4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlm1308d2b2004-09-10 15:49:15 +0000421 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000422 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000423 td->check_constraints = asn_DEF_T5.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000424 return td->check_constraints(td, sptr, app_errlog, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000425}
426
427/*
428 * This type is implemented using T5,
vlmcb0b7fc2004-09-23 22:14:58 +0000429 * so here we adjust the DEF accordingly.
vlm1308d2b2004-09-10 15:49:15 +0000430 */
431static void
vlm67d57fe2005-03-06 09:29:03 +0000432T4_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000433 td->free_struct = asn_DEF_T5.free_struct;
434 td->print_struct = asn_DEF_T5.print_struct;
435 td->ber_decoder = asn_DEF_T5.ber_decoder;
436 td->der_encoder = asn_DEF_T5.der_encoder;
437 td->xer_decoder = asn_DEF_T5.xer_decoder;
438 td->xer_encoder = asn_DEF_T5.xer_encoder;
vlm337167e2005-11-26 11:25:14 +0000439 td->uper_decoder = asn_DEF_T5.uper_decoder;
440 if(!td->per_constraints)
441 td->per_constraints = asn_DEF_T5.per_constraints;
vlm02296432004-09-29 13:19:37 +0000442 td->elements = asn_DEF_T5.elements;
443 td->elements_count = asn_DEF_T5.elements_count;
444 td->specifics = asn_DEF_T5.specifics;
vlm1308d2b2004-09-10 15:49:15 +0000445}
446
vlm39ba4c42004-09-22 16:06:28 +0000447void
vlm02296432004-09-29 13:19:37 +0000448T4_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000449 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000450 T4_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000451 td->free_struct(td, struct_ptr, contents_only);
vlm1308d2b2004-09-10 15:49:15 +0000452}
453
454int
vlm02296432004-09-29 13:19:37 +0000455T4_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlm1308d2b2004-09-10 15:49:15 +0000456 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000457 T4_1_inherit_TYPE_descriptor(td);
vlm1308d2b2004-09-10 15:49:15 +0000458 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
459}
460
vlm9de248e2004-10-20 15:50:55 +0000461asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000462T4_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000463 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000464 T4_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000465 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000466}
467
468asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000469T4_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000470 void *structure, int tag_mode, ber_tlv_tag_t tag,
471 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000472 T4_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000473 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
474}
475
vlma6af74c2004-10-23 13:26:56 +0000476asn_dec_rval_t
477T4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000478 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000479 T4_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000480 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
481}
482
vlm39ba4c42004-09-22 16:06:28 +0000483asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000484T4_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000485 int ilevel, enum xer_encoder_flags_e flags,
486 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000487 T4_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000488 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000489}
490
491
492/*** <<< STAT-DEFS [T4] >>> ***/
493
vlm337167e2005-11-26 11:25:14 +0000494static ber_tlv_tag_t asn_DEF_T4_tags_1[] = {
vlm1308d2b2004-09-10 15:49:15 +0000495 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
vlm72425de2004-09-13 08:31:01 +0000496 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
vlmde592d72004-09-14 12:46:58 +0000497 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
vlm1308d2b2004-09-10 15:49:15 +0000498};
vlm02296432004-09-29 13:19:37 +0000499asn_TYPE_descriptor_t asn_DEF_T4 = {
vlm1308d2b2004-09-10 15:49:15 +0000500 "T4",
vlm9de248e2004-10-20 15:50:55 +0000501 "T4",
vlm39ba4c42004-09-22 16:06:28 +0000502 T4_free,
503 T4_print,
vlm1308d2b2004-09-10 15:49:15 +0000504 T4_constraint,
505 T4_decode_ber,
506 T4_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000507 T4_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000508 T4_encode_xer,
vlm337167e2005-11-26 11:25:14 +0000509 0, /* No PER decoder, -gen-PER to enable */
vlm1308d2b2004-09-10 15:49:15 +0000510 0, /* Use generic outmost tag fetcher */
vlm337167e2005-11-26 11:25:14 +0000511 asn_DEF_T4_tags_1,
512 sizeof(asn_DEF_T4_tags_1)
513 /sizeof(asn_DEF_T4_tags_1[0]) - 1, /* 2 */
514 asn_DEF_T4_tags_1, /* Same as above */
515 sizeof(asn_DEF_T4_tags_1)
516 /sizeof(asn_DEF_T4_tags_1[0]), /* 3 */
517 0, /* No PER visible constraints */
vlm1308d2b2004-09-10 15:49:15 +0000518 0, 0, /* No members */
519 0 /* No specifics */
520};
521
522
523/*** <<< INCLUDES [T5] >>> ***/
524
525#include <T6.h>
526
527/*** <<< TYPE-DECLS [T5] >>> ***/
528
vlm1308d2b2004-09-10 15:49:15 +0000529typedef T6_t T5_t;
530
531/*** <<< FUNC-DECLS [T5] >>> ***/
532
vlm02296432004-09-29 13:19:37 +0000533extern asn_TYPE_descriptor_t asn_DEF_T5;
vlm39ba4c42004-09-22 16:06:28 +0000534asn_struct_free_f T5_free;
535asn_struct_print_f T5_print;
vlm1308d2b2004-09-10 15:49:15 +0000536asn_constr_check_f T5_constraint;
537ber_type_decoder_f T5_decode_ber;
538der_type_encoder_f T5_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000539xer_type_decoder_f T5_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000540xer_type_encoder_f T5_encode_xer;
vlm1308d2b2004-09-10 15:49:15 +0000541
542/*** <<< CODE [T5] >>> ***/
543
544int
vlm02296432004-09-29 13:19:37 +0000545T5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlm1308d2b2004-09-10 15:49:15 +0000546 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000547 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000548 td->check_constraints = asn_DEF_T6.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000549 return td->check_constraints(td, sptr, app_errlog, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000550}
551
552/*
553 * This type is implemented using T6,
vlmcb0b7fc2004-09-23 22:14:58 +0000554 * so here we adjust the DEF accordingly.
vlm1308d2b2004-09-10 15:49:15 +0000555 */
556static void
vlm67d57fe2005-03-06 09:29:03 +0000557T5_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000558 td->free_struct = asn_DEF_T6.free_struct;
559 td->print_struct = asn_DEF_T6.print_struct;
560 td->ber_decoder = asn_DEF_T6.ber_decoder;
561 td->der_encoder = asn_DEF_T6.der_encoder;
562 td->xer_decoder = asn_DEF_T6.xer_decoder;
563 td->xer_encoder = asn_DEF_T6.xer_encoder;
vlm337167e2005-11-26 11:25:14 +0000564 td->uper_decoder = asn_DEF_T6.uper_decoder;
565 if(!td->per_constraints)
566 td->per_constraints = asn_DEF_T6.per_constraints;
vlm02296432004-09-29 13:19:37 +0000567 td->elements = asn_DEF_T6.elements;
568 td->elements_count = asn_DEF_T6.elements_count;
569 td->specifics = asn_DEF_T6.specifics;
vlm1308d2b2004-09-10 15:49:15 +0000570}
571
vlm39ba4c42004-09-22 16:06:28 +0000572void
vlm02296432004-09-29 13:19:37 +0000573T5_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000574 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000575 T5_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000576 td->free_struct(td, struct_ptr, contents_only);
vlm1308d2b2004-09-10 15:49:15 +0000577}
578
579int
vlm02296432004-09-29 13:19:37 +0000580T5_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlm1308d2b2004-09-10 15:49:15 +0000581 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000582 T5_1_inherit_TYPE_descriptor(td);
vlm1308d2b2004-09-10 15:49:15 +0000583 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
584}
585
vlm9de248e2004-10-20 15:50:55 +0000586asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000587T5_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000588 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000589 T5_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000590 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000591}
592
593asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000594T5_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000595 void *structure, int tag_mode, ber_tlv_tag_t tag,
596 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000597 T5_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000598 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
599}
600
vlma6af74c2004-10-23 13:26:56 +0000601asn_dec_rval_t
602T5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000603 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000604 T5_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000605 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
606}
607
vlm39ba4c42004-09-22 16:06:28 +0000608asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000609T5_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000610 int ilevel, enum xer_encoder_flags_e flags,
611 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000612 T5_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000613 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000614}
615
616
617/*** <<< STAT-DEFS [T5] >>> ***/
618
vlm337167e2005-11-26 11:25:14 +0000619static ber_tlv_tag_t asn_DEF_T5_tags_1[] = {
vlm72425de2004-09-13 08:31:01 +0000620 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
vlmde592d72004-09-14 12:46:58 +0000621 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
vlm1308d2b2004-09-10 15:49:15 +0000622};
vlm02296432004-09-29 13:19:37 +0000623asn_TYPE_descriptor_t asn_DEF_T5 = {
vlm1308d2b2004-09-10 15:49:15 +0000624 "T5",
vlm9de248e2004-10-20 15:50:55 +0000625 "T5",
vlm39ba4c42004-09-22 16:06:28 +0000626 T5_free,
627 T5_print,
vlm1308d2b2004-09-10 15:49:15 +0000628 T5_constraint,
629 T5_decode_ber,
630 T5_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000631 T5_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000632 T5_encode_xer,
vlm337167e2005-11-26 11:25:14 +0000633 0, /* No PER decoder, -gen-PER to enable */
vlm1308d2b2004-09-10 15:49:15 +0000634 0, /* Use generic outmost tag fetcher */
vlm337167e2005-11-26 11:25:14 +0000635 asn_DEF_T5_tags_1,
636 sizeof(asn_DEF_T5_tags_1)
637 /sizeof(asn_DEF_T5_tags_1[0]) - 1, /* 1 */
638 asn_DEF_T5_tags_1, /* Same as above */
639 sizeof(asn_DEF_T5_tags_1)
640 /sizeof(asn_DEF_T5_tags_1[0]), /* 2 */
641 0, /* No PER visible constraints */
vlm1308d2b2004-09-10 15:49:15 +0000642 0, 0, /* No members */
643 0 /* No specifics */
644};
645
646
647/*** <<< INCLUDES [T6] >>> ***/
648
vlmde592d72004-09-14 12:46:58 +0000649#include <REAL.h>
vlm1308d2b2004-09-10 15:49:15 +0000650
651/*** <<< TYPE-DECLS [T6] >>> ***/
652
vlmde592d72004-09-14 12:46:58 +0000653typedef REAL_t T6_t;
vlm1308d2b2004-09-10 15:49:15 +0000654
655/*** <<< FUNC-DECLS [T6] >>> ***/
656
vlm1f7df782005-03-04 23:48:19 +0000657extern asn_TYPE_descriptor_t asn_DEF_T6;
658asn_struct_free_f T6_free;
659asn_struct_print_f T6_print;
660asn_constr_check_f T6_constraint;
661ber_type_decoder_f T6_decode_ber;
662der_type_encoder_f T6_encode_der;
663xer_type_decoder_f T6_decode_xer;
664xer_type_encoder_f T6_encode_xer;
vlm1308d2b2004-09-10 15:49:15 +0000665
666/*** <<< CODE [T6] >>> ***/
667
vlm1f7df782005-03-04 23:48:19 +0000668int
669T6_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
670 asn_app_consume_bytes_f *app_errlog, void *app_key) {
671 /* Replace with underlying type checker */
672 td->check_constraints = asn_DEF_REAL.check_constraints;
673 return td->check_constraints(td, sptr, app_errlog, app_key);
674}
675
676/*
677 * This type is implemented using REAL,
678 * so here we adjust the DEF accordingly.
679 */
680static void
vlm67d57fe2005-03-06 09:29:03 +0000681T6_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm1f7df782005-03-04 23:48:19 +0000682 td->free_struct = asn_DEF_REAL.free_struct;
683 td->print_struct = asn_DEF_REAL.print_struct;
684 td->ber_decoder = asn_DEF_REAL.ber_decoder;
685 td->der_encoder = asn_DEF_REAL.der_encoder;
686 td->xer_decoder = asn_DEF_REAL.xer_decoder;
687 td->xer_encoder = asn_DEF_REAL.xer_encoder;
vlm337167e2005-11-26 11:25:14 +0000688 td->uper_decoder = asn_DEF_REAL.uper_decoder;
689 if(!td->per_constraints)
690 td->per_constraints = asn_DEF_REAL.per_constraints;
vlm1f7df782005-03-04 23:48:19 +0000691 td->elements = asn_DEF_REAL.elements;
692 td->elements_count = asn_DEF_REAL.elements_count;
693 td->specifics = asn_DEF_REAL.specifics;
694}
695
696void
697T6_free(asn_TYPE_descriptor_t *td,
698 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000699 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000700 td->free_struct(td, struct_ptr, contents_only);
701}
702
703int
704T6_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
705 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000706 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000707 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
708}
709
710asn_dec_rval_t
711T6_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000712 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000713 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000714 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
715}
716
717asn_enc_rval_t
718T6_encode_der(asn_TYPE_descriptor_t *td,
719 void *structure, int tag_mode, ber_tlv_tag_t tag,
720 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000721 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000722 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
723}
724
725asn_dec_rval_t
726T6_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000727 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000728 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000729 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
730}
731
732asn_enc_rval_t
733T6_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
734 int ilevel, enum xer_encoder_flags_e flags,
735 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000736 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000737 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
738}
739
740
741/*** <<< STAT-DEFS [T6] >>> ***/
742
vlm337167e2005-11-26 11:25:14 +0000743static ber_tlv_tag_t asn_DEF_T6_tags_1[] = {
vlm1f7df782005-03-04 23:48:19 +0000744 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
745};
746asn_TYPE_descriptor_t asn_DEF_T6 = {
747 "T6",
748 "T6",
749 T6_free,
750 T6_print,
751 T6_constraint,
752 T6_decode_ber,
753 T6_encode_der,
754 T6_decode_xer,
755 T6_encode_xer,
vlm337167e2005-11-26 11:25:14 +0000756 0, /* No PER decoder, -gen-PER to enable */
vlm1f7df782005-03-04 23:48:19 +0000757 0, /* Use generic outmost tag fetcher */
vlm337167e2005-11-26 11:25:14 +0000758 asn_DEF_T6_tags_1,
759 sizeof(asn_DEF_T6_tags_1)
760 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
761 asn_DEF_T6_tags_1, /* Same as above */
762 sizeof(asn_DEF_T6_tags_1)
763 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
764 0, /* No PER visible constraints */
vlm1f7df782005-03-04 23:48:19 +0000765 0, 0, /* No members */
766 0 /* No specifics */
767};
vlm1308d2b2004-09-10 15:49:15 +0000768
769
770/*** <<< INCLUDES [T] >>> ***/
771
772#include <Ts.h>
773
774/*** <<< TYPE-DECLS [T] >>> ***/
775
vlm1308d2b2004-09-10 15:49:15 +0000776typedef Ts_t T_t;
777
778/*** <<< FUNC-DECLS [T] >>> ***/
779
vlm02296432004-09-29 13:19:37 +0000780extern asn_TYPE_descriptor_t asn_DEF_T;
vlm39ba4c42004-09-22 16:06:28 +0000781asn_struct_free_f T_free;
782asn_struct_print_f T_print;
vlm1308d2b2004-09-10 15:49:15 +0000783asn_constr_check_f T_constraint;
784ber_type_decoder_f T_decode_ber;
785der_type_encoder_f T_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000786xer_type_decoder_f T_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000787xer_type_encoder_f T_encode_xer;
vlm1308d2b2004-09-10 15:49:15 +0000788
789/*** <<< CODE [T] >>> ***/
790
791int
vlm02296432004-09-29 13:19:37 +0000792T_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlm1308d2b2004-09-10 15:49:15 +0000793 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000794 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000795 td->check_constraints = asn_DEF_Ts.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000796 return td->check_constraints(td, sptr, app_errlog, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000797}
798
799/*
800 * This type is implemented using Ts,
vlmcb0b7fc2004-09-23 22:14:58 +0000801 * so here we adjust the DEF accordingly.
vlm1308d2b2004-09-10 15:49:15 +0000802 */
803static void
vlm67d57fe2005-03-06 09:29:03 +0000804T_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000805 td->free_struct = asn_DEF_Ts.free_struct;
806 td->print_struct = asn_DEF_Ts.print_struct;
807 td->ber_decoder = asn_DEF_Ts.ber_decoder;
808 td->der_encoder = asn_DEF_Ts.der_encoder;
809 td->xer_decoder = asn_DEF_Ts.xer_decoder;
810 td->xer_encoder = asn_DEF_Ts.xer_encoder;
vlm337167e2005-11-26 11:25:14 +0000811 td->uper_decoder = asn_DEF_Ts.uper_decoder;
812 if(!td->per_constraints)
813 td->per_constraints = asn_DEF_Ts.per_constraints;
vlm02296432004-09-29 13:19:37 +0000814 td->elements = asn_DEF_Ts.elements;
815 td->elements_count = asn_DEF_Ts.elements_count;
816 td->specifics = asn_DEF_Ts.specifics;
vlm1308d2b2004-09-10 15:49:15 +0000817}
818
vlm39ba4c42004-09-22 16:06:28 +0000819void
vlm02296432004-09-29 13:19:37 +0000820T_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000821 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000822 T_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000823 td->free_struct(td, struct_ptr, contents_only);
vlm1308d2b2004-09-10 15:49:15 +0000824}
825
826int
vlm02296432004-09-29 13:19:37 +0000827T_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlm1308d2b2004-09-10 15:49:15 +0000828 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000829 T_1_inherit_TYPE_descriptor(td);
vlm1308d2b2004-09-10 15:49:15 +0000830 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
831}
832
vlm9de248e2004-10-20 15:50:55 +0000833asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000834T_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000835 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000836 T_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000837 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000838}
839
840asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000841T_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000842 void *structure, int tag_mode, ber_tlv_tag_t tag,
843 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000844 T_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000845 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
846}
847
vlma6af74c2004-10-23 13:26:56 +0000848asn_dec_rval_t
849T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000850 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000851 T_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000852 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
853}
854
vlm39ba4c42004-09-22 16:06:28 +0000855asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000856T_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000857 int ilevel, enum xer_encoder_flags_e flags,
858 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000859 T_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000860 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlm1308d2b2004-09-10 15:49:15 +0000861}
862
863
864/*** <<< STAT-DEFS [T] >>> ***/
865
vlm337167e2005-11-26 11:25:14 +0000866static ber_tlv_tag_t asn_DEF_T_tags_1[] = {
vlm72425de2004-09-13 08:31:01 +0000867 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
868 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
869 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
vlm1308d2b2004-09-10 15:49:15 +0000870};
vlm02296432004-09-29 13:19:37 +0000871asn_TYPE_descriptor_t asn_DEF_T = {
vlm1308d2b2004-09-10 15:49:15 +0000872 "T",
vlm9de248e2004-10-20 15:50:55 +0000873 "T",
vlm39ba4c42004-09-22 16:06:28 +0000874 T_free,
875 T_print,
vlm1308d2b2004-09-10 15:49:15 +0000876 T_constraint,
877 T_decode_ber,
878 T_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000879 T_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000880 T_encode_xer,
vlm337167e2005-11-26 11:25:14 +0000881 0, /* No PER decoder, -gen-PER to enable */
vlm1308d2b2004-09-10 15:49:15 +0000882 0, /* Use generic outmost tag fetcher */
vlm337167e2005-11-26 11:25:14 +0000883 asn_DEF_T_tags_1,
884 sizeof(asn_DEF_T_tags_1)
885 /sizeof(asn_DEF_T_tags_1[0]) - 2, /* 1 */
886 asn_DEF_T_tags_1, /* Same as above */
887 sizeof(asn_DEF_T_tags_1)
888 /sizeof(asn_DEF_T_tags_1[0]), /* 3 */
889 0, /* No PER visible constraints */
vlm1308d2b2004-09-10 15:49:15 +0000890 0, 0, /* Defined elsewhere */
891 0 /* No specifics */
892};
893
894
895/*** <<< INCLUDES [Ts] >>> ***/
896
897#include <T2.h>
898#include <T3.h>
899#include <constr_SEQUENCE.h>
900
vlm1308d2b2004-09-10 15:49:15 +0000901/*** <<< TYPE-DECLS [Ts] >>> ***/
902
vlm1308d2b2004-09-10 15:49:15 +0000903typedef struct Ts {
904 T2_t m1;
905 T3_t *m2 /* OPTIONAL */;
906 T3_t m3;
907
908 /* Context for parsing across buffer boundaries */
vlm02296432004-09-29 13:19:37 +0000909 asn_struct_ctx_t _asn_ctx;
vlm1308d2b2004-09-10 15:49:15 +0000910} Ts_t;
911
vlm0b567bf2005-03-04 22:18:20 +0000912/*** <<< FUNC-DECLS [Ts] >>> ***/
913
914extern asn_TYPE_descriptor_t asn_DEF_Ts;
915
vlm1308d2b2004-09-10 15:49:15 +0000916/*** <<< STAT-DEFS [Ts] >>> ***/
917
vlm44fe49a2005-03-04 11:26:08 +0000918static asn_TYPE_member_t asn_MBR_Ts_1[] = {
vlm1308d2b2004-09-10 15:49:15 +0000919 { ATF_NOFLAGS, 0, offsetof(struct Ts, m1),
920 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
921 .tag_mode = -1, /* IMPLICIT tag at current level */
vlme0fea712005-08-29 10:31:14 +0000922 .type = &asn_DEF_T2,
vlm0a9af512005-01-17 12:20:19 +0000923 .memb_constraints = 0, /* Defer constraints checking to the member type */
vlm337167e2005-11-26 11:25:14 +0000924 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
925 .default_value = 0,
vlm1308d2b2004-09-10 15:49:15 +0000926 .name = "m1"
927 },
928 { ATF_POINTER, 1, offsetof(struct Ts, m2),
929 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
930 .tag_mode = +1, /* EXPLICIT tag at current level */
vlme0fea712005-08-29 10:31:14 +0000931 .type = &asn_DEF_T3,
vlm0a9af512005-01-17 12:20:19 +0000932 .memb_constraints = 0, /* Defer constraints checking to the member type */
vlm337167e2005-11-26 11:25:14 +0000933 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
934 .default_value = 0,
vlm1308d2b2004-09-10 15:49:15 +0000935 .name = "m2"
936 },
937 { ATF_NOFLAGS, 0, offsetof(struct Ts, m3),
938 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
939 .tag_mode = -1, /* IMPLICIT tag at current level */
vlme0fea712005-08-29 10:31:14 +0000940 .type = &asn_DEF_T3,
vlm0a9af512005-01-17 12:20:19 +0000941 .memb_constraints = 0, /* Defer constraints checking to the member type */
vlm337167e2005-11-26 11:25:14 +0000942 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
943 .default_value = 0,
vlm1308d2b2004-09-10 15:49:15 +0000944 .name = "m3"
945 },
946};
vlm337167e2005-11-26 11:25:14 +0000947static ber_tlv_tag_t asn_DEF_Ts_tags_1[] = {
vlm72425de2004-09-13 08:31:01 +0000948 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
949 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
vlm1308d2b2004-09-10 15:49:15 +0000950};
vlm337167e2005-11-26 11:25:14 +0000951static asn_TYPE_tag2member_t asn_MAP_Ts_tag2el_1[] = {
vlm1308d2b2004-09-10 15:49:15 +0000952 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* m1 at 24 */
953 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* m2 at 25 */
vlm7f061a72005-02-25 08:19:34 +0000954 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* m3 at 27 */
vlm1308d2b2004-09-10 15:49:15 +0000955};
vlm337167e2005-11-26 11:25:14 +0000956static asn_SEQUENCE_specifics_t asn_SPC_Ts_specs_1 = {
vlm1308d2b2004-09-10 15:49:15 +0000957 sizeof(struct Ts),
vlm02296432004-09-29 13:19:37 +0000958 offsetof(struct Ts, _asn_ctx),
vlm337167e2005-11-26 11:25:14 +0000959 asn_MAP_Ts_tag2el_1,
vlm1308d2b2004-09-10 15:49:15 +0000960 3, /* Count of tags in the map */
vlm337167e2005-11-26 11:25:14 +0000961 0, 0, 0, /* Optional elements (not needed) */
vlm1308d2b2004-09-10 15:49:15 +0000962 -1, /* Start extensions */
963 -1 /* Stop extensions */
964};
vlm02296432004-09-29 13:19:37 +0000965asn_TYPE_descriptor_t asn_DEF_Ts = {
vlm1308d2b2004-09-10 15:49:15 +0000966 "Ts",
vlm9de248e2004-10-20 15:50:55 +0000967 "Ts",
vlm39ba4c42004-09-22 16:06:28 +0000968 SEQUENCE_free,
969 SEQUENCE_print,
vlm1308d2b2004-09-10 15:49:15 +0000970 SEQUENCE_constraint,
971 SEQUENCE_decode_ber,
972 SEQUENCE_encode_der,
vlm2dbab7c2004-10-23 15:07:45 +0000973 SEQUENCE_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000974 SEQUENCE_encode_xer,
vlm337167e2005-11-26 11:25:14 +0000975 0, /* No PER decoder, -gen-PER to enable */
vlm1308d2b2004-09-10 15:49:15 +0000976 0, /* Use generic outmost tag fetcher */
vlm337167e2005-11-26 11:25:14 +0000977 asn_DEF_Ts_tags_1,
978 sizeof(asn_DEF_Ts_tags_1)
979 /sizeof(asn_DEF_Ts_tags_1[0]) - 1, /* 1 */
980 asn_DEF_Ts_tags_1, /* Same as above */
981 sizeof(asn_DEF_Ts_tags_1)
982 /sizeof(asn_DEF_Ts_tags_1[0]), /* 2 */
983 0, /* No PER visible constraints */
vlm44fe49a2005-03-04 11:26:08 +0000984 asn_MBR_Ts_1,
vlm1308d2b2004-09-10 15:49:15 +0000985 3, /* Elements count */
vlm337167e2005-11-26 11:25:14 +0000986 &asn_SPC_Ts_specs_1 /* Additional specs */
vlm1308d2b2004-09-10 15:49:15 +0000987};
988