blob: 1ef1cd949b64b7f96507a7e03ff7a5be15e6613b [file] [log] [blame]
Lev Walkin906654e2004-09-10 15:49:15 +00001
2/*** <<< INCLUDES [T1] >>> ***/
3
Lev Walkin22b5ed42006-09-13 02:51:20 +00004#include "T2.h"
Lev Walkin906654e2004-09-10 15:49:15 +00005
6/*** <<< TYPE-DECLS [T1] >>> ***/
7
Lev Walkin906654e2004-09-10 15:49:15 +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 Walkin906654e2004-09-10 15:49:15 +000015asn_constr_check_f T1_constraint;
16ber_type_decoder_f T1_decode_ber;
17der_type_encoder_f T1_encode_der;
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 Walkin906654e2004-09-10 15:49:15 +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 Walkin906654e2004-09-10 15:49:15 +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 Walkin906654e2004-09-10 15:49:15 +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;
Lev Walkin6169b8d2013-12-07 11:02:44 -080039 td->check_constraints = asn_DEF_T2.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +000040 td->ber_decoder = asn_DEF_T2.ber_decoder;
41 td->der_encoder = asn_DEF_T2.der_encoder;
42 td->xer_decoder = asn_DEF_T2.xer_decoder;
43 td->xer_encoder = asn_DEF_T2.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +000044 td->uper_decoder = asn_DEF_T2.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +000045 td->uper_encoder = asn_DEF_T2.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +000046 if(!td->per_constraints)
47 td->per_constraints = asn_DEF_T2.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +000048 td->elements = asn_DEF_T2.elements;
49 td->elements_count = asn_DEF_T2.elements_count;
50 td->specifics = asn_DEF_T2.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +000051}
52
Lev Walkina9cc46e2004-09-22 16:06:28 +000053void
Lev Walkindfae9752004-09-29 13:19:37 +000054T1_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +000055 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +000056 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000057 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +000058}
59
60int
Lev Walkindfae9752004-09-29 13:19:37 +000061T1_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +000062 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000063 T1_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +000064 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
65}
66
Lev Walkindc06f6b2004-10-20 15:50:55 +000067asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000068T1_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +000069 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +000070 T1_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +000071 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +000072}
73
74asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000075T1_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +000076 void *structure, int tag_mode, ber_tlv_tag_t tag,
77 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000078 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000079 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
80}
81
Lev Walkin0ebe8b32004-10-23 13:26:56 +000082asn_dec_rval_t
83T1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +000084 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +000085 T1_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +000086 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
87}
88
Lev Walkina9cc46e2004-09-22 16:06:28 +000089asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000090T1_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +000091 int ilevel, enum xer_encoder_flags_e flags,
92 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000093 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000094 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +000095}
96
97
98/*** <<< STAT-DEFS [T1] >>> ***/
99
Lev Walkina7591b52014-10-12 18:37:35 -0700100static const ber_tlv_tag_t asn_DEF_T1_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000101 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
102 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
103 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
104 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
105};
Lev Walkina7591b52014-10-12 18:37:35 -0700106static const ber_tlv_tag_t asn_DEF_T1_all_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000107 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
108 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
109 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
110 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
111 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000112 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin188ed2c2004-09-13 08:31:01 +0000113};
Lev Walkindfae9752004-09-29 13:19:37 +0000114asn_TYPE_descriptor_t asn_DEF_T1 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000115 "T1",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000116 "T1",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000117 T1_free,
118 T1_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000119 T1_constraint,
120 T1_decode_ber,
121 T1_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000122 T1_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000123 T1_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000124 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000125 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000126 asn_DEF_T1_tags_1,
127 sizeof(asn_DEF_T1_tags_1)
128 /sizeof(asn_DEF_T1_tags_1[0]), /* 4 */
129 asn_DEF_T1_all_tags_1,
130 sizeof(asn_DEF_T1_all_tags_1)
131 /sizeof(asn_DEF_T1_all_tags_1[0]), /* 6 */
132 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000133 0, 0, /* No members */
134 0 /* No specifics */
135};
136
137
138/*** <<< INCLUDES [T2] >>> ***/
139
Lev Walkin22b5ed42006-09-13 02:51:20 +0000140#include "T3.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000141
142/*** <<< TYPE-DECLS [T2] >>> ***/
143
Lev Walkin906654e2004-09-10 15:49:15 +0000144typedef T3_t T2_t;
145
146/*** <<< FUNC-DECLS [T2] >>> ***/
147
Lev Walkindfae9752004-09-29 13:19:37 +0000148extern asn_TYPE_descriptor_t asn_DEF_T2;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000149asn_struct_free_f T2_free;
150asn_struct_print_f T2_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000151asn_constr_check_f T2_constraint;
152ber_type_decoder_f T2_decode_ber;
153der_type_encoder_f T2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000154xer_type_decoder_f T2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000155xer_type_encoder_f T2_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000156
157/*** <<< CODE [T2] >>> ***/
158
159int
Lev Walkindfae9752004-09-29 13:19:37 +0000160T2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000161 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000162 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000163 td->check_constraints = asn_DEF_T3.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000164 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000165}
166
167/*
168 * This type is implemented using T3,
Lev Walkinc3808c12004-09-23 22:14:58 +0000169 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000170 */
171static void
Lev Walkine8318b82005-03-06 09:29:03 +0000172T2_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000173 td->free_struct = asn_DEF_T3.free_struct;
174 td->print_struct = asn_DEF_T3.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800175 td->check_constraints = asn_DEF_T3.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000176 td->ber_decoder = asn_DEF_T3.ber_decoder;
177 td->der_encoder = asn_DEF_T3.der_encoder;
178 td->xer_decoder = asn_DEF_T3.xer_decoder;
179 td->xer_encoder = asn_DEF_T3.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000180 td->uper_decoder = asn_DEF_T3.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000181 td->uper_encoder = asn_DEF_T3.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000182 if(!td->per_constraints)
183 td->per_constraints = asn_DEF_T3.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000184 td->elements = asn_DEF_T3.elements;
185 td->elements_count = asn_DEF_T3.elements_count;
186 td->specifics = asn_DEF_T3.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000187}
188
Lev Walkina9cc46e2004-09-22 16:06:28 +0000189void
Lev Walkindfae9752004-09-29 13:19:37 +0000190T2_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000191 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000192 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000193 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000194}
195
196int
Lev Walkindfae9752004-09-29 13:19:37 +0000197T2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000198 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000199 T2_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000200 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
201}
202
Lev Walkindc06f6b2004-10-20 15:50:55 +0000203asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000204T2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000205 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000206 T2_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000207 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000208}
209
210asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000211T2_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000212 void *structure, int tag_mode, ber_tlv_tag_t tag,
213 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000214 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000215 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
216}
217
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000218asn_dec_rval_t
219T2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000220 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000221 T2_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000222 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
223}
224
Lev Walkina9cc46e2004-09-22 16:06:28 +0000225asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000226T2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000227 int ilevel, enum xer_encoder_flags_e flags,
228 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000229 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000230 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000231}
232
233
234/*** <<< STAT-DEFS [T2] >>> ***/
235
Lev Walkina7591b52014-10-12 18:37:35 -0700236static const ber_tlv_tag_t asn_DEF_T2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000237 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
238 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
239 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
240};
Lev Walkina7591b52014-10-12 18:37:35 -0700241static const ber_tlv_tag_t asn_DEF_T2_all_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000242 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
243 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
244 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
245 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000246 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin188ed2c2004-09-13 08:31:01 +0000247};
Lev Walkindfae9752004-09-29 13:19:37 +0000248asn_TYPE_descriptor_t asn_DEF_T2 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000249 "T2",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000250 "T2",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000251 T2_free,
252 T2_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000253 T2_constraint,
254 T2_decode_ber,
255 T2_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000256 T2_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000257 T2_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000258 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000259 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000260 asn_DEF_T2_tags_1,
261 sizeof(asn_DEF_T2_tags_1)
262 /sizeof(asn_DEF_T2_tags_1[0]), /* 3 */
263 asn_DEF_T2_all_tags_1,
264 sizeof(asn_DEF_T2_all_tags_1)
265 /sizeof(asn_DEF_T2_all_tags_1[0]), /* 5 */
266 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000267 0, 0, /* No members */
268 0 /* No specifics */
269};
270
271
272/*** <<< INCLUDES [T3] >>> ***/
273
Lev Walkin22b5ed42006-09-13 02:51:20 +0000274#include "T4.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000275
276/*** <<< TYPE-DECLS [T3] >>> ***/
277
Lev Walkin906654e2004-09-10 15:49:15 +0000278typedef T4_t T3_t;
279
280/*** <<< FUNC-DECLS [T3] >>> ***/
281
Lev Walkindfae9752004-09-29 13:19:37 +0000282extern asn_TYPE_descriptor_t asn_DEF_T3;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000283asn_struct_free_f T3_free;
284asn_struct_print_f T3_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000285asn_constr_check_f T3_constraint;
286ber_type_decoder_f T3_decode_ber;
287der_type_encoder_f T3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000288xer_type_decoder_f T3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000289xer_type_encoder_f T3_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000290
291/*** <<< CODE [T3] >>> ***/
292
293int
Lev Walkindfae9752004-09-29 13:19:37 +0000294T3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000295 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000296 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000297 td->check_constraints = asn_DEF_T4.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000298 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000299}
300
301/*
302 * This type is implemented using T4,
Lev Walkinc3808c12004-09-23 22:14:58 +0000303 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000304 */
305static void
Lev Walkine8318b82005-03-06 09:29:03 +0000306T3_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000307 td->free_struct = asn_DEF_T4.free_struct;
308 td->print_struct = asn_DEF_T4.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800309 td->check_constraints = asn_DEF_T4.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000310 td->ber_decoder = asn_DEF_T4.ber_decoder;
311 td->der_encoder = asn_DEF_T4.der_encoder;
312 td->xer_decoder = asn_DEF_T4.xer_decoder;
313 td->xer_encoder = asn_DEF_T4.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000314 td->uper_decoder = asn_DEF_T4.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000315 td->uper_encoder = asn_DEF_T4.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000316 if(!td->per_constraints)
317 td->per_constraints = asn_DEF_T4.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000318 td->elements = asn_DEF_T4.elements;
319 td->elements_count = asn_DEF_T4.elements_count;
320 td->specifics = asn_DEF_T4.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000321}
322
Lev Walkina9cc46e2004-09-22 16:06:28 +0000323void
Lev Walkindfae9752004-09-29 13:19:37 +0000324T3_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000325 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000326 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000327 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000328}
329
330int
Lev Walkindfae9752004-09-29 13:19:37 +0000331T3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000332 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000333 T3_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000334 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
335}
336
Lev Walkindc06f6b2004-10-20 15:50:55 +0000337asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000338T3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000339 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000340 T3_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000341 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000342}
343
344asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000345T3_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000346 void *structure, int tag_mode, ber_tlv_tag_t tag,
347 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000348 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000349 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
350}
351
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000352asn_dec_rval_t
353T3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000354 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000355 T3_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000356 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
357}
358
Lev Walkina9cc46e2004-09-22 16:06:28 +0000359asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000360T3_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000361 int ilevel, enum xer_encoder_flags_e flags,
362 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000363 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000364 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000365}
366
367
368/*** <<< STAT-DEFS [T3] >>> ***/
369
Lev Walkina7591b52014-10-12 18:37:35 -0700370static const ber_tlv_tag_t asn_DEF_T3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000371 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
372 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
373};
Lev Walkina7591b52014-10-12 18:37:35 -0700374static const ber_tlv_tag_t asn_DEF_T3_all_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000375 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
376 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
377 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000378 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin188ed2c2004-09-13 08:31:01 +0000379};
Lev Walkindfae9752004-09-29 13:19:37 +0000380asn_TYPE_descriptor_t asn_DEF_T3 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000381 "T3",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000382 "T3",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000383 T3_free,
384 T3_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000385 T3_constraint,
386 T3_decode_ber,
387 T3_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000388 T3_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000389 T3_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000390 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000391 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000392 asn_DEF_T3_tags_1,
393 sizeof(asn_DEF_T3_tags_1)
394 /sizeof(asn_DEF_T3_tags_1[0]), /* 2 */
395 asn_DEF_T3_all_tags_1,
396 sizeof(asn_DEF_T3_all_tags_1)
397 /sizeof(asn_DEF_T3_all_tags_1[0]), /* 4 */
398 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000399 0, 0, /* No members */
400 0 /* No specifics */
401};
402
403
404/*** <<< INCLUDES [T4] >>> ***/
405
Lev Walkin22b5ed42006-09-13 02:51:20 +0000406#include "T5.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000407
408/*** <<< TYPE-DECLS [T4] >>> ***/
409
Lev Walkin906654e2004-09-10 15:49:15 +0000410typedef T5_t T4_t;
411
412/*** <<< FUNC-DECLS [T4] >>> ***/
413
Lev Walkindfae9752004-09-29 13:19:37 +0000414extern asn_TYPE_descriptor_t asn_DEF_T4;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000415asn_struct_free_f T4_free;
416asn_struct_print_f T4_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000417asn_constr_check_f T4_constraint;
418ber_type_decoder_f T4_decode_ber;
419der_type_encoder_f T4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000420xer_type_decoder_f T4_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000421xer_type_encoder_f T4_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000422
423/*** <<< CODE [T4] >>> ***/
424
425int
Lev Walkindfae9752004-09-29 13:19:37 +0000426T4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000427 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000428 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000429 td->check_constraints = asn_DEF_T5.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000430 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000431}
432
433/*
434 * This type is implemented using T5,
Lev Walkinc3808c12004-09-23 22:14:58 +0000435 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000436 */
437static void
Lev Walkine8318b82005-03-06 09:29:03 +0000438T4_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000439 td->free_struct = asn_DEF_T5.free_struct;
440 td->print_struct = asn_DEF_T5.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800441 td->check_constraints = asn_DEF_T5.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000442 td->ber_decoder = asn_DEF_T5.ber_decoder;
443 td->der_encoder = asn_DEF_T5.der_encoder;
444 td->xer_decoder = asn_DEF_T5.xer_decoder;
445 td->xer_encoder = asn_DEF_T5.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000446 td->uper_decoder = asn_DEF_T5.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000447 td->uper_encoder = asn_DEF_T5.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000448 if(!td->per_constraints)
449 td->per_constraints = asn_DEF_T5.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000450 td->elements = asn_DEF_T5.elements;
451 td->elements_count = asn_DEF_T5.elements_count;
452 td->specifics = asn_DEF_T5.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000453}
454
Lev Walkina9cc46e2004-09-22 16:06:28 +0000455void
Lev Walkindfae9752004-09-29 13:19:37 +0000456T4_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000457 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000458 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000459 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000460}
461
462int
Lev Walkindfae9752004-09-29 13:19:37 +0000463T4_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000464 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000465 T4_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000466 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
467}
468
Lev Walkindc06f6b2004-10-20 15:50:55 +0000469asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000470T4_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000471 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000472 T4_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000473 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000474}
475
476asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000477T4_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000478 void *structure, int tag_mode, ber_tlv_tag_t tag,
479 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000480 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000481 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
482}
483
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000484asn_dec_rval_t
485T4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000486 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000487 T4_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000488 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
489}
490
Lev Walkina9cc46e2004-09-22 16:06:28 +0000491asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000492T4_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000493 int ilevel, enum xer_encoder_flags_e flags,
494 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000495 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000496 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000497}
498
499
500/*** <<< STAT-DEFS [T4] >>> ***/
501
Lev Walkina7591b52014-10-12 18:37:35 -0700502static const ber_tlv_tag_t asn_DEF_T4_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000503 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
Lev Walkin188ed2c2004-09-13 08:31:01 +0000504 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000505 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin906654e2004-09-10 15:49:15 +0000506};
Lev Walkindfae9752004-09-29 13:19:37 +0000507asn_TYPE_descriptor_t asn_DEF_T4 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000508 "T4",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000509 "T4",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000510 T4_free,
511 T4_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000512 T4_constraint,
513 T4_decode_ber,
514 T4_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000515 T4_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000516 T4_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000517 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000518 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000519 asn_DEF_T4_tags_1,
520 sizeof(asn_DEF_T4_tags_1)
521 /sizeof(asn_DEF_T4_tags_1[0]) - 1, /* 2 */
522 asn_DEF_T4_tags_1, /* Same as above */
523 sizeof(asn_DEF_T4_tags_1)
524 /sizeof(asn_DEF_T4_tags_1[0]), /* 3 */
525 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000526 0, 0, /* No members */
527 0 /* No specifics */
528};
529
530
531/*** <<< INCLUDES [T5] >>> ***/
532
Lev Walkin22b5ed42006-09-13 02:51:20 +0000533#include "T6.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000534
535/*** <<< TYPE-DECLS [T5] >>> ***/
536
Lev Walkin906654e2004-09-10 15:49:15 +0000537typedef T6_t T5_t;
538
539/*** <<< FUNC-DECLS [T5] >>> ***/
540
Lev Walkindfae9752004-09-29 13:19:37 +0000541extern asn_TYPE_descriptor_t asn_DEF_T5;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000542asn_struct_free_f T5_free;
543asn_struct_print_f T5_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000544asn_constr_check_f T5_constraint;
545ber_type_decoder_f T5_decode_ber;
546der_type_encoder_f T5_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000547xer_type_decoder_f T5_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000548xer_type_encoder_f T5_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000549
550/*** <<< CODE [T5] >>> ***/
551
552int
Lev Walkindfae9752004-09-29 13:19:37 +0000553T5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000554 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000555 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000556 td->check_constraints = asn_DEF_T6.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000557 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000558}
559
560/*
561 * This type is implemented using T6,
Lev Walkinc3808c12004-09-23 22:14:58 +0000562 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000563 */
564static void
Lev Walkine8318b82005-03-06 09:29:03 +0000565T5_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000566 td->free_struct = asn_DEF_T6.free_struct;
567 td->print_struct = asn_DEF_T6.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800568 td->check_constraints = asn_DEF_T6.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000569 td->ber_decoder = asn_DEF_T6.ber_decoder;
570 td->der_encoder = asn_DEF_T6.der_encoder;
571 td->xer_decoder = asn_DEF_T6.xer_decoder;
572 td->xer_encoder = asn_DEF_T6.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000573 td->uper_decoder = asn_DEF_T6.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000574 td->uper_encoder = asn_DEF_T6.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000575 if(!td->per_constraints)
576 td->per_constraints = asn_DEF_T6.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000577 td->elements = asn_DEF_T6.elements;
578 td->elements_count = asn_DEF_T6.elements_count;
579 td->specifics = asn_DEF_T6.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000580}
581
Lev Walkina9cc46e2004-09-22 16:06:28 +0000582void
Lev Walkindfae9752004-09-29 13:19:37 +0000583T5_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000584 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000585 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000586 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000587}
588
589int
Lev Walkindfae9752004-09-29 13:19:37 +0000590T5_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000591 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000592 T5_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000593 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
594}
595
Lev Walkindc06f6b2004-10-20 15:50:55 +0000596asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000597T5_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000598 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000599 T5_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000600 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000601}
602
603asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000604T5_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000605 void *structure, int tag_mode, ber_tlv_tag_t tag,
606 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000607 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000608 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
609}
610
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000611asn_dec_rval_t
612T5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000613 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000614 T5_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000615 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
616}
617
Lev Walkina9cc46e2004-09-22 16:06:28 +0000618asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000619T5_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000620 int ilevel, enum xer_encoder_flags_e flags,
621 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000622 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000623 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000624}
625
626
627/*** <<< STAT-DEFS [T5] >>> ***/
628
Lev Walkina7591b52014-10-12 18:37:35 -0700629static const ber_tlv_tag_t asn_DEF_T5_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000630 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000631 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin906654e2004-09-10 15:49:15 +0000632};
Lev Walkindfae9752004-09-29 13:19:37 +0000633asn_TYPE_descriptor_t asn_DEF_T5 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000634 "T5",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000635 "T5",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000636 T5_free,
637 T5_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000638 T5_constraint,
639 T5_decode_ber,
640 T5_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000641 T5_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000642 T5_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000643 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000644 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000645 asn_DEF_T5_tags_1,
646 sizeof(asn_DEF_T5_tags_1)
647 /sizeof(asn_DEF_T5_tags_1[0]) - 1, /* 1 */
648 asn_DEF_T5_tags_1, /* Same as above */
649 sizeof(asn_DEF_T5_tags_1)
650 /sizeof(asn_DEF_T5_tags_1[0]), /* 2 */
651 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000652 0, 0, /* No members */
653 0 /* No specifics */
654};
655
656
657/*** <<< INCLUDES [T6] >>> ***/
658
Lev Walkin2888f272004-09-14 12:46:58 +0000659#include <REAL.h>
Lev Walkin906654e2004-09-10 15:49:15 +0000660
661/*** <<< TYPE-DECLS [T6] >>> ***/
662
Lev Walkin2888f272004-09-14 12:46:58 +0000663typedef REAL_t T6_t;
Lev Walkin906654e2004-09-10 15:49:15 +0000664
665/*** <<< FUNC-DECLS [T6] >>> ***/
666
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000667extern asn_TYPE_descriptor_t asn_DEF_T6;
668asn_struct_free_f T6_free;
669asn_struct_print_f T6_print;
670asn_constr_check_f T6_constraint;
671ber_type_decoder_f T6_decode_ber;
672der_type_encoder_f T6_encode_der;
673xer_type_decoder_f T6_decode_xer;
674xer_type_encoder_f T6_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000675
676/*** <<< CODE [T6] >>> ***/
677
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000678int
679T6_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000680 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000681 /* Replace with underlying type checker */
682 td->check_constraints = asn_DEF_REAL.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000683 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000684}
685
686/*
687 * This type is implemented using REAL,
688 * so here we adjust the DEF accordingly.
689 */
690static void
Lev Walkine8318b82005-03-06 09:29:03 +0000691T6_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000692 td->free_struct = asn_DEF_REAL.free_struct;
693 td->print_struct = asn_DEF_REAL.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800694 td->check_constraints = asn_DEF_REAL.check_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000695 td->ber_decoder = asn_DEF_REAL.ber_decoder;
696 td->der_encoder = asn_DEF_REAL.der_encoder;
697 td->xer_decoder = asn_DEF_REAL.xer_decoder;
698 td->xer_encoder = asn_DEF_REAL.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000699 td->uper_decoder = asn_DEF_REAL.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000700 td->uper_encoder = asn_DEF_REAL.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000701 if(!td->per_constraints)
702 td->per_constraints = asn_DEF_REAL.per_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000703 td->elements = asn_DEF_REAL.elements;
704 td->elements_count = asn_DEF_REAL.elements_count;
705 td->specifics = asn_DEF_REAL.specifics;
706}
707
708void
709T6_free(asn_TYPE_descriptor_t *td,
710 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000711 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000712 td->free_struct(td, struct_ptr, contents_only);
713}
714
715int
716T6_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
717 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000718 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000719 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
720}
721
722asn_dec_rval_t
723T6_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000724 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000725 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000726 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
727}
728
729asn_enc_rval_t
730T6_encode_der(asn_TYPE_descriptor_t *td,
731 void *structure, int tag_mode, ber_tlv_tag_t tag,
732 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000733 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000734 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
735}
736
737asn_dec_rval_t
738T6_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000739 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000740 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000741 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
742}
743
744asn_enc_rval_t
745T6_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
746 int ilevel, enum xer_encoder_flags_e flags,
747 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000748 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000749 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
750}
751
752
753/*** <<< STAT-DEFS [T6] >>> ***/
754
Lev Walkina7591b52014-10-12 18:37:35 -0700755static const ber_tlv_tag_t asn_DEF_T6_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000756 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
757};
758asn_TYPE_descriptor_t asn_DEF_T6 = {
759 "T6",
760 "T6",
761 T6_free,
762 T6_print,
763 T6_constraint,
764 T6_decode_ber,
765 T6_encode_der,
766 T6_decode_xer,
767 T6_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000768 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000769 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000770 asn_DEF_T6_tags_1,
771 sizeof(asn_DEF_T6_tags_1)
772 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
773 asn_DEF_T6_tags_1, /* Same as above */
774 sizeof(asn_DEF_T6_tags_1)
775 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
776 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000777 0, 0, /* No members */
778 0 /* No specifics */
779};
Lev Walkin906654e2004-09-10 15:49:15 +0000780
781
782/*** <<< INCLUDES [T] >>> ***/
783
Lev Walkin22b5ed42006-09-13 02:51:20 +0000784#include "Ts.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000785
786/*** <<< TYPE-DECLS [T] >>> ***/
787
Lev Walkin906654e2004-09-10 15:49:15 +0000788typedef Ts_t T_t;
789
790/*** <<< FUNC-DECLS [T] >>> ***/
791
Lev Walkindfae9752004-09-29 13:19:37 +0000792extern asn_TYPE_descriptor_t asn_DEF_T;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000793asn_struct_free_f T_free;
794asn_struct_print_f T_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000795asn_constr_check_f T_constraint;
796ber_type_decoder_f T_decode_ber;
797der_type_encoder_f T_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000798xer_type_decoder_f T_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000799xer_type_encoder_f T_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000800
801/*** <<< CODE [T] >>> ***/
802
803int
Lev Walkindfae9752004-09-29 13:19:37 +0000804T_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000805 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000806 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000807 td->check_constraints = asn_DEF_Ts.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000808 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000809}
810
811/*
812 * This type is implemented using Ts,
Lev Walkinc3808c12004-09-23 22:14:58 +0000813 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000814 */
815static void
Lev Walkine8318b82005-03-06 09:29:03 +0000816T_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000817 td->free_struct = asn_DEF_Ts.free_struct;
818 td->print_struct = asn_DEF_Ts.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800819 td->check_constraints = asn_DEF_Ts.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000820 td->ber_decoder = asn_DEF_Ts.ber_decoder;
821 td->der_encoder = asn_DEF_Ts.der_encoder;
822 td->xer_decoder = asn_DEF_Ts.xer_decoder;
823 td->xer_encoder = asn_DEF_Ts.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000824 td->uper_decoder = asn_DEF_Ts.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000825 td->uper_encoder = asn_DEF_Ts.uper_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000826 if(!td->per_constraints)
827 td->per_constraints = asn_DEF_Ts.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000828 td->elements = asn_DEF_Ts.elements;
829 td->elements_count = asn_DEF_Ts.elements_count;
830 td->specifics = asn_DEF_Ts.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000831}
832
Lev Walkina9cc46e2004-09-22 16:06:28 +0000833void
Lev Walkindfae9752004-09-29 13:19:37 +0000834T_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000835 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000836 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000837 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000838}
839
840int
Lev Walkindfae9752004-09-29 13:19:37 +0000841T_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000842 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000843 T_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000844 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
845}
846
Lev Walkindc06f6b2004-10-20 15:50:55 +0000847asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000848T_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000849 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000850 T_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000851 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000852}
853
854asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000855T_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000856 void *structure, int tag_mode, ber_tlv_tag_t tag,
857 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000858 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000859 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
860}
861
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000862asn_dec_rval_t
863T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000864 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000865 T_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000866 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
867}
868
Lev Walkina9cc46e2004-09-22 16:06:28 +0000869asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000870T_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000871 int ilevel, enum xer_encoder_flags_e flags,
872 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000873 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000874 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000875}
876
877
878/*** <<< STAT-DEFS [T] >>> ***/
879
Lev Walkina7591b52014-10-12 18:37:35 -0700880static const ber_tlv_tag_t asn_DEF_T_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000881 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
882 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
883 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
Lev Walkin906654e2004-09-10 15:49:15 +0000884};
Lev Walkindfae9752004-09-29 13:19:37 +0000885asn_TYPE_descriptor_t asn_DEF_T = {
Lev Walkin906654e2004-09-10 15:49:15 +0000886 "T",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000887 "T",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000888 T_free,
889 T_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000890 T_constraint,
891 T_decode_ber,
892 T_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000893 T_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000894 T_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000895 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000896 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000897 asn_DEF_T_tags_1,
898 sizeof(asn_DEF_T_tags_1)
899 /sizeof(asn_DEF_T_tags_1[0]) - 2, /* 1 */
900 asn_DEF_T_tags_1, /* Same as above */
901 sizeof(asn_DEF_T_tags_1)
902 /sizeof(asn_DEF_T_tags_1[0]), /* 3 */
903 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000904 0, 0, /* Defined elsewhere */
905 0 /* No specifics */
906};
907
908
909/*** <<< INCLUDES [Ts] >>> ***/
910
Lev Walkin22b5ed42006-09-13 02:51:20 +0000911#include "T2.h"
912#include "T3.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000913#include <constr_SEQUENCE.h>
914
Lev Walkin906654e2004-09-10 15:49:15 +0000915/*** <<< TYPE-DECLS [Ts] >>> ***/
916
Lev Walkin906654e2004-09-10 15:49:15 +0000917typedef struct Ts {
918 T2_t m1;
919 T3_t *m2 /* OPTIONAL */;
920 T3_t m3;
921
922 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000923 asn_struct_ctx_t _asn_ctx;
Lev Walkin906654e2004-09-10 15:49:15 +0000924} Ts_t;
925
Lev Walkinc8285712005-03-04 22:18:20 +0000926/*** <<< FUNC-DECLS [Ts] >>> ***/
927
928extern asn_TYPE_descriptor_t asn_DEF_Ts;
929
Lev Walkin906654e2004-09-10 15:49:15 +0000930/*** <<< STAT-DEFS [Ts] >>> ***/
931
Lev Walkine0272aa2005-03-04 11:26:08 +0000932static asn_TYPE_member_t asn_MBR_Ts_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000933 { ATF_NOFLAGS, 0, offsetof(struct Ts, m1),
934 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
935 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000936 .type = &asn_DEF_T2,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000937 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000938 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
939 .default_value = 0,
Lev Walkin906654e2004-09-10 15:49:15 +0000940 .name = "m1"
941 },
942 { ATF_POINTER, 1, offsetof(struct Ts, m2),
943 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
944 .tag_mode = +1, /* EXPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000945 .type = &asn_DEF_T3,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000946 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000947 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
948 .default_value = 0,
Lev Walkin906654e2004-09-10 15:49:15 +0000949 .name = "m2"
950 },
951 { ATF_NOFLAGS, 0, offsetof(struct Ts, m3),
952 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
953 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000954 .type = &asn_DEF_T3,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000955 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000956 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
957 .default_value = 0,
Lev Walkin906654e2004-09-10 15:49:15 +0000958 .name = "m3"
959 },
960};
Lev Walkina7591b52014-10-12 18:37:35 -0700961static const ber_tlv_tag_t asn_DEF_Ts_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000962 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
963 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
Lev Walkin906654e2004-09-10 15:49:15 +0000964};
Lev Walkina7591b52014-10-12 18:37:35 -0700965static const asn_TYPE_tag2member_t asn_MAP_Ts_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700966 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* m1 */
967 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* m2 */
968 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* m3 */
Lev Walkin906654e2004-09-10 15:49:15 +0000969};
Lev Walkin59b176e2005-11-26 11:25:14 +0000970static asn_SEQUENCE_specifics_t asn_SPC_Ts_specs_1 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000971 sizeof(struct Ts),
Lev Walkindfae9752004-09-29 13:19:37 +0000972 offsetof(struct Ts, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000973 asn_MAP_Ts_tag2el_1,
Lev Walkin906654e2004-09-10 15:49:15 +0000974 3, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000975 0, 0, 0, /* Optional elements (not needed) */
Lev Walkin906654e2004-09-10 15:49:15 +0000976 -1, /* Start extensions */
977 -1 /* Stop extensions */
978};
Lev Walkindfae9752004-09-29 13:19:37 +0000979asn_TYPE_descriptor_t asn_DEF_Ts = {
Lev Walkin906654e2004-09-10 15:49:15 +0000980 "Ts",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000981 "Ts",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000982 SEQUENCE_free,
983 SEQUENCE_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000984 SEQUENCE_constraint,
985 SEQUENCE_decode_ber,
986 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000987 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000988 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000989 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000990 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000991 asn_DEF_Ts_tags_1,
992 sizeof(asn_DEF_Ts_tags_1)
993 /sizeof(asn_DEF_Ts_tags_1[0]) - 1, /* 1 */
994 asn_DEF_Ts_tags_1, /* Same as above */
995 sizeof(asn_DEF_Ts_tags_1)
996 /sizeof(asn_DEF_Ts_tags_1[0]), /* 2 */
997 0, /* No PER visible constraints */
Lev Walkine0272aa2005-03-04 11:26:08 +0000998 asn_MBR_Ts_1,
Lev Walkin906654e2004-09-10 15:49:15 +0000999 3, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +00001000 &asn_SPC_Ts_specs_1 /* Additional specs */
Lev Walkin906654e2004-09-10 15:49:15 +00001001};
1002