blob: 14e1098993fbae662c57e2a21e6023de73cdeaa9 [file] [log] [blame]
vlmde592d72004-09-14 12:46:58 +00001
2/*** <<< INCLUDES [T1] >>> ***/
3
4#include <T2.h>
5
6/*** <<< TYPE-DECLS [T1] >>> ***/
7
vlmde592d72004-09-14 12:46:58 +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;
vlmde592d72004-09-14 12:46:58 +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;
vlmde592d72004-09-14 12:46:58 +000020
21/*** <<< CODE [T1] >>> ***/
22
23int
vlm02296432004-09-29 13:19:37 +000024T1_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlmde592d72004-09-14 12:46:58 +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);
vlmde592d72004-09-14 12:46:58 +000029}
30
31/*
32 * This type is implemented using T2,
vlmcb0b7fc2004-09-23 22:14:58 +000033 * so here we adjust the DEF accordingly.
vlmde592d72004-09-14 12:46:58 +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;
43 td->elements = asn_DEF_T2.elements;
44 td->elements_count = asn_DEF_T2.elements_count;
45 td->specifics = asn_DEF_T2.specifics;
vlmde592d72004-09-14 12:46:58 +000046}
47
vlm39ba4c42004-09-22 16:06:28 +000048void
vlm02296432004-09-29 13:19:37 +000049T1_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +000050 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +000051 T1_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +000052 td->free_struct(td, struct_ptr, contents_only);
vlmde592d72004-09-14 12:46:58 +000053}
54
55int
vlm02296432004-09-29 13:19:37 +000056T1_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlmde592d72004-09-14 12:46:58 +000057 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +000058 T1_1_inherit_TYPE_descriptor(td);
vlmde592d72004-09-14 12:46:58 +000059 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
60}
61
vlm9de248e2004-10-20 15:50:55 +000062asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +000063T1_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +000064 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +000065 T1_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +000066 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +000067}
68
69asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +000070T1_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +000071 void *structure, int tag_mode, ber_tlv_tag_t tag,
72 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +000073 T1_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +000074 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
75}
76
vlma6af74c2004-10-23 13:26:56 +000077asn_dec_rval_t
78T1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +000079 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +000080 T1_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +000081 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
82}
83
vlm39ba4c42004-09-22 16:06:28 +000084asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +000085T1_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +000086 int ilevel, enum xer_encoder_flags_e flags,
87 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +000088 T1_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +000089 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlmde592d72004-09-14 12:46:58 +000090}
91
92
93/*** <<< STAT-DEFS [T1] >>> ***/
94
vlm67d57fe2005-03-06 09:29:03 +000095static ber_tlv_tag_t asn_DEF_T1_1_tags[] = {
vlmde592d72004-09-14 12:46:58 +000096 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
97 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
98 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
99 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
100};
vlm67d57fe2005-03-06 09:29:03 +0000101static ber_tlv_tag_t asn_DEF_T1_1_all_tags[] = {
vlmde592d72004-09-14 12:46:58 +0000102 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
103 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
104 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
105 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
106 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
107 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
108};
vlm02296432004-09-29 13:19:37 +0000109asn_TYPE_descriptor_t asn_DEF_T1 = {
vlmde592d72004-09-14 12:46:58 +0000110 "T1",
vlm9de248e2004-10-20 15:50:55 +0000111 "T1",
vlm39ba4c42004-09-22 16:06:28 +0000112 T1_free,
113 T1_print,
vlmde592d72004-09-14 12:46:58 +0000114 T1_constraint,
115 T1_decode_ber,
116 T1_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000117 T1_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000118 T1_encode_xer,
vlmde592d72004-09-14 12:46:58 +0000119 0, /* Use generic outmost tag fetcher */
vlm67d57fe2005-03-06 09:29:03 +0000120 asn_DEF_T1_1_tags,
121 sizeof(asn_DEF_T1_1_tags)
122 /sizeof(asn_DEF_T1_1_tags[0]), /* 4 */
123 asn_DEF_T1_1_all_tags,
124 sizeof(asn_DEF_T1_1_all_tags)
125 /sizeof(asn_DEF_T1_1_all_tags[0]), /* 6 */
vlmde592d72004-09-14 12:46:58 +0000126 0, 0, /* No members */
127 0 /* No specifics */
128};
129
130
131/*** <<< INCLUDES [T2] >>> ***/
132
133#include <T3.h>
134
135/*** <<< TYPE-DECLS [T2] >>> ***/
136
vlmde592d72004-09-14 12:46:58 +0000137typedef T3_t T2_t;
138
139/*** <<< FUNC-DECLS [T2] >>> ***/
140
vlm02296432004-09-29 13:19:37 +0000141extern asn_TYPE_descriptor_t asn_DEF_T2;
vlm39ba4c42004-09-22 16:06:28 +0000142asn_struct_free_f T2_free;
143asn_struct_print_f T2_print;
vlmde592d72004-09-14 12:46:58 +0000144asn_constr_check_f T2_constraint;
145ber_type_decoder_f T2_decode_ber;
146der_type_encoder_f T2_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000147xer_type_decoder_f T2_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000148xer_type_encoder_f T2_encode_xer;
vlmde592d72004-09-14 12:46:58 +0000149
150/*** <<< CODE [T2] >>> ***/
151
152int
vlm02296432004-09-29 13:19:37 +0000153T2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlmde592d72004-09-14 12:46:58 +0000154 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000155 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000156 td->check_constraints = asn_DEF_T3.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000157 return td->check_constraints(td, sptr, app_errlog, app_key);
vlmde592d72004-09-14 12:46:58 +0000158}
159
160/*
161 * This type is implemented using T3,
vlmcb0b7fc2004-09-23 22:14:58 +0000162 * so here we adjust the DEF accordingly.
vlmde592d72004-09-14 12:46:58 +0000163 */
164static void
vlm67d57fe2005-03-06 09:29:03 +0000165T2_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000166 td->free_struct = asn_DEF_T3.free_struct;
167 td->print_struct = asn_DEF_T3.print_struct;
168 td->ber_decoder = asn_DEF_T3.ber_decoder;
169 td->der_encoder = asn_DEF_T3.der_encoder;
170 td->xer_decoder = asn_DEF_T3.xer_decoder;
171 td->xer_encoder = asn_DEF_T3.xer_encoder;
172 td->elements = asn_DEF_T3.elements;
173 td->elements_count = asn_DEF_T3.elements_count;
174 td->specifics = asn_DEF_T3.specifics;
vlmde592d72004-09-14 12:46:58 +0000175}
176
vlm39ba4c42004-09-22 16:06:28 +0000177void
vlm02296432004-09-29 13:19:37 +0000178T2_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000179 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000180 T2_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000181 td->free_struct(td, struct_ptr, contents_only);
vlmde592d72004-09-14 12:46:58 +0000182}
183
184int
vlm02296432004-09-29 13:19:37 +0000185T2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlmde592d72004-09-14 12:46:58 +0000186 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000187 T2_1_inherit_TYPE_descriptor(td);
vlmde592d72004-09-14 12:46:58 +0000188 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
189}
190
vlm9de248e2004-10-20 15:50:55 +0000191asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000192T2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000193 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000194 T2_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000195 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000196}
197
198asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000199T2_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000200 void *structure, int tag_mode, ber_tlv_tag_t tag,
201 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000202 T2_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000203 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
204}
205
vlma6af74c2004-10-23 13:26:56 +0000206asn_dec_rval_t
207T2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000208 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000209 T2_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000210 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
211}
212
vlm39ba4c42004-09-22 16:06:28 +0000213asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000214T2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000215 int ilevel, enum xer_encoder_flags_e flags,
216 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000217 T2_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000218 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlmde592d72004-09-14 12:46:58 +0000219}
220
221
222/*** <<< STAT-DEFS [T2] >>> ***/
223
vlm67d57fe2005-03-06 09:29:03 +0000224static ber_tlv_tag_t asn_DEF_T2_1_tags[] = {
vlmde592d72004-09-14 12:46:58 +0000225 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
226 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
227 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
228};
vlm67d57fe2005-03-06 09:29:03 +0000229static ber_tlv_tag_t asn_DEF_T2_1_all_tags[] = {
vlmde592d72004-09-14 12:46:58 +0000230 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
231 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
232 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
233 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
234 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
235};
vlm02296432004-09-29 13:19:37 +0000236asn_TYPE_descriptor_t asn_DEF_T2 = {
vlmde592d72004-09-14 12:46:58 +0000237 "T2",
vlm9de248e2004-10-20 15:50:55 +0000238 "T2",
vlm39ba4c42004-09-22 16:06:28 +0000239 T2_free,
240 T2_print,
vlmde592d72004-09-14 12:46:58 +0000241 T2_constraint,
242 T2_decode_ber,
243 T2_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000244 T2_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000245 T2_encode_xer,
vlmde592d72004-09-14 12:46:58 +0000246 0, /* Use generic outmost tag fetcher */
vlm67d57fe2005-03-06 09:29:03 +0000247 asn_DEF_T2_1_tags,
248 sizeof(asn_DEF_T2_1_tags)
249 /sizeof(asn_DEF_T2_1_tags[0]), /* 3 */
250 asn_DEF_T2_1_all_tags,
251 sizeof(asn_DEF_T2_1_all_tags)
252 /sizeof(asn_DEF_T2_1_all_tags[0]), /* 5 */
vlmde592d72004-09-14 12:46:58 +0000253 0, 0, /* No members */
254 0 /* No specifics */
255};
256
257
258/*** <<< INCLUDES [T3] >>> ***/
259
260#include <T4.h>
261
262/*** <<< TYPE-DECLS [T3] >>> ***/
263
vlmde592d72004-09-14 12:46:58 +0000264typedef T4_t T3_t;
265
266/*** <<< FUNC-DECLS [T3] >>> ***/
267
vlm02296432004-09-29 13:19:37 +0000268extern asn_TYPE_descriptor_t asn_DEF_T3;
vlm39ba4c42004-09-22 16:06:28 +0000269asn_struct_free_f T3_free;
270asn_struct_print_f T3_print;
vlmde592d72004-09-14 12:46:58 +0000271asn_constr_check_f T3_constraint;
272ber_type_decoder_f T3_decode_ber;
273der_type_encoder_f T3_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000274xer_type_decoder_f T3_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000275xer_type_encoder_f T3_encode_xer;
vlmde592d72004-09-14 12:46:58 +0000276
277/*** <<< CODE [T3] >>> ***/
278
279int
vlm02296432004-09-29 13:19:37 +0000280T3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlmde592d72004-09-14 12:46:58 +0000281 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000282 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000283 td->check_constraints = asn_DEF_T4.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000284 return td->check_constraints(td, sptr, app_errlog, app_key);
vlmde592d72004-09-14 12:46:58 +0000285}
286
287/*
288 * This type is implemented using T4,
vlmcb0b7fc2004-09-23 22:14:58 +0000289 * so here we adjust the DEF accordingly.
vlmde592d72004-09-14 12:46:58 +0000290 */
291static void
vlm67d57fe2005-03-06 09:29:03 +0000292T3_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000293 td->free_struct = asn_DEF_T4.free_struct;
294 td->print_struct = asn_DEF_T4.print_struct;
295 td->ber_decoder = asn_DEF_T4.ber_decoder;
296 td->der_encoder = asn_DEF_T4.der_encoder;
297 td->xer_decoder = asn_DEF_T4.xer_decoder;
298 td->xer_encoder = asn_DEF_T4.xer_encoder;
299 td->elements = asn_DEF_T4.elements;
300 td->elements_count = asn_DEF_T4.elements_count;
301 td->specifics = asn_DEF_T4.specifics;
vlmde592d72004-09-14 12:46:58 +0000302}
303
vlm39ba4c42004-09-22 16:06:28 +0000304void
vlm02296432004-09-29 13:19:37 +0000305T3_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000306 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000307 T3_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000308 td->free_struct(td, struct_ptr, contents_only);
vlmde592d72004-09-14 12:46:58 +0000309}
310
311int
vlm02296432004-09-29 13:19:37 +0000312T3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlmde592d72004-09-14 12:46:58 +0000313 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000314 T3_1_inherit_TYPE_descriptor(td);
vlmde592d72004-09-14 12:46:58 +0000315 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
316}
317
vlm9de248e2004-10-20 15:50:55 +0000318asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000319T3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000320 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000321 T3_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000322 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000323}
324
325asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000326T3_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000327 void *structure, int tag_mode, ber_tlv_tag_t tag,
328 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000329 T3_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000330 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
331}
332
vlma6af74c2004-10-23 13:26:56 +0000333asn_dec_rval_t
334T3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000335 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000336 T3_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000337 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
338}
339
vlm39ba4c42004-09-22 16:06:28 +0000340asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000341T3_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000342 int ilevel, enum xer_encoder_flags_e flags,
343 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000344 T3_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000345 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlmde592d72004-09-14 12:46:58 +0000346}
347
348
349/*** <<< STAT-DEFS [T3] >>> ***/
350
vlm67d57fe2005-03-06 09:29:03 +0000351static ber_tlv_tag_t asn_DEF_T3_1_tags[] = {
vlmde592d72004-09-14 12:46:58 +0000352 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
353 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
354};
vlm67d57fe2005-03-06 09:29:03 +0000355static ber_tlv_tag_t asn_DEF_T3_1_all_tags[] = {
vlmde592d72004-09-14 12:46:58 +0000356 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
357 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
358 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
359 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
360};
vlm02296432004-09-29 13:19:37 +0000361asn_TYPE_descriptor_t asn_DEF_T3 = {
vlmde592d72004-09-14 12:46:58 +0000362 "T3",
vlm9de248e2004-10-20 15:50:55 +0000363 "T3",
vlm39ba4c42004-09-22 16:06:28 +0000364 T3_free,
365 T3_print,
vlmde592d72004-09-14 12:46:58 +0000366 T3_constraint,
367 T3_decode_ber,
368 T3_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000369 T3_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000370 T3_encode_xer,
vlmde592d72004-09-14 12:46:58 +0000371 0, /* Use generic outmost tag fetcher */
vlm67d57fe2005-03-06 09:29:03 +0000372 asn_DEF_T3_1_tags,
373 sizeof(asn_DEF_T3_1_tags)
374 /sizeof(asn_DEF_T3_1_tags[0]), /* 2 */
375 asn_DEF_T3_1_all_tags,
376 sizeof(asn_DEF_T3_1_all_tags)
377 /sizeof(asn_DEF_T3_1_all_tags[0]), /* 4 */
vlmde592d72004-09-14 12:46:58 +0000378 0, 0, /* No members */
379 0 /* No specifics */
380};
381
382
383/*** <<< INCLUDES [T4] >>> ***/
384
385#include <T5.h>
386
387/*** <<< TYPE-DECLS [T4] >>> ***/
388
vlmde592d72004-09-14 12:46:58 +0000389typedef T5_t T4_t;
390
391/*** <<< FUNC-DECLS [T4] >>> ***/
392
vlm02296432004-09-29 13:19:37 +0000393extern asn_TYPE_descriptor_t asn_DEF_T4;
vlm39ba4c42004-09-22 16:06:28 +0000394asn_struct_free_f T4_free;
395asn_struct_print_f T4_print;
vlmde592d72004-09-14 12:46:58 +0000396asn_constr_check_f T4_constraint;
397ber_type_decoder_f T4_decode_ber;
398der_type_encoder_f T4_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000399xer_type_decoder_f T4_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000400xer_type_encoder_f T4_encode_xer;
vlmde592d72004-09-14 12:46:58 +0000401
402/*** <<< CODE [T4] >>> ***/
403
404int
vlm02296432004-09-29 13:19:37 +0000405T4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlmde592d72004-09-14 12:46:58 +0000406 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000407 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000408 td->check_constraints = asn_DEF_T5.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000409 return td->check_constraints(td, sptr, app_errlog, app_key);
vlmde592d72004-09-14 12:46:58 +0000410}
411
412/*
413 * This type is implemented using T5,
vlmcb0b7fc2004-09-23 22:14:58 +0000414 * so here we adjust the DEF accordingly.
vlmde592d72004-09-14 12:46:58 +0000415 */
416static void
vlm67d57fe2005-03-06 09:29:03 +0000417T4_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000418 td->free_struct = asn_DEF_T5.free_struct;
419 td->print_struct = asn_DEF_T5.print_struct;
420 td->ber_decoder = asn_DEF_T5.ber_decoder;
421 td->der_encoder = asn_DEF_T5.der_encoder;
422 td->xer_decoder = asn_DEF_T5.xer_decoder;
423 td->xer_encoder = asn_DEF_T5.xer_encoder;
424 td->elements = asn_DEF_T5.elements;
425 td->elements_count = asn_DEF_T5.elements_count;
426 td->specifics = asn_DEF_T5.specifics;
vlmde592d72004-09-14 12:46:58 +0000427}
428
vlm39ba4c42004-09-22 16:06:28 +0000429void
vlm02296432004-09-29 13:19:37 +0000430T4_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000431 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000432 T4_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000433 td->free_struct(td, struct_ptr, contents_only);
vlmde592d72004-09-14 12:46:58 +0000434}
435
436int
vlm02296432004-09-29 13:19:37 +0000437T4_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlmde592d72004-09-14 12:46:58 +0000438 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000439 T4_1_inherit_TYPE_descriptor(td);
vlmde592d72004-09-14 12:46:58 +0000440 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
441}
442
vlm9de248e2004-10-20 15:50:55 +0000443asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000444T4_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000445 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000446 T4_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000447 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000448}
449
450asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000451T4_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000452 void *structure, int tag_mode, ber_tlv_tag_t tag,
453 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000454 T4_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000455 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
456}
457
vlma6af74c2004-10-23 13:26:56 +0000458asn_dec_rval_t
459T4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000460 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000461 T4_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000462 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
463}
464
vlm39ba4c42004-09-22 16:06:28 +0000465asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000466T4_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000467 int ilevel, enum xer_encoder_flags_e flags,
468 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000469 T4_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000470 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlmde592d72004-09-14 12:46:58 +0000471}
472
473
474/*** <<< STAT-DEFS [T4] >>> ***/
475
vlm67d57fe2005-03-06 09:29:03 +0000476static ber_tlv_tag_t asn_DEF_T4_1_tags[] = {
vlmde592d72004-09-14 12:46:58 +0000477 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
478 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
479 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
480};
vlm02296432004-09-29 13:19:37 +0000481asn_TYPE_descriptor_t asn_DEF_T4 = {
vlmde592d72004-09-14 12:46:58 +0000482 "T4",
vlm9de248e2004-10-20 15:50:55 +0000483 "T4",
vlm39ba4c42004-09-22 16:06:28 +0000484 T4_free,
485 T4_print,
vlmde592d72004-09-14 12:46:58 +0000486 T4_constraint,
487 T4_decode_ber,
488 T4_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000489 T4_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000490 T4_encode_xer,
vlmde592d72004-09-14 12:46:58 +0000491 0, /* Use generic outmost tag fetcher */
vlm67d57fe2005-03-06 09:29:03 +0000492 asn_DEF_T4_1_tags,
493 sizeof(asn_DEF_T4_1_tags)
494 /sizeof(asn_DEF_T4_1_tags[0]) - 1, /* 2 */
495 asn_DEF_T4_1_tags, /* Same as above */
496 sizeof(asn_DEF_T4_1_tags)
497 /sizeof(asn_DEF_T4_1_tags[0]), /* 3 */
vlmde592d72004-09-14 12:46:58 +0000498 0, 0, /* No members */
499 0 /* No specifics */
500};
501
502
503/*** <<< INCLUDES [T5] >>> ***/
504
505#include <T6.h>
506
507/*** <<< TYPE-DECLS [T5] >>> ***/
508
vlmde592d72004-09-14 12:46:58 +0000509typedef T6_t T5_t;
510
511/*** <<< FUNC-DECLS [T5] >>> ***/
512
vlm02296432004-09-29 13:19:37 +0000513extern asn_TYPE_descriptor_t asn_DEF_T5;
vlm39ba4c42004-09-22 16:06:28 +0000514asn_struct_free_f T5_free;
515asn_struct_print_f T5_print;
vlmde592d72004-09-14 12:46:58 +0000516asn_constr_check_f T5_constraint;
517ber_type_decoder_f T5_decode_ber;
518der_type_encoder_f T5_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000519xer_type_decoder_f T5_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000520xer_type_encoder_f T5_encode_xer;
vlmde592d72004-09-14 12:46:58 +0000521
522/*** <<< CODE [T5] >>> ***/
523
524int
vlm02296432004-09-29 13:19:37 +0000525T5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlmde592d72004-09-14 12:46:58 +0000526 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000527 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000528 td->check_constraints = asn_DEF_T6.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000529 return td->check_constraints(td, sptr, app_errlog, app_key);
vlmde592d72004-09-14 12:46:58 +0000530}
531
532/*
533 * This type is implemented using T6,
vlmcb0b7fc2004-09-23 22:14:58 +0000534 * so here we adjust the DEF accordingly.
vlmde592d72004-09-14 12:46:58 +0000535 */
536static void
vlm67d57fe2005-03-06 09:29:03 +0000537T5_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000538 td->free_struct = asn_DEF_T6.free_struct;
539 td->print_struct = asn_DEF_T6.print_struct;
540 td->ber_decoder = asn_DEF_T6.ber_decoder;
541 td->der_encoder = asn_DEF_T6.der_encoder;
542 td->xer_decoder = asn_DEF_T6.xer_decoder;
543 td->xer_encoder = asn_DEF_T6.xer_encoder;
544 td->elements = asn_DEF_T6.elements;
545 td->elements_count = asn_DEF_T6.elements_count;
546 td->specifics = asn_DEF_T6.specifics;
vlmde592d72004-09-14 12:46:58 +0000547}
548
vlm39ba4c42004-09-22 16:06:28 +0000549void
vlm02296432004-09-29 13:19:37 +0000550T5_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000551 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000552 T5_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000553 td->free_struct(td, struct_ptr, contents_only);
vlmde592d72004-09-14 12:46:58 +0000554}
555
556int
vlm02296432004-09-29 13:19:37 +0000557T5_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlmde592d72004-09-14 12:46:58 +0000558 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000559 T5_1_inherit_TYPE_descriptor(td);
vlmde592d72004-09-14 12:46:58 +0000560 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
561}
562
vlm9de248e2004-10-20 15:50:55 +0000563asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000564T5_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000565 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000566 T5_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000567 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000568}
569
570asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000571T5_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000572 void *structure, int tag_mode, ber_tlv_tag_t tag,
573 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000574 T5_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000575 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
576}
577
vlma6af74c2004-10-23 13:26:56 +0000578asn_dec_rval_t
579T5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000580 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000581 T5_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000582 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
583}
584
vlm39ba4c42004-09-22 16:06:28 +0000585asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000586T5_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000587 int ilevel, enum xer_encoder_flags_e flags,
588 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000589 T5_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000590 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlmde592d72004-09-14 12:46:58 +0000591}
592
593
594/*** <<< STAT-DEFS [T5] >>> ***/
595
vlm67d57fe2005-03-06 09:29:03 +0000596static ber_tlv_tag_t asn_DEF_T5_1_tags[] = {
vlmde592d72004-09-14 12:46:58 +0000597 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
598 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
599};
vlm02296432004-09-29 13:19:37 +0000600asn_TYPE_descriptor_t asn_DEF_T5 = {
vlmde592d72004-09-14 12:46:58 +0000601 "T5",
vlm9de248e2004-10-20 15:50:55 +0000602 "T5",
vlm39ba4c42004-09-22 16:06:28 +0000603 T5_free,
604 T5_print,
vlmde592d72004-09-14 12:46:58 +0000605 T5_constraint,
606 T5_decode_ber,
607 T5_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000608 T5_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000609 T5_encode_xer,
vlmde592d72004-09-14 12:46:58 +0000610 0, /* Use generic outmost tag fetcher */
vlm67d57fe2005-03-06 09:29:03 +0000611 asn_DEF_T5_1_tags,
612 sizeof(asn_DEF_T5_1_tags)
613 /sizeof(asn_DEF_T5_1_tags[0]) - 1, /* 1 */
614 asn_DEF_T5_1_tags, /* Same as above */
615 sizeof(asn_DEF_T5_1_tags)
616 /sizeof(asn_DEF_T5_1_tags[0]), /* 2 */
vlmde592d72004-09-14 12:46:58 +0000617 0, 0, /* No members */
618 0 /* No specifics */
619};
620
621
622/*** <<< INCLUDES [T6] >>> ***/
623
624#include <NativeReal.h>
625
626/*** <<< TYPE-DECLS [T6] >>> ***/
627
vlmde592d72004-09-14 12:46:58 +0000628typedef double T6_t;
629
630/*** <<< FUNC-DECLS [T6] >>> ***/
631
vlm1f7df782005-03-04 23:48:19 +0000632extern asn_TYPE_descriptor_t asn_DEF_T6;
633asn_struct_free_f T6_free;
634asn_struct_print_f T6_print;
635asn_constr_check_f T6_constraint;
636ber_type_decoder_f T6_decode_ber;
637der_type_encoder_f T6_encode_der;
638xer_type_decoder_f T6_decode_xer;
639xer_type_encoder_f T6_encode_xer;
vlmde592d72004-09-14 12:46:58 +0000640
641/*** <<< CODE [T6] >>> ***/
642
vlm1f7df782005-03-04 23:48:19 +0000643int
644T6_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
645 asn_app_consume_bytes_f *app_errlog, void *app_key) {
646 /* Replace with underlying type checker */
647 td->check_constraints = asn_DEF_NativeReal.check_constraints;
648 return td->check_constraints(td, sptr, app_errlog, app_key);
649}
650
651/*
652 * This type is implemented using NativeReal,
653 * so here we adjust the DEF accordingly.
654 */
655static void
vlm67d57fe2005-03-06 09:29:03 +0000656T6_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm1f7df782005-03-04 23:48:19 +0000657 td->free_struct = asn_DEF_NativeReal.free_struct;
658 td->print_struct = asn_DEF_NativeReal.print_struct;
659 td->ber_decoder = asn_DEF_NativeReal.ber_decoder;
660 td->der_encoder = asn_DEF_NativeReal.der_encoder;
661 td->xer_decoder = asn_DEF_NativeReal.xer_decoder;
662 td->xer_encoder = asn_DEF_NativeReal.xer_encoder;
663 td->elements = asn_DEF_NativeReal.elements;
664 td->elements_count = asn_DEF_NativeReal.elements_count;
665 td->specifics = asn_DEF_NativeReal.specifics;
666}
667
668void
669T6_free(asn_TYPE_descriptor_t *td,
670 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000671 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000672 td->free_struct(td, struct_ptr, contents_only);
673}
674
675int
676T6_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
677 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000678 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000679 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
680}
681
682asn_dec_rval_t
683T6_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000684 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000685 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000686 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
687}
688
689asn_enc_rval_t
690T6_encode_der(asn_TYPE_descriptor_t *td,
691 void *structure, int tag_mode, ber_tlv_tag_t tag,
692 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000693 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000694 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
695}
696
697asn_dec_rval_t
698T6_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000699 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000700 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000701 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
702}
703
704asn_enc_rval_t
705T6_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
706 int ilevel, enum xer_encoder_flags_e flags,
707 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000708 T6_1_inherit_TYPE_descriptor(td);
vlm1f7df782005-03-04 23:48:19 +0000709 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
710}
711
712
713/*** <<< STAT-DEFS [T6] >>> ***/
714
vlm67d57fe2005-03-06 09:29:03 +0000715static ber_tlv_tag_t asn_DEF_T6_1_tags[] = {
vlm1f7df782005-03-04 23:48:19 +0000716 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
717};
718asn_TYPE_descriptor_t asn_DEF_T6 = {
719 "T6",
720 "T6",
721 T6_free,
722 T6_print,
723 T6_constraint,
724 T6_decode_ber,
725 T6_encode_der,
726 T6_decode_xer,
727 T6_encode_xer,
728 0, /* Use generic outmost tag fetcher */
vlm67d57fe2005-03-06 09:29:03 +0000729 asn_DEF_T6_1_tags,
730 sizeof(asn_DEF_T6_1_tags)
731 /sizeof(asn_DEF_T6_1_tags[0]), /* 1 */
732 asn_DEF_T6_1_tags, /* Same as above */
733 sizeof(asn_DEF_T6_1_tags)
734 /sizeof(asn_DEF_T6_1_tags[0]), /* 1 */
vlm1f7df782005-03-04 23:48:19 +0000735 0, 0, /* No members */
736 0 /* No specifics */
737};
vlmde592d72004-09-14 12:46:58 +0000738
739
740/*** <<< INCLUDES [T] >>> ***/
741
742#include <Ts.h>
743
744/*** <<< TYPE-DECLS [T] >>> ***/
745
vlmde592d72004-09-14 12:46:58 +0000746typedef Ts_t T_t;
747
748/*** <<< FUNC-DECLS [T] >>> ***/
749
vlm02296432004-09-29 13:19:37 +0000750extern asn_TYPE_descriptor_t asn_DEF_T;
vlm39ba4c42004-09-22 16:06:28 +0000751asn_struct_free_f T_free;
752asn_struct_print_f T_print;
vlmde592d72004-09-14 12:46:58 +0000753asn_constr_check_f T_constraint;
754ber_type_decoder_f T_decode_ber;
755der_type_encoder_f T_encode_der;
vlma6af74c2004-10-23 13:26:56 +0000756xer_type_decoder_f T_decode_xer;
vlm39ba4c42004-09-22 16:06:28 +0000757xer_type_encoder_f T_encode_xer;
vlmde592d72004-09-14 12:46:58 +0000758
759/*** <<< CODE [T] >>> ***/
760
761int
vlm02296432004-09-29 13:19:37 +0000762T_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
vlmde592d72004-09-14 12:46:58 +0000763 asn_app_consume_bytes_f *app_errlog, void *app_key) {
vlmaafc9412004-09-26 13:12:56 +0000764 /* Replace with underlying type checker */
vlm02296432004-09-29 13:19:37 +0000765 td->check_constraints = asn_DEF_Ts.check_constraints;
vlmaafc9412004-09-26 13:12:56 +0000766 return td->check_constraints(td, sptr, app_errlog, app_key);
vlmde592d72004-09-14 12:46:58 +0000767}
768
769/*
770 * This type is implemented using Ts,
vlmcb0b7fc2004-09-23 22:14:58 +0000771 * so here we adjust the DEF accordingly.
vlmde592d72004-09-14 12:46:58 +0000772 */
773static void
vlm67d57fe2005-03-06 09:29:03 +0000774T_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
vlm02296432004-09-29 13:19:37 +0000775 td->free_struct = asn_DEF_Ts.free_struct;
776 td->print_struct = asn_DEF_Ts.print_struct;
777 td->ber_decoder = asn_DEF_Ts.ber_decoder;
778 td->der_encoder = asn_DEF_Ts.der_encoder;
779 td->xer_decoder = asn_DEF_Ts.xer_decoder;
780 td->xer_encoder = asn_DEF_Ts.xer_encoder;
781 td->elements = asn_DEF_Ts.elements;
782 td->elements_count = asn_DEF_Ts.elements_count;
783 td->specifics = asn_DEF_Ts.specifics;
vlmde592d72004-09-14 12:46:58 +0000784}
785
vlm39ba4c42004-09-22 16:06:28 +0000786void
vlm02296432004-09-29 13:19:37 +0000787T_free(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000788 void *struct_ptr, int contents_only) {
vlm67d57fe2005-03-06 09:29:03 +0000789 T_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000790 td->free_struct(td, struct_ptr, contents_only);
vlmde592d72004-09-14 12:46:58 +0000791}
792
793int
vlm02296432004-09-29 13:19:37 +0000794T_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
vlmde592d72004-09-14 12:46:58 +0000795 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000796 T_1_inherit_TYPE_descriptor(td);
vlmde592d72004-09-14 12:46:58 +0000797 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
798}
799
vlm9de248e2004-10-20 15:50:55 +0000800asn_dec_rval_t
vlm02296432004-09-29 13:19:37 +0000801T_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000802 void **structure, const void *bufptr, size_t size, int tag_mode) {
vlm67d57fe2005-03-06 09:29:03 +0000803 T_1_inherit_TYPE_descriptor(td);
vlm02296432004-09-29 13:19:37 +0000804 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
vlm39ba4c42004-09-22 16:06:28 +0000805}
806
807asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000808T_encode_der(asn_TYPE_descriptor_t *td,
vlm39ba4c42004-09-22 16:06:28 +0000809 void *structure, int tag_mode, ber_tlv_tag_t tag,
810 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000811 T_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000812 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
813}
814
vlma6af74c2004-10-23 13:26:56 +0000815asn_dec_rval_t
816T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
vlmc04faea2005-03-17 21:57:19 +0000817 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
vlm67d57fe2005-03-06 09:29:03 +0000818 T_1_inherit_TYPE_descriptor(td);
vlma6af74c2004-10-23 13:26:56 +0000819 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
820}
821
vlm39ba4c42004-09-22 16:06:28 +0000822asn_enc_rval_t
vlm02296432004-09-29 13:19:37 +0000823T_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
vlm39ba4c42004-09-22 16:06:28 +0000824 int ilevel, enum xer_encoder_flags_e flags,
825 asn_app_consume_bytes_f *cb, void *app_key) {
vlm67d57fe2005-03-06 09:29:03 +0000826 T_1_inherit_TYPE_descriptor(td);
vlm39ba4c42004-09-22 16:06:28 +0000827 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
vlmde592d72004-09-14 12:46:58 +0000828}
829
830
831/*** <<< STAT-DEFS [T] >>> ***/
832
vlm67d57fe2005-03-06 09:29:03 +0000833static ber_tlv_tag_t asn_DEF_T_1_tags[] = {
vlmde592d72004-09-14 12:46:58 +0000834 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
835 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
836 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
837};
vlm02296432004-09-29 13:19:37 +0000838asn_TYPE_descriptor_t asn_DEF_T = {
vlmde592d72004-09-14 12:46:58 +0000839 "T",
vlm9de248e2004-10-20 15:50:55 +0000840 "T",
vlm39ba4c42004-09-22 16:06:28 +0000841 T_free,
842 T_print,
vlmde592d72004-09-14 12:46:58 +0000843 T_constraint,
844 T_decode_ber,
845 T_encode_der,
vlma6af74c2004-10-23 13:26:56 +0000846 T_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000847 T_encode_xer,
vlmde592d72004-09-14 12:46:58 +0000848 0, /* Use generic outmost tag fetcher */
vlm67d57fe2005-03-06 09:29:03 +0000849 asn_DEF_T_1_tags,
850 sizeof(asn_DEF_T_1_tags)
851 /sizeof(asn_DEF_T_1_tags[0]) - 2, /* 1 */
852 asn_DEF_T_1_tags, /* Same as above */
853 sizeof(asn_DEF_T_1_tags)
854 /sizeof(asn_DEF_T_1_tags[0]), /* 3 */
vlmde592d72004-09-14 12:46:58 +0000855 0, 0, /* Defined elsewhere */
856 0 /* No specifics */
857};
858
859
860/*** <<< INCLUDES [Ts] >>> ***/
861
862#include <T2.h>
863#include <T3.h>
864#include <constr_SEQUENCE.h>
865
vlmde592d72004-09-14 12:46:58 +0000866/*** <<< TYPE-DECLS [Ts] >>> ***/
867
vlmde592d72004-09-14 12:46:58 +0000868typedef struct Ts {
869 T2_t m1;
870 T3_t *m2 /* OPTIONAL */;
871 T3_t m3;
872
873 /* Context for parsing across buffer boundaries */
vlm02296432004-09-29 13:19:37 +0000874 asn_struct_ctx_t _asn_ctx;
vlmde592d72004-09-14 12:46:58 +0000875} Ts_t;
876
vlm0b567bf2005-03-04 22:18:20 +0000877/*** <<< FUNC-DECLS [Ts] >>> ***/
878
879extern asn_TYPE_descriptor_t asn_DEF_Ts;
880
vlmde592d72004-09-14 12:46:58 +0000881/*** <<< STAT-DEFS [Ts] >>> ***/
882
vlm44fe49a2005-03-04 11:26:08 +0000883static asn_TYPE_member_t asn_MBR_Ts_1[] = {
vlmde592d72004-09-14 12:46:58 +0000884 { ATF_NOFLAGS, 0, offsetof(struct Ts, m1),
885 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
886 .tag_mode = -1, /* IMPLICIT tag at current level */
vlm02296432004-09-29 13:19:37 +0000887 .type = (void *)&asn_DEF_T2,
vlm0a9af512005-01-17 12:20:19 +0000888 .memb_constraints = 0, /* Defer constraints checking to the member type */
vlmde592d72004-09-14 12:46:58 +0000889 .name = "m1"
890 },
891 { ATF_POINTER, 1, offsetof(struct Ts, m2),
892 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
893 .tag_mode = +1, /* EXPLICIT tag at current level */
vlm02296432004-09-29 13:19:37 +0000894 .type = (void *)&asn_DEF_T3,
vlm0a9af512005-01-17 12:20:19 +0000895 .memb_constraints = 0, /* Defer constraints checking to the member type */
vlmde592d72004-09-14 12:46:58 +0000896 .name = "m2"
897 },
898 { ATF_NOFLAGS, 0, offsetof(struct Ts, m3),
899 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
900 .tag_mode = -1, /* IMPLICIT tag at current level */
vlm02296432004-09-29 13:19:37 +0000901 .type = (void *)&asn_DEF_T3,
vlm0a9af512005-01-17 12:20:19 +0000902 .memb_constraints = 0, /* Defer constraints checking to the member type */
vlmde592d72004-09-14 12:46:58 +0000903 .name = "m3"
904 },
905};
vlm44fe49a2005-03-04 11:26:08 +0000906static ber_tlv_tag_t asn_DEF_Ts_1_tags[] = {
vlmde592d72004-09-14 12:46:58 +0000907 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
908 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
909};
vlm44fe49a2005-03-04 11:26:08 +0000910static asn_TYPE_tag2member_t asn_MAP_Ts_1_tag2el[] = {
vlmde592d72004-09-14 12:46:58 +0000911 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* m1 at 24 */
912 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* m2 at 25 */
vlm3b0d1e52005-02-25 08:24:19 +0000913 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* m3 at 27 */
vlmde592d72004-09-14 12:46:58 +0000914};
vlm44fe49a2005-03-04 11:26:08 +0000915static asn_SEQUENCE_specifics_t asn_SPC_Ts_1_specs = {
vlmde592d72004-09-14 12:46:58 +0000916 sizeof(struct Ts),
vlm02296432004-09-29 13:19:37 +0000917 offsetof(struct Ts, _asn_ctx),
vlm44fe49a2005-03-04 11:26:08 +0000918 asn_MAP_Ts_1_tag2el,
vlmde592d72004-09-14 12:46:58 +0000919 3, /* Count of tags in the map */
920 -1, /* Start extensions */
921 -1 /* Stop extensions */
922};
vlm02296432004-09-29 13:19:37 +0000923asn_TYPE_descriptor_t asn_DEF_Ts = {
vlmde592d72004-09-14 12:46:58 +0000924 "Ts",
vlm9de248e2004-10-20 15:50:55 +0000925 "Ts",
vlm39ba4c42004-09-22 16:06:28 +0000926 SEQUENCE_free,
927 SEQUENCE_print,
vlmde592d72004-09-14 12:46:58 +0000928 SEQUENCE_constraint,
929 SEQUENCE_decode_ber,
930 SEQUENCE_encode_der,
vlm2dbab7c2004-10-23 15:07:45 +0000931 SEQUENCE_decode_xer,
vlm39ba4c42004-09-22 16:06:28 +0000932 SEQUENCE_encode_xer,
vlmde592d72004-09-14 12:46:58 +0000933 0, /* Use generic outmost tag fetcher */
vlm44fe49a2005-03-04 11:26:08 +0000934 asn_DEF_Ts_1_tags,
935 sizeof(asn_DEF_Ts_1_tags)
936 /sizeof(asn_DEF_Ts_1_tags[0]) - 1, /* 1 */
937 asn_DEF_Ts_1_tags, /* Same as above */
938 sizeof(asn_DEF_Ts_1_tags)
939 /sizeof(asn_DEF_Ts_1_tags[0]), /* 2 */
940 asn_MBR_Ts_1,
vlmde592d72004-09-14 12:46:58 +0000941 3, /* Elements count */
vlm44fe49a2005-03-04 11:26:08 +0000942 &asn_SPC_Ts_1_specs /* Additional specs */
vlmde592d72004-09-14 12:46:58 +0000943};
944