blob: e27b0011fbcd218a3f99bc570e84c1f769aec031 [file] [log] [blame]
Lev Walkin2888f272004-09-14 12:46:58 +00001
2/*** <<< INCLUDES [T1] >>> ***/
3
Lev Walkin22b5ed42006-09-13 02:51:20 +00004#include "T2.h"
Lev Walkin2888f272004-09-14 12:46:58 +00005
6/*** <<< TYPE-DECLS [T1] >>> ***/
7
Lev Walkin2888f272004-09-14 12:46:58 +00008typedef T2_t T1_t;
9
10/*** <<< FUNC-DECLS [T1] >>> ***/
11
Lev Walkindfae9752004-09-29 13:19:37 +000012extern asn_TYPE_descriptor_t asn_DEF_T1;
Lev Walkina9cc46e2004-09-22 16:06:28 +000013asn_struct_free_f T1_free;
14asn_struct_print_f T1_print;
Lev Walkin2888f272004-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;
Lev Walkin0ebe8b32004-10-23 13:26:56 +000018xer_type_decoder_f T1_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +000019xer_type_encoder_f T1_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +000020
21/*** <<< CODE [T1] >>> ***/
22
23int
Lev Walkindfae9752004-09-29 13:19:37 +000024T1_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +000025 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +000026 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +000027 td->check_constraints = asn_DEF_T2.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +000028 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +000029}
30
31/*
32 * This type is implemented using T2,
Lev Walkinc3808c12004-09-23 22:14:58 +000033 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +000034 */
35static void
Lev Walkine8318b82005-03-06 09:29:03 +000036T1_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-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;
Lev Walkin59b176e2005-11-26 11:25:14 +000043 td->uper_decoder = asn_DEF_T2.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +000044 td->uper_encoder = asn_DEF_T2.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +000045 if(!td->per_constraints)
46 td->per_constraints = asn_DEF_T2.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +000047 td->elements = asn_DEF_T2.elements;
48 td->elements_count = asn_DEF_T2.elements_count;
49 td->specifics = asn_DEF_T2.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +000050}
51
Lev Walkina9cc46e2004-09-22 16:06:28 +000052void
Lev Walkindfae9752004-09-29 13:19:37 +000053T1_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +000054 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +000055 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000056 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +000057}
58
59int
Lev Walkindfae9752004-09-29 13:19:37 +000060T1_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +000061 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000062 T1_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +000063 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
64}
65
Lev Walkindc06f6b2004-10-20 15:50:55 +000066asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000067T1_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +000068 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +000069 T1_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +000070 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +000071}
72
73asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000074T1_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +000075 void *structure, int tag_mode, ber_tlv_tag_t tag,
76 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000077 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000078 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
79}
80
Lev Walkin0ebe8b32004-10-23 13:26:56 +000081asn_dec_rval_t
82T1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +000083 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +000084 T1_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +000085 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
86}
87
Lev Walkina9cc46e2004-09-22 16:06:28 +000088asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000089T1_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +000090 int ilevel, enum xer_encoder_flags_e flags,
91 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000092 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000093 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +000094}
95
96
97/*** <<< STAT-DEFS [T1] >>> ***/
98
Lev Walkin59b176e2005-11-26 11:25:14 +000099static ber_tlv_tag_t asn_DEF_T1_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000100 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
101 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
102 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
103 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
104};
Lev Walkin59b176e2005-11-26 11:25:14 +0000105static ber_tlv_tag_t asn_DEF_T1_all_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000106 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
107 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
108 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
109 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
110 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
111 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
112};
Lev Walkindfae9752004-09-29 13:19:37 +0000113asn_TYPE_descriptor_t asn_DEF_T1 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000114 "T1",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000115 "T1",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000116 T1_free,
117 T1_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000118 T1_constraint,
119 T1_decode_ber,
120 T1_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000121 T1_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000122 T1_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000123 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000124 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000125 asn_DEF_T1_tags_1,
126 sizeof(asn_DEF_T1_tags_1)
127 /sizeof(asn_DEF_T1_tags_1[0]), /* 4 */
128 asn_DEF_T1_all_tags_1,
129 sizeof(asn_DEF_T1_all_tags_1)
130 /sizeof(asn_DEF_T1_all_tags_1[0]), /* 6 */
131 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000132 0, 0, /* No members */
133 0 /* No specifics */
134};
135
136
137/*** <<< INCLUDES [T2] >>> ***/
138
Lev Walkin22b5ed42006-09-13 02:51:20 +0000139#include "T3.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000140
141/*** <<< TYPE-DECLS [T2] >>> ***/
142
Lev Walkin2888f272004-09-14 12:46:58 +0000143typedef T3_t T2_t;
144
145/*** <<< FUNC-DECLS [T2] >>> ***/
146
Lev Walkindfae9752004-09-29 13:19:37 +0000147extern asn_TYPE_descriptor_t asn_DEF_T2;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000148asn_struct_free_f T2_free;
149asn_struct_print_f T2_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000150asn_constr_check_f T2_constraint;
151ber_type_decoder_f T2_decode_ber;
152der_type_encoder_f T2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000153xer_type_decoder_f T2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000154xer_type_encoder_f T2_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000155
156/*** <<< CODE [T2] >>> ***/
157
158int
Lev Walkindfae9752004-09-29 13:19:37 +0000159T2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000160 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000161 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000162 td->check_constraints = asn_DEF_T3.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000163 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000164}
165
166/*
167 * This type is implemented using T3,
Lev Walkinc3808c12004-09-23 22:14:58 +0000168 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000169 */
170static void
Lev Walkine8318b82005-03-06 09:29:03 +0000171T2_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000172 td->free_struct = asn_DEF_T3.free_struct;
173 td->print_struct = asn_DEF_T3.print_struct;
174 td->ber_decoder = asn_DEF_T3.ber_decoder;
175 td->der_encoder = asn_DEF_T3.der_encoder;
176 td->xer_decoder = asn_DEF_T3.xer_decoder;
177 td->xer_encoder = asn_DEF_T3.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000178 td->uper_decoder = asn_DEF_T3.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000179 td->uper_encoder = asn_DEF_T3.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000180 if(!td->per_constraints)
181 td->per_constraints = asn_DEF_T3.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000182 td->elements = asn_DEF_T3.elements;
183 td->elements_count = asn_DEF_T3.elements_count;
184 td->specifics = asn_DEF_T3.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000185}
186
Lev Walkina9cc46e2004-09-22 16:06:28 +0000187void
Lev Walkindfae9752004-09-29 13:19:37 +0000188T2_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000189 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000190 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000191 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000192}
193
194int
Lev Walkindfae9752004-09-29 13:19:37 +0000195T2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000196 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000197 T2_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000198 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
199}
200
Lev Walkindc06f6b2004-10-20 15:50:55 +0000201asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000202T2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000203 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000204 T2_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000205 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000206}
207
208asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000209T2_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000210 void *structure, int tag_mode, ber_tlv_tag_t tag,
211 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000212 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000213 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
214}
215
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000216asn_dec_rval_t
217T2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000218 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000219 T2_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000220 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
221}
222
Lev Walkina9cc46e2004-09-22 16:06:28 +0000223asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000224T2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000225 int ilevel, enum xer_encoder_flags_e flags,
226 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000227 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000228 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000229}
230
231
232/*** <<< STAT-DEFS [T2] >>> ***/
233
Lev Walkin59b176e2005-11-26 11:25:14 +0000234static ber_tlv_tag_t asn_DEF_T2_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000235 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
236 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
237 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
238};
Lev Walkin59b176e2005-11-26 11:25:14 +0000239static ber_tlv_tag_t asn_DEF_T2_all_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000240 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
241 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
242 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
243 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
244 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
245};
Lev Walkindfae9752004-09-29 13:19:37 +0000246asn_TYPE_descriptor_t asn_DEF_T2 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000247 "T2",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000248 "T2",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000249 T2_free,
250 T2_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000251 T2_constraint,
252 T2_decode_ber,
253 T2_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000254 T2_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000255 T2_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000256 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000257 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000258 asn_DEF_T2_tags_1,
259 sizeof(asn_DEF_T2_tags_1)
260 /sizeof(asn_DEF_T2_tags_1[0]), /* 3 */
261 asn_DEF_T2_all_tags_1,
262 sizeof(asn_DEF_T2_all_tags_1)
263 /sizeof(asn_DEF_T2_all_tags_1[0]), /* 5 */
264 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000265 0, 0, /* No members */
266 0 /* No specifics */
267};
268
269
270/*** <<< INCLUDES [T3] >>> ***/
271
Lev Walkin22b5ed42006-09-13 02:51:20 +0000272#include "T4.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000273
274/*** <<< TYPE-DECLS [T3] >>> ***/
275
Lev Walkin2888f272004-09-14 12:46:58 +0000276typedef T4_t T3_t;
277
278/*** <<< FUNC-DECLS [T3] >>> ***/
279
Lev Walkindfae9752004-09-29 13:19:37 +0000280extern asn_TYPE_descriptor_t asn_DEF_T3;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000281asn_struct_free_f T3_free;
282asn_struct_print_f T3_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000283asn_constr_check_f T3_constraint;
284ber_type_decoder_f T3_decode_ber;
285der_type_encoder_f T3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000286xer_type_decoder_f T3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000287xer_type_encoder_f T3_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000288
289/*** <<< CODE [T3] >>> ***/
290
291int
Lev Walkindfae9752004-09-29 13:19:37 +0000292T3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000293 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000294 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000295 td->check_constraints = asn_DEF_T4.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000296 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000297}
298
299/*
300 * This type is implemented using T4,
Lev Walkinc3808c12004-09-23 22:14:58 +0000301 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000302 */
303static void
Lev Walkine8318b82005-03-06 09:29:03 +0000304T3_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000305 td->free_struct = asn_DEF_T4.free_struct;
306 td->print_struct = asn_DEF_T4.print_struct;
307 td->ber_decoder = asn_DEF_T4.ber_decoder;
308 td->der_encoder = asn_DEF_T4.der_encoder;
309 td->xer_decoder = asn_DEF_T4.xer_decoder;
310 td->xer_encoder = asn_DEF_T4.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000311 td->uper_decoder = asn_DEF_T4.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000312 td->uper_encoder = asn_DEF_T4.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000313 if(!td->per_constraints)
314 td->per_constraints = asn_DEF_T4.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000315 td->elements = asn_DEF_T4.elements;
316 td->elements_count = asn_DEF_T4.elements_count;
317 td->specifics = asn_DEF_T4.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000318}
319
Lev Walkina9cc46e2004-09-22 16:06:28 +0000320void
Lev Walkindfae9752004-09-29 13:19:37 +0000321T3_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000322 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000323 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000324 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000325}
326
327int
Lev Walkindfae9752004-09-29 13:19:37 +0000328T3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000329 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000330 T3_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000331 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
332}
333
Lev Walkindc06f6b2004-10-20 15:50:55 +0000334asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000335T3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000336 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000337 T3_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000338 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000339}
340
341asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000342T3_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000343 void *structure, int tag_mode, ber_tlv_tag_t tag,
344 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000345 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000346 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
347}
348
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000349asn_dec_rval_t
350T3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000351 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000352 T3_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000353 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
354}
355
Lev Walkina9cc46e2004-09-22 16:06:28 +0000356asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000357T3_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000358 int ilevel, enum xer_encoder_flags_e flags,
359 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000360 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000361 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000362}
363
364
365/*** <<< STAT-DEFS [T3] >>> ***/
366
Lev Walkin59b176e2005-11-26 11:25:14 +0000367static ber_tlv_tag_t asn_DEF_T3_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000368 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
369 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
370};
Lev Walkin59b176e2005-11-26 11:25:14 +0000371static ber_tlv_tag_t asn_DEF_T3_all_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000372 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
373 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
374 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
375 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
376};
Lev Walkindfae9752004-09-29 13:19:37 +0000377asn_TYPE_descriptor_t asn_DEF_T3 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000378 "T3",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000379 "T3",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000380 T3_free,
381 T3_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000382 T3_constraint,
383 T3_decode_ber,
384 T3_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000385 T3_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000386 T3_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000387 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000388 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000389 asn_DEF_T3_tags_1,
390 sizeof(asn_DEF_T3_tags_1)
391 /sizeof(asn_DEF_T3_tags_1[0]), /* 2 */
392 asn_DEF_T3_all_tags_1,
393 sizeof(asn_DEF_T3_all_tags_1)
394 /sizeof(asn_DEF_T3_all_tags_1[0]), /* 4 */
395 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000396 0, 0, /* No members */
397 0 /* No specifics */
398};
399
400
401/*** <<< INCLUDES [T4] >>> ***/
402
Lev Walkin22b5ed42006-09-13 02:51:20 +0000403#include "T5.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000404
405/*** <<< TYPE-DECLS [T4] >>> ***/
406
Lev Walkin2888f272004-09-14 12:46:58 +0000407typedef T5_t T4_t;
408
409/*** <<< FUNC-DECLS [T4] >>> ***/
410
Lev Walkindfae9752004-09-29 13:19:37 +0000411extern asn_TYPE_descriptor_t asn_DEF_T4;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000412asn_struct_free_f T4_free;
413asn_struct_print_f T4_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000414asn_constr_check_f T4_constraint;
415ber_type_decoder_f T4_decode_ber;
416der_type_encoder_f T4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000417xer_type_decoder_f T4_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000418xer_type_encoder_f T4_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000419
420/*** <<< CODE [T4] >>> ***/
421
422int
Lev Walkindfae9752004-09-29 13:19:37 +0000423T4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000424 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000425 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000426 td->check_constraints = asn_DEF_T5.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000427 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000428}
429
430/*
431 * This type is implemented using T5,
Lev Walkinc3808c12004-09-23 22:14:58 +0000432 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000433 */
434static void
Lev Walkine8318b82005-03-06 09:29:03 +0000435T4_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000436 td->free_struct = asn_DEF_T5.free_struct;
437 td->print_struct = asn_DEF_T5.print_struct;
438 td->ber_decoder = asn_DEF_T5.ber_decoder;
439 td->der_encoder = asn_DEF_T5.der_encoder;
440 td->xer_decoder = asn_DEF_T5.xer_decoder;
441 td->xer_encoder = asn_DEF_T5.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000442 td->uper_decoder = asn_DEF_T5.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000443 td->uper_encoder = asn_DEF_T5.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000444 if(!td->per_constraints)
445 td->per_constraints = asn_DEF_T5.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000446 td->elements = asn_DEF_T5.elements;
447 td->elements_count = asn_DEF_T5.elements_count;
448 td->specifics = asn_DEF_T5.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000449}
450
Lev Walkina9cc46e2004-09-22 16:06:28 +0000451void
Lev Walkindfae9752004-09-29 13:19:37 +0000452T4_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000453 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000454 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000455 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000456}
457
458int
Lev Walkindfae9752004-09-29 13:19:37 +0000459T4_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000460 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000461 T4_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000462 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
463}
464
Lev Walkindc06f6b2004-10-20 15:50:55 +0000465asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000466T4_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000467 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000468 T4_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000469 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000470}
471
472asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000473T4_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000474 void *structure, int tag_mode, ber_tlv_tag_t tag,
475 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000476 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000477 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
478}
479
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000480asn_dec_rval_t
481T4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000482 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000483 T4_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000484 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
485}
486
Lev Walkina9cc46e2004-09-22 16:06:28 +0000487asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000488T4_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000489 int ilevel, enum xer_encoder_flags_e flags,
490 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000491 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000492 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000493}
494
495
496/*** <<< STAT-DEFS [T4] >>> ***/
497
Lev Walkin59b176e2005-11-26 11:25:14 +0000498static ber_tlv_tag_t asn_DEF_T4_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000499 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
500 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
501 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
502};
Lev Walkindfae9752004-09-29 13:19:37 +0000503asn_TYPE_descriptor_t asn_DEF_T4 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000504 "T4",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000505 "T4",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000506 T4_free,
507 T4_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000508 T4_constraint,
509 T4_decode_ber,
510 T4_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000511 T4_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000512 T4_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000513 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000514 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000515 asn_DEF_T4_tags_1,
516 sizeof(asn_DEF_T4_tags_1)
517 /sizeof(asn_DEF_T4_tags_1[0]) - 1, /* 2 */
518 asn_DEF_T4_tags_1, /* Same as above */
519 sizeof(asn_DEF_T4_tags_1)
520 /sizeof(asn_DEF_T4_tags_1[0]), /* 3 */
521 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000522 0, 0, /* No members */
523 0 /* No specifics */
524};
525
526
527/*** <<< INCLUDES [T5] >>> ***/
528
Lev Walkin22b5ed42006-09-13 02:51:20 +0000529#include "T6.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000530
531/*** <<< TYPE-DECLS [T5] >>> ***/
532
Lev Walkin2888f272004-09-14 12:46:58 +0000533typedef T6_t T5_t;
534
535/*** <<< FUNC-DECLS [T5] >>> ***/
536
Lev Walkindfae9752004-09-29 13:19:37 +0000537extern asn_TYPE_descriptor_t asn_DEF_T5;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000538asn_struct_free_f T5_free;
539asn_struct_print_f T5_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000540asn_constr_check_f T5_constraint;
541ber_type_decoder_f T5_decode_ber;
542der_type_encoder_f T5_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000543xer_type_decoder_f T5_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000544xer_type_encoder_f T5_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000545
546/*** <<< CODE [T5] >>> ***/
547
548int
Lev Walkindfae9752004-09-29 13:19:37 +0000549T5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000550 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000551 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000552 td->check_constraints = asn_DEF_T6.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000553 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000554}
555
556/*
557 * This type is implemented using T6,
Lev Walkinc3808c12004-09-23 22:14:58 +0000558 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000559 */
560static void
Lev Walkine8318b82005-03-06 09:29:03 +0000561T5_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000562 td->free_struct = asn_DEF_T6.free_struct;
563 td->print_struct = asn_DEF_T6.print_struct;
564 td->ber_decoder = asn_DEF_T6.ber_decoder;
565 td->der_encoder = asn_DEF_T6.der_encoder;
566 td->xer_decoder = asn_DEF_T6.xer_decoder;
567 td->xer_encoder = asn_DEF_T6.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000568 td->uper_decoder = asn_DEF_T6.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000569 td->uper_encoder = asn_DEF_T6.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000570 if(!td->per_constraints)
571 td->per_constraints = asn_DEF_T6.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000572 td->elements = asn_DEF_T6.elements;
573 td->elements_count = asn_DEF_T6.elements_count;
574 td->specifics = asn_DEF_T6.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000575}
576
Lev Walkina9cc46e2004-09-22 16:06:28 +0000577void
Lev Walkindfae9752004-09-29 13:19:37 +0000578T5_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000579 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000580 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000581 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000582}
583
584int
Lev Walkindfae9752004-09-29 13:19:37 +0000585T5_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000586 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000587 T5_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000588 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
589}
590
Lev Walkindc06f6b2004-10-20 15:50:55 +0000591asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000592T5_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000593 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000594 T5_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000595 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000596}
597
598asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000599T5_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000600 void *structure, int tag_mode, ber_tlv_tag_t tag,
601 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000602 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000603 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
604}
605
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000606asn_dec_rval_t
607T5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000608 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000609 T5_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000610 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
611}
612
Lev Walkina9cc46e2004-09-22 16:06:28 +0000613asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000614T5_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000615 int ilevel, enum xer_encoder_flags_e flags,
616 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000617 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000618 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000619}
620
621
622/*** <<< STAT-DEFS [T5] >>> ***/
623
Lev Walkin59b176e2005-11-26 11:25:14 +0000624static ber_tlv_tag_t asn_DEF_T5_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000625 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
626 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
627};
Lev Walkindfae9752004-09-29 13:19:37 +0000628asn_TYPE_descriptor_t asn_DEF_T5 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000629 "T5",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000630 "T5",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000631 T5_free,
632 T5_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000633 T5_constraint,
634 T5_decode_ber,
635 T5_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000636 T5_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000637 T5_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000638 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000639 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000640 asn_DEF_T5_tags_1,
641 sizeof(asn_DEF_T5_tags_1)
642 /sizeof(asn_DEF_T5_tags_1[0]) - 1, /* 1 */
643 asn_DEF_T5_tags_1, /* Same as above */
644 sizeof(asn_DEF_T5_tags_1)
645 /sizeof(asn_DEF_T5_tags_1[0]), /* 2 */
646 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000647 0, 0, /* No members */
648 0 /* No specifics */
649};
650
651
652/*** <<< INCLUDES [T6] >>> ***/
653
654#include <NativeReal.h>
655
656/*** <<< TYPE-DECLS [T6] >>> ***/
657
Lev Walkin2888f272004-09-14 12:46:58 +0000658typedef double T6_t;
659
660/*** <<< FUNC-DECLS [T6] >>> ***/
661
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000662extern asn_TYPE_descriptor_t asn_DEF_T6;
663asn_struct_free_f T6_free;
664asn_struct_print_f T6_print;
665asn_constr_check_f T6_constraint;
666ber_type_decoder_f T6_decode_ber;
667der_type_encoder_f T6_encode_der;
668xer_type_decoder_f T6_decode_xer;
669xer_type_encoder_f T6_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000670
671/*** <<< CODE [T6] >>> ***/
672
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000673int
674T6_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000675 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000676 /* Replace with underlying type checker */
677 td->check_constraints = asn_DEF_NativeReal.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000678 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000679}
680
681/*
682 * This type is implemented using NativeReal,
683 * so here we adjust the DEF accordingly.
684 */
685static void
Lev Walkine8318b82005-03-06 09:29:03 +0000686T6_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000687 td->free_struct = asn_DEF_NativeReal.free_struct;
688 td->print_struct = asn_DEF_NativeReal.print_struct;
689 td->ber_decoder = asn_DEF_NativeReal.ber_decoder;
690 td->der_encoder = asn_DEF_NativeReal.der_encoder;
691 td->xer_decoder = asn_DEF_NativeReal.xer_decoder;
692 td->xer_encoder = asn_DEF_NativeReal.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000693 td->uper_decoder = asn_DEF_NativeReal.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000694 td->uper_encoder = asn_DEF_NativeReal.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000695 if(!td->per_constraints)
696 td->per_constraints = asn_DEF_NativeReal.per_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000697 td->elements = asn_DEF_NativeReal.elements;
698 td->elements_count = asn_DEF_NativeReal.elements_count;
699 td->specifics = asn_DEF_NativeReal.specifics;
700}
701
702void
703T6_free(asn_TYPE_descriptor_t *td,
704 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000705 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000706 td->free_struct(td, struct_ptr, contents_only);
707}
708
709int
710T6_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
711 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000712 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000713 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
714}
715
716asn_dec_rval_t
717T6_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000718 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000719 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000720 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
721}
722
723asn_enc_rval_t
724T6_encode_der(asn_TYPE_descriptor_t *td,
725 void *structure, int tag_mode, ber_tlv_tag_t tag,
726 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000727 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000728 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
729}
730
731asn_dec_rval_t
732T6_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000733 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000734 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000735 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
736}
737
738asn_enc_rval_t
739T6_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
740 int ilevel, enum xer_encoder_flags_e flags,
741 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000742 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000743 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
744}
745
746
747/*** <<< STAT-DEFS [T6] >>> ***/
748
Lev Walkin59b176e2005-11-26 11:25:14 +0000749static ber_tlv_tag_t asn_DEF_T6_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000750 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
751};
752asn_TYPE_descriptor_t asn_DEF_T6 = {
753 "T6",
754 "T6",
755 T6_free,
756 T6_print,
757 T6_constraint,
758 T6_decode_ber,
759 T6_encode_der,
760 T6_decode_xer,
761 T6_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000762 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000763 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000764 asn_DEF_T6_tags_1,
765 sizeof(asn_DEF_T6_tags_1)
766 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
767 asn_DEF_T6_tags_1, /* Same as above */
768 sizeof(asn_DEF_T6_tags_1)
769 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
770 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000771 0, 0, /* No members */
772 0 /* No specifics */
773};
Lev Walkin2888f272004-09-14 12:46:58 +0000774
775
776/*** <<< INCLUDES [T] >>> ***/
777
Lev Walkin22b5ed42006-09-13 02:51:20 +0000778#include "Ts.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000779
780/*** <<< TYPE-DECLS [T] >>> ***/
781
Lev Walkin2888f272004-09-14 12:46:58 +0000782typedef Ts_t T_t;
783
784/*** <<< FUNC-DECLS [T] >>> ***/
785
Lev Walkindfae9752004-09-29 13:19:37 +0000786extern asn_TYPE_descriptor_t asn_DEF_T;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000787asn_struct_free_f T_free;
788asn_struct_print_f T_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000789asn_constr_check_f T_constraint;
790ber_type_decoder_f T_decode_ber;
791der_type_encoder_f T_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000792xer_type_decoder_f T_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000793xer_type_encoder_f T_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000794
795/*** <<< CODE [T] >>> ***/
796
797int
Lev Walkindfae9752004-09-29 13:19:37 +0000798T_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000799 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000800 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000801 td->check_constraints = asn_DEF_Ts.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000802 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000803}
804
805/*
806 * This type is implemented using Ts,
Lev Walkinc3808c12004-09-23 22:14:58 +0000807 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000808 */
809static void
Lev Walkine8318b82005-03-06 09:29:03 +0000810T_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000811 td->free_struct = asn_DEF_Ts.free_struct;
812 td->print_struct = asn_DEF_Ts.print_struct;
813 td->ber_decoder = asn_DEF_Ts.ber_decoder;
814 td->der_encoder = asn_DEF_Ts.der_encoder;
815 td->xer_decoder = asn_DEF_Ts.xer_decoder;
816 td->xer_encoder = asn_DEF_Ts.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000817 td->uper_decoder = asn_DEF_Ts.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000818 td->uper_encoder = asn_DEF_Ts.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000819 if(!td->per_constraints)
820 td->per_constraints = asn_DEF_Ts.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000821 td->elements = asn_DEF_Ts.elements;
822 td->elements_count = asn_DEF_Ts.elements_count;
823 td->specifics = asn_DEF_Ts.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000824}
825
Lev Walkina9cc46e2004-09-22 16:06:28 +0000826void
Lev Walkindfae9752004-09-29 13:19:37 +0000827T_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000828 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000829 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000830 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000831}
832
833int
Lev Walkindfae9752004-09-29 13:19:37 +0000834T_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000835 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000836 T_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000837 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
838}
839
Lev Walkindc06f6b2004-10-20 15:50:55 +0000840asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000841T_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000842 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000843 T_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000844 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000845}
846
847asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000848T_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000849 void *structure, int tag_mode, ber_tlv_tag_t tag,
850 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000851 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000852 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
853}
854
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000855asn_dec_rval_t
856T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000857 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000858 T_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000859 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
860}
861
Lev Walkina9cc46e2004-09-22 16:06:28 +0000862asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000863T_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000864 int ilevel, enum xer_encoder_flags_e flags,
865 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000866 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000867 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000868}
869
870
871/*** <<< STAT-DEFS [T] >>> ***/
872
Lev Walkin59b176e2005-11-26 11:25:14 +0000873static ber_tlv_tag_t asn_DEF_T_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000874 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
875 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
876 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
877};
Lev Walkindfae9752004-09-29 13:19:37 +0000878asn_TYPE_descriptor_t asn_DEF_T = {
Lev Walkin2888f272004-09-14 12:46:58 +0000879 "T",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000880 "T",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000881 T_free,
882 T_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000883 T_constraint,
884 T_decode_ber,
885 T_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000886 T_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000887 T_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000888 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000889 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000890 asn_DEF_T_tags_1,
891 sizeof(asn_DEF_T_tags_1)
892 /sizeof(asn_DEF_T_tags_1[0]) - 2, /* 1 */
893 asn_DEF_T_tags_1, /* Same as above */
894 sizeof(asn_DEF_T_tags_1)
895 /sizeof(asn_DEF_T_tags_1[0]), /* 3 */
896 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000897 0, 0, /* Defined elsewhere */
898 0 /* No specifics */
899};
900
901
902/*** <<< INCLUDES [Ts] >>> ***/
903
Lev Walkin22b5ed42006-09-13 02:51:20 +0000904#include "T2.h"
905#include "T3.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000906#include <constr_SEQUENCE.h>
907
Lev Walkin2888f272004-09-14 12:46:58 +0000908/*** <<< TYPE-DECLS [Ts] >>> ***/
909
Lev Walkin2888f272004-09-14 12:46:58 +0000910typedef struct Ts {
911 T2_t m1;
912 T3_t *m2 /* OPTIONAL */;
913 T3_t m3;
914
915 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000916 asn_struct_ctx_t _asn_ctx;
Lev Walkin2888f272004-09-14 12:46:58 +0000917} Ts_t;
918
Lev Walkinc8285712005-03-04 22:18:20 +0000919/*** <<< FUNC-DECLS [Ts] >>> ***/
920
921extern asn_TYPE_descriptor_t asn_DEF_Ts;
922
Lev Walkin2888f272004-09-14 12:46:58 +0000923/*** <<< STAT-DEFS [Ts] >>> ***/
924
Lev Walkine0272aa2005-03-04 11:26:08 +0000925static asn_TYPE_member_t asn_MBR_Ts_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000926 { ATF_NOFLAGS, 0, offsetof(struct Ts, m1),
927 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
928 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000929 .type = &asn_DEF_T2,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000930 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000931 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
932 .default_value = 0,
Lev Walkin2888f272004-09-14 12:46:58 +0000933 .name = "m1"
934 },
935 { ATF_POINTER, 1, offsetof(struct Ts, m2),
936 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
937 .tag_mode = +1, /* EXPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000938 .type = &asn_DEF_T3,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000939 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000940 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
941 .default_value = 0,
Lev Walkin2888f272004-09-14 12:46:58 +0000942 .name = "m2"
943 },
944 { ATF_NOFLAGS, 0, offsetof(struct Ts, m3),
945 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
946 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000947 .type = &asn_DEF_T3,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000948 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000949 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
950 .default_value = 0,
Lev Walkin2888f272004-09-14 12:46:58 +0000951 .name = "m3"
952 },
953};
Lev Walkin59b176e2005-11-26 11:25:14 +0000954static ber_tlv_tag_t asn_DEF_Ts_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000955 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
956 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
957};
Lev Walkin59b176e2005-11-26 11:25:14 +0000958static asn_TYPE_tag2member_t asn_MAP_Ts_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700959 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* m1 */
960 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* m2 */
961 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* m3 */
Lev Walkin2888f272004-09-14 12:46:58 +0000962};
Lev Walkin59b176e2005-11-26 11:25:14 +0000963static asn_SEQUENCE_specifics_t asn_SPC_Ts_specs_1 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000964 sizeof(struct Ts),
Lev Walkindfae9752004-09-29 13:19:37 +0000965 offsetof(struct Ts, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000966 asn_MAP_Ts_tag2el_1,
Lev Walkin2888f272004-09-14 12:46:58 +0000967 3, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000968 0, 0, 0, /* Optional elements (not needed) */
Lev Walkin2888f272004-09-14 12:46:58 +0000969 -1, /* Start extensions */
970 -1 /* Stop extensions */
971};
Lev Walkindfae9752004-09-29 13:19:37 +0000972asn_TYPE_descriptor_t asn_DEF_Ts = {
Lev Walkin2888f272004-09-14 12:46:58 +0000973 "Ts",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000974 "Ts",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000975 SEQUENCE_free,
976 SEQUENCE_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000977 SEQUENCE_constraint,
978 SEQUENCE_decode_ber,
979 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000980 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000981 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000982 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000983 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000984 asn_DEF_Ts_tags_1,
985 sizeof(asn_DEF_Ts_tags_1)
986 /sizeof(asn_DEF_Ts_tags_1[0]) - 1, /* 1 */
987 asn_DEF_Ts_tags_1, /* Same as above */
988 sizeof(asn_DEF_Ts_tags_1)
989 /sizeof(asn_DEF_Ts_tags_1[0]), /* 2 */
990 0, /* No PER visible constraints */
Lev Walkine0272aa2005-03-04 11:26:08 +0000991 asn_MBR_Ts_1,
Lev Walkin2888f272004-09-14 12:46:58 +0000992 3, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000993 &asn_SPC_Ts_specs_1 /* Additional specs */
Lev Walkin2888f272004-09-14 12:46:58 +0000994};
995