blob: 8e416e4462054bbbc9149d905f6b258ec45500da [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;
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 Walkinba68c912017-07-06 07:52:39 -070046 td->oer_decoder = asn_DEF_T2.oer_decoder;
47 td->oer_encoder = asn_DEF_T2.oer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +000048 if(!td->per_constraints)
49 td->per_constraints = asn_DEF_T2.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +000050 td->elements = asn_DEF_T2.elements;
51 td->elements_count = asn_DEF_T2.elements_count;
52 td->specifics = asn_DEF_T2.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +000053}
54
Lev Walkina9cc46e2004-09-22 16:06:28 +000055void
Lev Walkindfae9752004-09-29 13:19:37 +000056T1_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +000057 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +000058 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000059 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +000060}
61
62int
Lev Walkindfae9752004-09-29 13:19:37 +000063T1_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +000064 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000065 T1_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +000066 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
67}
68
Lev Walkindc06f6b2004-10-20 15:50:55 +000069asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000070T1_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +000071 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +000072 T1_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +000073 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +000074}
75
76asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000077T1_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +000078 void *structure, int tag_mode, ber_tlv_tag_t tag,
79 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000080 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000081 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
82}
83
Lev Walkin0ebe8b32004-10-23 13:26:56 +000084asn_dec_rval_t
85T1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +000086 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +000087 T1_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +000088 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
89}
90
Lev Walkina9cc46e2004-09-22 16:06:28 +000091asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000092T1_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +000093 int ilevel, enum xer_encoder_flags_e flags,
94 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000095 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000096 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +000097}
98
99
100/*** <<< STAT-DEFS [T1] >>> ***/
101
Lev Walkina7591b52014-10-12 18:37:35 -0700102static const ber_tlv_tag_t asn_DEF_T1_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000103 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
104 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
105 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
106 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
107};
Lev Walkina7591b52014-10-12 18:37:35 -0700108static const ber_tlv_tag_t asn_DEF_T1_all_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000109 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
110 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
111 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
112 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
113 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
114 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
115};
Lev Walkindfae9752004-09-29 13:19:37 +0000116asn_TYPE_descriptor_t asn_DEF_T1 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000117 "T1",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000118 "T1",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000119 T1_free,
120 T1_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000121 T1_constraint,
122 T1_decode_ber,
123 T1_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000124 T1_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000125 T1_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000126 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700127 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000128 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000129 asn_DEF_T1_tags_1,
130 sizeof(asn_DEF_T1_tags_1)
131 /sizeof(asn_DEF_T1_tags_1[0]), /* 4 */
132 asn_DEF_T1_all_tags_1,
133 sizeof(asn_DEF_T1_all_tags_1)
134 /sizeof(asn_DEF_T1_all_tags_1[0]), /* 6 */
135 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000136 0, 0, /* No members */
137 0 /* No specifics */
138};
139
140
141/*** <<< INCLUDES [T2] >>> ***/
142
Lev Walkin22b5ed42006-09-13 02:51:20 +0000143#include "T3.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000144
145/*** <<< TYPE-DECLS [T2] >>> ***/
146
Lev Walkin2888f272004-09-14 12:46:58 +0000147typedef T3_t T2_t;
148
149/*** <<< FUNC-DECLS [T2] >>> ***/
150
Lev Walkindfae9752004-09-29 13:19:37 +0000151extern asn_TYPE_descriptor_t asn_DEF_T2;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000152asn_struct_free_f T2_free;
153asn_struct_print_f T2_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000154asn_constr_check_f T2_constraint;
155ber_type_decoder_f T2_decode_ber;
156der_type_encoder_f T2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000157xer_type_decoder_f T2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000158xer_type_encoder_f T2_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000159
160/*** <<< CODE [T2] >>> ***/
161
162int
Lev Walkindfae9752004-09-29 13:19:37 +0000163T2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000164 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000165 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000166 td->check_constraints = asn_DEF_T3.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000167 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000168}
169
170/*
171 * This type is implemented using T3,
Lev Walkinc3808c12004-09-23 22:14:58 +0000172 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000173 */
174static void
Lev Walkine8318b82005-03-06 09:29:03 +0000175T2_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000176 td->free_struct = asn_DEF_T3.free_struct;
177 td->print_struct = asn_DEF_T3.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800178 td->check_constraints = asn_DEF_T3.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000179 td->ber_decoder = asn_DEF_T3.ber_decoder;
180 td->der_encoder = asn_DEF_T3.der_encoder;
181 td->xer_decoder = asn_DEF_T3.xer_decoder;
182 td->xer_encoder = asn_DEF_T3.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000183 td->uper_decoder = asn_DEF_T3.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000184 td->uper_encoder = asn_DEF_T3.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700185 td->oer_decoder = asn_DEF_T3.oer_decoder;
186 td->oer_encoder = asn_DEF_T3.oer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000187 if(!td->per_constraints)
188 td->per_constraints = asn_DEF_T3.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000189 td->elements = asn_DEF_T3.elements;
190 td->elements_count = asn_DEF_T3.elements_count;
191 td->specifics = asn_DEF_T3.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000192}
193
Lev Walkina9cc46e2004-09-22 16:06:28 +0000194void
Lev Walkindfae9752004-09-29 13:19:37 +0000195T2_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000196 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000197 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000198 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000199}
200
201int
Lev Walkindfae9752004-09-29 13:19:37 +0000202T2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000203 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000204 T2_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000205 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
206}
207
Lev Walkindc06f6b2004-10-20 15:50:55 +0000208asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000209T2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000210 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000211 T2_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000212 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000213}
214
215asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000216T2_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000217 void *structure, int tag_mode, ber_tlv_tag_t tag,
218 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000219 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000220 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
221}
222
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000223asn_dec_rval_t
224T2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000225 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000226 T2_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000227 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
228}
229
Lev Walkina9cc46e2004-09-22 16:06:28 +0000230asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000231T2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000232 int ilevel, enum xer_encoder_flags_e flags,
233 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000234 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000235 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000236}
237
238
239/*** <<< STAT-DEFS [T2] >>> ***/
240
Lev Walkina7591b52014-10-12 18:37:35 -0700241static const ber_tlv_tag_t asn_DEF_T2_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000242 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
243 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
244 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
245};
Lev Walkina7591b52014-10-12 18:37:35 -0700246static const ber_tlv_tag_t asn_DEF_T2_all_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000247 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
248 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
249 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
250 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
251 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
252};
Lev Walkindfae9752004-09-29 13:19:37 +0000253asn_TYPE_descriptor_t asn_DEF_T2 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000254 "T2",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000255 "T2",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000256 T2_free,
257 T2_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000258 T2_constraint,
259 T2_decode_ber,
260 T2_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000261 T2_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000262 T2_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000263 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700264 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000265 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000266 asn_DEF_T2_tags_1,
267 sizeof(asn_DEF_T2_tags_1)
268 /sizeof(asn_DEF_T2_tags_1[0]), /* 3 */
269 asn_DEF_T2_all_tags_1,
270 sizeof(asn_DEF_T2_all_tags_1)
271 /sizeof(asn_DEF_T2_all_tags_1[0]), /* 5 */
272 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000273 0, 0, /* No members */
274 0 /* No specifics */
275};
276
277
278/*** <<< INCLUDES [T3] >>> ***/
279
Lev Walkin22b5ed42006-09-13 02:51:20 +0000280#include "T4.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000281
282/*** <<< TYPE-DECLS [T3] >>> ***/
283
Lev Walkin2888f272004-09-14 12:46:58 +0000284typedef T4_t T3_t;
285
286/*** <<< FUNC-DECLS [T3] >>> ***/
287
Lev Walkindfae9752004-09-29 13:19:37 +0000288extern asn_TYPE_descriptor_t asn_DEF_T3;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000289asn_struct_free_f T3_free;
290asn_struct_print_f T3_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000291asn_constr_check_f T3_constraint;
292ber_type_decoder_f T3_decode_ber;
293der_type_encoder_f T3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000294xer_type_decoder_f T3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000295xer_type_encoder_f T3_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000296
297/*** <<< CODE [T3] >>> ***/
298
299int
Lev Walkindfae9752004-09-29 13:19:37 +0000300T3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000301 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000302 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000303 td->check_constraints = asn_DEF_T4.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000304 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000305}
306
307/*
308 * This type is implemented using T4,
Lev Walkinc3808c12004-09-23 22:14:58 +0000309 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000310 */
311static void
Lev Walkine8318b82005-03-06 09:29:03 +0000312T3_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000313 td->free_struct = asn_DEF_T4.free_struct;
314 td->print_struct = asn_DEF_T4.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800315 td->check_constraints = asn_DEF_T4.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000316 td->ber_decoder = asn_DEF_T4.ber_decoder;
317 td->der_encoder = asn_DEF_T4.der_encoder;
318 td->xer_decoder = asn_DEF_T4.xer_decoder;
319 td->xer_encoder = asn_DEF_T4.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000320 td->uper_decoder = asn_DEF_T4.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000321 td->uper_encoder = asn_DEF_T4.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700322 td->oer_decoder = asn_DEF_T4.oer_decoder;
323 td->oer_encoder = asn_DEF_T4.oer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000324 if(!td->per_constraints)
325 td->per_constraints = asn_DEF_T4.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000326 td->elements = asn_DEF_T4.elements;
327 td->elements_count = asn_DEF_T4.elements_count;
328 td->specifics = asn_DEF_T4.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000329}
330
Lev Walkina9cc46e2004-09-22 16:06:28 +0000331void
Lev Walkindfae9752004-09-29 13:19:37 +0000332T3_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000333 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000334 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000335 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000336}
337
338int
Lev Walkindfae9752004-09-29 13:19:37 +0000339T3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000340 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000341 T3_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000342 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
343}
344
Lev Walkindc06f6b2004-10-20 15:50:55 +0000345asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000346T3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000347 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000348 T3_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000349 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000350}
351
352asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000353T3_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000354 void *structure, int tag_mode, ber_tlv_tag_t tag,
355 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000356 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000357 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
358}
359
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000360asn_dec_rval_t
361T3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000362 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000363 T3_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000364 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
365}
366
Lev Walkina9cc46e2004-09-22 16:06:28 +0000367asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000368T3_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000369 int ilevel, enum xer_encoder_flags_e flags,
370 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000371 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000372 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000373}
374
375
376/*** <<< STAT-DEFS [T3] >>> ***/
377
Lev Walkina7591b52014-10-12 18:37:35 -0700378static const ber_tlv_tag_t asn_DEF_T3_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000379 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
380 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
381};
Lev Walkina7591b52014-10-12 18:37:35 -0700382static const ber_tlv_tag_t asn_DEF_T3_all_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000383 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
384 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
385 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
386 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
387};
Lev Walkindfae9752004-09-29 13:19:37 +0000388asn_TYPE_descriptor_t asn_DEF_T3 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000389 "T3",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000390 "T3",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000391 T3_free,
392 T3_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000393 T3_constraint,
394 T3_decode_ber,
395 T3_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000396 T3_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000397 T3_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000398 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700399 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000400 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000401 asn_DEF_T3_tags_1,
402 sizeof(asn_DEF_T3_tags_1)
403 /sizeof(asn_DEF_T3_tags_1[0]), /* 2 */
404 asn_DEF_T3_all_tags_1,
405 sizeof(asn_DEF_T3_all_tags_1)
406 /sizeof(asn_DEF_T3_all_tags_1[0]), /* 4 */
407 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000408 0, 0, /* No members */
409 0 /* No specifics */
410};
411
412
413/*** <<< INCLUDES [T4] >>> ***/
414
Lev Walkin22b5ed42006-09-13 02:51:20 +0000415#include "T5.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000416
417/*** <<< TYPE-DECLS [T4] >>> ***/
418
Lev Walkin2888f272004-09-14 12:46:58 +0000419typedef T5_t T4_t;
420
421/*** <<< FUNC-DECLS [T4] >>> ***/
422
Lev Walkindfae9752004-09-29 13:19:37 +0000423extern asn_TYPE_descriptor_t asn_DEF_T4;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000424asn_struct_free_f T4_free;
425asn_struct_print_f T4_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000426asn_constr_check_f T4_constraint;
427ber_type_decoder_f T4_decode_ber;
428der_type_encoder_f T4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000429xer_type_decoder_f T4_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000430xer_type_encoder_f T4_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000431
432/*** <<< CODE [T4] >>> ***/
433
434int
Lev Walkindfae9752004-09-29 13:19:37 +0000435T4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000436 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000437 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000438 td->check_constraints = asn_DEF_T5.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000439 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000440}
441
442/*
443 * This type is implemented using T5,
Lev Walkinc3808c12004-09-23 22:14:58 +0000444 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000445 */
446static void
Lev Walkine8318b82005-03-06 09:29:03 +0000447T4_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000448 td->free_struct = asn_DEF_T5.free_struct;
449 td->print_struct = asn_DEF_T5.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800450 td->check_constraints = asn_DEF_T5.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000451 td->ber_decoder = asn_DEF_T5.ber_decoder;
452 td->der_encoder = asn_DEF_T5.der_encoder;
453 td->xer_decoder = asn_DEF_T5.xer_decoder;
454 td->xer_encoder = asn_DEF_T5.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000455 td->uper_decoder = asn_DEF_T5.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000456 td->uper_encoder = asn_DEF_T5.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700457 td->oer_decoder = asn_DEF_T5.oer_decoder;
458 td->oer_encoder = asn_DEF_T5.oer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000459 if(!td->per_constraints)
460 td->per_constraints = asn_DEF_T5.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000461 td->elements = asn_DEF_T5.elements;
462 td->elements_count = asn_DEF_T5.elements_count;
463 td->specifics = asn_DEF_T5.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000464}
465
Lev Walkina9cc46e2004-09-22 16:06:28 +0000466void
Lev Walkindfae9752004-09-29 13:19:37 +0000467T4_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000468 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000469 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000470 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000471}
472
473int
Lev Walkindfae9752004-09-29 13:19:37 +0000474T4_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000475 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000476 T4_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000477 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
478}
479
Lev Walkindc06f6b2004-10-20 15:50:55 +0000480asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000481T4_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000482 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000483 T4_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000484 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000485}
486
487asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000488T4_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000489 void *structure, int tag_mode, ber_tlv_tag_t tag,
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->der_encoder(td, structure, tag_mode, tag, cb, app_key);
493}
494
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000495asn_dec_rval_t
496T4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000497 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000498 T4_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000499 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
500}
501
Lev Walkina9cc46e2004-09-22 16:06:28 +0000502asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000503T4_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000504 int ilevel, enum xer_encoder_flags_e flags,
505 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000506 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000507 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000508}
509
510
511/*** <<< STAT-DEFS [T4] >>> ***/
512
Lev Walkina7591b52014-10-12 18:37:35 -0700513static const ber_tlv_tag_t asn_DEF_T4_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000514 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
515 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
516 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
517};
Lev Walkindfae9752004-09-29 13:19:37 +0000518asn_TYPE_descriptor_t asn_DEF_T4 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000519 "T4",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000520 "T4",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000521 T4_free,
522 T4_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000523 T4_constraint,
524 T4_decode_ber,
525 T4_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000526 T4_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000527 T4_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000528 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700529 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000530 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000531 asn_DEF_T4_tags_1,
532 sizeof(asn_DEF_T4_tags_1)
533 /sizeof(asn_DEF_T4_tags_1[0]) - 1, /* 2 */
534 asn_DEF_T4_tags_1, /* Same as above */
535 sizeof(asn_DEF_T4_tags_1)
536 /sizeof(asn_DEF_T4_tags_1[0]), /* 3 */
537 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000538 0, 0, /* No members */
539 0 /* No specifics */
540};
541
542
543/*** <<< INCLUDES [T5] >>> ***/
544
Lev Walkin22b5ed42006-09-13 02:51:20 +0000545#include "T6.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000546
547/*** <<< TYPE-DECLS [T5] >>> ***/
548
Lev Walkin2888f272004-09-14 12:46:58 +0000549typedef T6_t T5_t;
550
551/*** <<< FUNC-DECLS [T5] >>> ***/
552
Lev Walkindfae9752004-09-29 13:19:37 +0000553extern asn_TYPE_descriptor_t asn_DEF_T5;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000554asn_struct_free_f T5_free;
555asn_struct_print_f T5_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000556asn_constr_check_f T5_constraint;
557ber_type_decoder_f T5_decode_ber;
558der_type_encoder_f T5_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000559xer_type_decoder_f T5_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000560xer_type_encoder_f T5_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000561
562/*** <<< CODE [T5] >>> ***/
563
564int
Lev Walkindfae9752004-09-29 13:19:37 +0000565T5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000566 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000567 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000568 td->check_constraints = asn_DEF_T6.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000569 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000570}
571
572/*
573 * This type is implemented using T6,
Lev Walkinc3808c12004-09-23 22:14:58 +0000574 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000575 */
576static void
Lev Walkine8318b82005-03-06 09:29:03 +0000577T5_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000578 td->free_struct = asn_DEF_T6.free_struct;
579 td->print_struct = asn_DEF_T6.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800580 td->check_constraints = asn_DEF_T6.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000581 td->ber_decoder = asn_DEF_T6.ber_decoder;
582 td->der_encoder = asn_DEF_T6.der_encoder;
583 td->xer_decoder = asn_DEF_T6.xer_decoder;
584 td->xer_encoder = asn_DEF_T6.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000585 td->uper_decoder = asn_DEF_T6.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000586 td->uper_encoder = asn_DEF_T6.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700587 td->oer_decoder = asn_DEF_T6.oer_decoder;
588 td->oer_encoder = asn_DEF_T6.oer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000589 if(!td->per_constraints)
590 td->per_constraints = asn_DEF_T6.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000591 td->elements = asn_DEF_T6.elements;
592 td->elements_count = asn_DEF_T6.elements_count;
593 td->specifics = asn_DEF_T6.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000594}
595
Lev Walkina9cc46e2004-09-22 16:06:28 +0000596void
Lev Walkindfae9752004-09-29 13:19:37 +0000597T5_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000598 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000599 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000600 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000601}
602
603int
Lev Walkindfae9752004-09-29 13:19:37 +0000604T5_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000605 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000606 T5_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000607 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
608}
609
Lev Walkindc06f6b2004-10-20 15:50:55 +0000610asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000611T5_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000612 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000613 T5_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000614 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000615}
616
617asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000618T5_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000619 void *structure, int tag_mode, ber_tlv_tag_t tag,
620 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000621 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000622 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
623}
624
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000625asn_dec_rval_t
626T5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000627 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000628 T5_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000629 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
630}
631
Lev Walkina9cc46e2004-09-22 16:06:28 +0000632asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000633T5_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000634 int ilevel, enum xer_encoder_flags_e flags,
635 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000636 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000637 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000638}
639
640
641/*** <<< STAT-DEFS [T5] >>> ***/
642
Lev Walkina7591b52014-10-12 18:37:35 -0700643static const ber_tlv_tag_t asn_DEF_T5_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000644 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
645 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
646};
Lev Walkindfae9752004-09-29 13:19:37 +0000647asn_TYPE_descriptor_t asn_DEF_T5 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000648 "T5",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000649 "T5",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000650 T5_free,
651 T5_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000652 T5_constraint,
653 T5_decode_ber,
654 T5_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000655 T5_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000656 T5_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000657 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700658 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000659 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000660 asn_DEF_T5_tags_1,
661 sizeof(asn_DEF_T5_tags_1)
662 /sizeof(asn_DEF_T5_tags_1[0]) - 1, /* 1 */
663 asn_DEF_T5_tags_1, /* Same as above */
664 sizeof(asn_DEF_T5_tags_1)
665 /sizeof(asn_DEF_T5_tags_1[0]), /* 2 */
666 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000667 0, 0, /* No members */
668 0 /* No specifics */
669};
670
671
672/*** <<< INCLUDES [T6] >>> ***/
673
674#include <NativeReal.h>
675
676/*** <<< TYPE-DECLS [T6] >>> ***/
677
Lev Walkin2888f272004-09-14 12:46:58 +0000678typedef double T6_t;
679
680/*** <<< FUNC-DECLS [T6] >>> ***/
681
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000682extern asn_TYPE_descriptor_t asn_DEF_T6;
683asn_struct_free_f T6_free;
684asn_struct_print_f T6_print;
685asn_constr_check_f T6_constraint;
686ber_type_decoder_f T6_decode_ber;
687der_type_encoder_f T6_encode_der;
688xer_type_decoder_f T6_decode_xer;
689xer_type_encoder_f T6_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000690
691/*** <<< CODE [T6] >>> ***/
692
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000693int
694T6_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000695 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000696 /* Replace with underlying type checker */
697 td->check_constraints = asn_DEF_NativeReal.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000698 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000699}
700
701/*
702 * This type is implemented using NativeReal,
703 * so here we adjust the DEF accordingly.
704 */
705static void
Lev Walkine8318b82005-03-06 09:29:03 +0000706T6_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000707 td->free_struct = asn_DEF_NativeReal.free_struct;
708 td->print_struct = asn_DEF_NativeReal.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800709 td->check_constraints = asn_DEF_NativeReal.check_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000710 td->ber_decoder = asn_DEF_NativeReal.ber_decoder;
711 td->der_encoder = asn_DEF_NativeReal.der_encoder;
712 td->xer_decoder = asn_DEF_NativeReal.xer_decoder;
713 td->xer_encoder = asn_DEF_NativeReal.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000714 td->uper_decoder = asn_DEF_NativeReal.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000715 td->uper_encoder = asn_DEF_NativeReal.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700716 td->oer_decoder = asn_DEF_NativeReal.oer_decoder;
717 td->oer_encoder = asn_DEF_NativeReal.oer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000718 if(!td->per_constraints)
719 td->per_constraints = asn_DEF_NativeReal.per_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000720 td->elements = asn_DEF_NativeReal.elements;
721 td->elements_count = asn_DEF_NativeReal.elements_count;
722 td->specifics = asn_DEF_NativeReal.specifics;
723}
724
725void
726T6_free(asn_TYPE_descriptor_t *td,
727 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000728 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000729 td->free_struct(td, struct_ptr, contents_only);
730}
731
732int
733T6_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
734 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000735 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000736 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
737}
738
739asn_dec_rval_t
740T6_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000741 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000742 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000743 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
744}
745
746asn_enc_rval_t
747T6_encode_der(asn_TYPE_descriptor_t *td,
748 void *structure, int tag_mode, ber_tlv_tag_t tag,
749 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000750 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000751 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
752}
753
754asn_dec_rval_t
755T6_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000756 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000757 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000758 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
759}
760
761asn_enc_rval_t
762T6_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
763 int ilevel, enum xer_encoder_flags_e flags,
764 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000765 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000766 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
767}
768
769
770/*** <<< STAT-DEFS [T6] >>> ***/
771
Lev Walkina7591b52014-10-12 18:37:35 -0700772static const ber_tlv_tag_t asn_DEF_T6_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000773 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
774};
775asn_TYPE_descriptor_t asn_DEF_T6 = {
776 "T6",
777 "T6",
778 T6_free,
779 T6_print,
780 T6_constraint,
781 T6_decode_ber,
782 T6_encode_der,
783 T6_decode_xer,
784 T6_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000785 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700786 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000787 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000788 asn_DEF_T6_tags_1,
789 sizeof(asn_DEF_T6_tags_1)
790 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
791 asn_DEF_T6_tags_1, /* Same as above */
792 sizeof(asn_DEF_T6_tags_1)
793 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
794 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000795 0, 0, /* No members */
796 0 /* No specifics */
797};
Lev Walkin2888f272004-09-14 12:46:58 +0000798
799
800/*** <<< INCLUDES [T] >>> ***/
801
Lev Walkin22b5ed42006-09-13 02:51:20 +0000802#include "Ts.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000803
804/*** <<< TYPE-DECLS [T] >>> ***/
805
Lev Walkin2888f272004-09-14 12:46:58 +0000806typedef Ts_t T_t;
807
808/*** <<< FUNC-DECLS [T] >>> ***/
809
Lev Walkindfae9752004-09-29 13:19:37 +0000810extern asn_TYPE_descriptor_t asn_DEF_T;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000811asn_struct_free_f T_free;
812asn_struct_print_f T_print;
Lev Walkin2888f272004-09-14 12:46:58 +0000813asn_constr_check_f T_constraint;
814ber_type_decoder_f T_decode_ber;
815der_type_encoder_f T_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000816xer_type_decoder_f T_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000817xer_type_encoder_f T_encode_xer;
Lev Walkin2888f272004-09-14 12:46:58 +0000818
819/*** <<< CODE [T] >>> ***/
820
821int
Lev Walkindfae9752004-09-29 13:19:37 +0000822T_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000823 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000824 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000825 td->check_constraints = asn_DEF_Ts.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000826 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000827}
828
829/*
830 * This type is implemented using Ts,
Lev Walkinc3808c12004-09-23 22:14:58 +0000831 * so here we adjust the DEF accordingly.
Lev Walkin2888f272004-09-14 12:46:58 +0000832 */
833static void
Lev Walkine8318b82005-03-06 09:29:03 +0000834T_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000835 td->free_struct = asn_DEF_Ts.free_struct;
836 td->print_struct = asn_DEF_Ts.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800837 td->check_constraints = asn_DEF_Ts.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000838 td->ber_decoder = asn_DEF_Ts.ber_decoder;
839 td->der_encoder = asn_DEF_Ts.der_encoder;
840 td->xer_decoder = asn_DEF_Ts.xer_decoder;
841 td->xer_encoder = asn_DEF_Ts.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000842 td->uper_decoder = asn_DEF_Ts.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000843 td->uper_encoder = asn_DEF_Ts.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700844 td->oer_decoder = asn_DEF_Ts.oer_decoder;
845 td->oer_encoder = asn_DEF_Ts.oer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000846 if(!td->per_constraints)
847 td->per_constraints = asn_DEF_Ts.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000848 td->elements = asn_DEF_Ts.elements;
849 td->elements_count = asn_DEF_Ts.elements_count;
850 td->specifics = asn_DEF_Ts.specifics;
Lev Walkin2888f272004-09-14 12:46:58 +0000851}
852
Lev Walkina9cc46e2004-09-22 16:06:28 +0000853void
Lev Walkindfae9752004-09-29 13:19:37 +0000854T_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000855 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000856 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000857 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2888f272004-09-14 12:46:58 +0000858}
859
860int
Lev Walkindfae9752004-09-29 13:19:37 +0000861T_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2888f272004-09-14 12:46:58 +0000862 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000863 T_1_inherit_TYPE_descriptor(td);
Lev Walkin2888f272004-09-14 12:46:58 +0000864 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
865}
866
Lev Walkindc06f6b2004-10-20 15:50:55 +0000867asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000868T_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000869 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000870 T_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000871 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000872}
873
874asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000875T_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000876 void *structure, int tag_mode, ber_tlv_tag_t tag,
877 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000878 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000879 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
880}
881
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000882asn_dec_rval_t
883T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000884 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000885 T_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000886 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
887}
888
Lev Walkina9cc46e2004-09-22 16:06:28 +0000889asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000890T_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000891 int ilevel, enum xer_encoder_flags_e flags,
892 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000893 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000894 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2888f272004-09-14 12:46:58 +0000895}
896
897
898/*** <<< STAT-DEFS [T] >>> ***/
899
Lev Walkina7591b52014-10-12 18:37:35 -0700900static const ber_tlv_tag_t asn_DEF_T_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000901 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
902 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
903 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
904};
Lev Walkindfae9752004-09-29 13:19:37 +0000905asn_TYPE_descriptor_t asn_DEF_T = {
Lev Walkin2888f272004-09-14 12:46:58 +0000906 "T",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000907 "T",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000908 T_free,
909 T_print,
Lev Walkin2888f272004-09-14 12:46:58 +0000910 T_constraint,
911 T_decode_ber,
912 T_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000913 T_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000914 T_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000915 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700916 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +0000917 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000918 asn_DEF_T_tags_1,
919 sizeof(asn_DEF_T_tags_1)
920 /sizeof(asn_DEF_T_tags_1[0]) - 2, /* 1 */
921 asn_DEF_T_tags_1, /* Same as above */
922 sizeof(asn_DEF_T_tags_1)
923 /sizeof(asn_DEF_T_tags_1[0]), /* 3 */
924 0, /* No PER visible constraints */
Lev Walkin2888f272004-09-14 12:46:58 +0000925 0, 0, /* Defined elsewhere */
926 0 /* No specifics */
927};
928
929
930/*** <<< INCLUDES [Ts] >>> ***/
931
Lev Walkin22b5ed42006-09-13 02:51:20 +0000932#include "T2.h"
933#include "T3.h"
Lev Walkin2888f272004-09-14 12:46:58 +0000934#include <constr_SEQUENCE.h>
935
Lev Walkin2888f272004-09-14 12:46:58 +0000936/*** <<< TYPE-DECLS [Ts] >>> ***/
937
Lev Walkin2888f272004-09-14 12:46:58 +0000938typedef struct Ts {
939 T2_t m1;
940 T3_t *m2 /* OPTIONAL */;
941 T3_t m3;
942
943 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000944 asn_struct_ctx_t _asn_ctx;
Lev Walkin2888f272004-09-14 12:46:58 +0000945} Ts_t;
946
Lev Walkinc8285712005-03-04 22:18:20 +0000947/*** <<< FUNC-DECLS [Ts] >>> ***/
948
949extern asn_TYPE_descriptor_t asn_DEF_Ts;
950
Lev Walkin2888f272004-09-14 12:46:58 +0000951/*** <<< STAT-DEFS [Ts] >>> ***/
952
Lev Walkine0272aa2005-03-04 11:26:08 +0000953static asn_TYPE_member_t asn_MBR_Ts_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000954 { ATF_NOFLAGS, 0, offsetof(struct Ts, m1),
955 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
956 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000957 .type = &asn_DEF_T2,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000958 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000959 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
960 .default_value = 0,
Lev Walkin2888f272004-09-14 12:46:58 +0000961 .name = "m1"
962 },
963 { ATF_POINTER, 1, offsetof(struct Ts, m2),
964 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
965 .tag_mode = +1, /* EXPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000966 .type = &asn_DEF_T3,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000967 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000968 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
969 .default_value = 0,
Lev Walkin2888f272004-09-14 12:46:58 +0000970 .name = "m2"
971 },
972 { ATF_NOFLAGS, 0, offsetof(struct Ts, m3),
973 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
974 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000975 .type = &asn_DEF_T3,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000976 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000977 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
978 .default_value = 0,
Lev Walkin2888f272004-09-14 12:46:58 +0000979 .name = "m3"
980 },
981};
Lev Walkina7591b52014-10-12 18:37:35 -0700982static const ber_tlv_tag_t asn_DEF_Ts_tags_1[] = {
Lev Walkin2888f272004-09-14 12:46:58 +0000983 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
984 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
985};
Lev Walkina7591b52014-10-12 18:37:35 -0700986static const asn_TYPE_tag2member_t asn_MAP_Ts_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700987 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* m1 */
988 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* m2 */
989 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* m3 */
Lev Walkin2888f272004-09-14 12:46:58 +0000990};
Lev Walkin59b176e2005-11-26 11:25:14 +0000991static asn_SEQUENCE_specifics_t asn_SPC_Ts_specs_1 = {
Lev Walkin2888f272004-09-14 12:46:58 +0000992 sizeof(struct Ts),
Lev Walkindfae9752004-09-29 13:19:37 +0000993 offsetof(struct Ts, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000994 asn_MAP_Ts_tag2el_1,
Lev Walkin2888f272004-09-14 12:46:58 +0000995 3, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000996 0, 0, 0, /* Optional elements (not needed) */
Lev Walkin2888f272004-09-14 12:46:58 +0000997 -1, /* Start extensions */
998 -1 /* Stop extensions */
999};
Lev Walkindfae9752004-09-29 13:19:37 +00001000asn_TYPE_descriptor_t asn_DEF_Ts = {
Lev Walkin2888f272004-09-14 12:46:58 +00001001 "Ts",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001002 "Ts",
Lev Walkina9cc46e2004-09-22 16:06:28 +00001003 SEQUENCE_free,
1004 SEQUENCE_print,
Lev Walkin2888f272004-09-14 12:46:58 +00001005 SEQUENCE_constraint,
1006 SEQUENCE_decode_ber,
1007 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +00001008 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +00001009 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +00001010 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -07001011 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkin2888f272004-09-14 12:46:58 +00001012 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001013 asn_DEF_Ts_tags_1,
1014 sizeof(asn_DEF_Ts_tags_1)
1015 /sizeof(asn_DEF_Ts_tags_1[0]) - 1, /* 1 */
1016 asn_DEF_Ts_tags_1, /* Same as above */
1017 sizeof(asn_DEF_Ts_tags_1)
1018 /sizeof(asn_DEF_Ts_tags_1[0]), /* 2 */
1019 0, /* No PER visible constraints */
Lev Walkine0272aa2005-03-04 11:26:08 +00001020 asn_MBR_Ts_1,
Lev Walkin2888f272004-09-14 12:46:58 +00001021 3, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +00001022 &asn_SPC_Ts_specs_1 /* Additional specs */
Lev Walkin2888f272004-09-14 12:46:58 +00001023};
1024