blob: 5381ea78f2c047485a2068bfe4ead80efe742fb4 [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 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 Walkinb33425f2017-07-14 14:59:52 +040048 if(!td->oer_constraints)
49 td->oer_constraints = asn_DEF_T2.oer_constraints;
Lev Walkin59b176e2005-11-26 11:25:14 +000050 if(!td->per_constraints)
51 td->per_constraints = asn_DEF_T2.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +000052 td->elements = asn_DEF_T2.elements;
53 td->elements_count = asn_DEF_T2.elements_count;
54 td->specifics = asn_DEF_T2.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +000055}
56
Lev Walkina9cc46e2004-09-22 16:06:28 +000057void
Lev Walkindfae9752004-09-29 13:19:37 +000058T1_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +000059 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +000060 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000061 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +000062}
63
64int
Lev Walkindfae9752004-09-29 13:19:37 +000065T1_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +000066 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000067 T1_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +000068 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
69}
70
Lev Walkindc06f6b2004-10-20 15:50:55 +000071asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000072T1_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +000073 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +000074 T1_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +000075 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +000076}
77
78asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000079T1_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +000080 void *structure, int tag_mode, ber_tlv_tag_t tag,
81 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000082 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000083 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
84}
85
Lev Walkin0ebe8b32004-10-23 13:26:56 +000086asn_dec_rval_t
87T1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +000088 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +000089 T1_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +000090 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
91}
92
Lev Walkina9cc46e2004-09-22 16:06:28 +000093asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +000094T1_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +000095 int ilevel, enum xer_encoder_flags_e flags,
96 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000097 T1_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +000098 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +000099}
100
101
102/*** <<< STAT-DEFS [T1] >>> ***/
103
Lev Walkina7591b52014-10-12 18:37:35 -0700104static const ber_tlv_tag_t asn_DEF_T1_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000105 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
106 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
107 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
108 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
109};
Lev Walkina7591b52014-10-12 18:37:35 -0700110static const ber_tlv_tag_t asn_DEF_T1_all_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000111 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
112 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
113 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
114 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
115 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000116 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin188ed2c2004-09-13 08:31:01 +0000117};
Lev Walkindfae9752004-09-29 13:19:37 +0000118asn_TYPE_descriptor_t asn_DEF_T1 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000119 "T1",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000120 "T1",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000121 T1_free,
122 T1_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000123 T1_constraint,
124 T1_decode_ber,
125 T1_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000126 T1_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000127 T1_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700128 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400129 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000130 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000131 asn_DEF_T1_tags_1,
132 sizeof(asn_DEF_T1_tags_1)
133 /sizeof(asn_DEF_T1_tags_1[0]), /* 4 */
134 asn_DEF_T1_all_tags_1,
135 sizeof(asn_DEF_T1_all_tags_1)
136 /sizeof(asn_DEF_T1_all_tags_1[0]), /* 6 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400137 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000138 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000139 0, 0, /* No members */
140 0 /* No specifics */
141};
142
143
144/*** <<< INCLUDES [T2] >>> ***/
145
Lev Walkin22b5ed42006-09-13 02:51:20 +0000146#include "T3.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000147
148/*** <<< TYPE-DECLS [T2] >>> ***/
149
Lev Walkin906654e2004-09-10 15:49:15 +0000150typedef T3_t T2_t;
151
152/*** <<< FUNC-DECLS [T2] >>> ***/
153
Lev Walkindfae9752004-09-29 13:19:37 +0000154extern asn_TYPE_descriptor_t asn_DEF_T2;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000155asn_struct_free_f T2_free;
156asn_struct_print_f T2_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000157asn_constr_check_f T2_constraint;
158ber_type_decoder_f T2_decode_ber;
159der_type_encoder_f T2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000160xer_type_decoder_f T2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000161xer_type_encoder_f T2_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000162
163/*** <<< CODE [T2] >>> ***/
164
165int
Lev Walkindfae9752004-09-29 13:19:37 +0000166T2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000167 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000168 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000169 td->check_constraints = asn_DEF_T3.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000170 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000171}
172
173/*
174 * This type is implemented using T3,
Lev Walkinc3808c12004-09-23 22:14:58 +0000175 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000176 */
177static void
Lev Walkine8318b82005-03-06 09:29:03 +0000178T2_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000179 td->free_struct = asn_DEF_T3.free_struct;
180 td->print_struct = asn_DEF_T3.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800181 td->check_constraints = asn_DEF_T3.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000182 td->ber_decoder = asn_DEF_T3.ber_decoder;
183 td->der_encoder = asn_DEF_T3.der_encoder;
184 td->xer_decoder = asn_DEF_T3.xer_decoder;
185 td->xer_encoder = asn_DEF_T3.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000186 td->uper_decoder = asn_DEF_T3.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000187 td->uper_encoder = asn_DEF_T3.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700188 td->oer_decoder = asn_DEF_T3.oer_decoder;
189 td->oer_encoder = asn_DEF_T3.oer_encoder;
Lev Walkinb33425f2017-07-14 14:59:52 +0400190 if(!td->oer_constraints)
191 td->oer_constraints = asn_DEF_T3.oer_constraints;
Lev Walkin59b176e2005-11-26 11:25:14 +0000192 if(!td->per_constraints)
193 td->per_constraints = asn_DEF_T3.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000194 td->elements = asn_DEF_T3.elements;
195 td->elements_count = asn_DEF_T3.elements_count;
196 td->specifics = asn_DEF_T3.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000197}
198
Lev Walkina9cc46e2004-09-22 16:06:28 +0000199void
Lev Walkindfae9752004-09-29 13:19:37 +0000200T2_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000201 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000202 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000203 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000204}
205
206int
Lev Walkindfae9752004-09-29 13:19:37 +0000207T2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000208 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000209 T2_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000210 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
211}
212
Lev Walkindc06f6b2004-10-20 15:50:55 +0000213asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000214T2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000215 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000216 T2_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000217 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000218}
219
220asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000221T2_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000222 void *structure, int tag_mode, ber_tlv_tag_t tag,
223 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000224 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000225 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
226}
227
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000228asn_dec_rval_t
229T2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000230 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000231 T2_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000232 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
233}
234
Lev Walkina9cc46e2004-09-22 16:06:28 +0000235asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000236T2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000237 int ilevel, enum xer_encoder_flags_e flags,
238 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000239 T2_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000240 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000241}
242
243
244/*** <<< STAT-DEFS [T2] >>> ***/
245
Lev Walkina7591b52014-10-12 18:37:35 -0700246static const ber_tlv_tag_t asn_DEF_T2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000247 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
248 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
249 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
250};
Lev Walkina7591b52014-10-12 18:37:35 -0700251static const ber_tlv_tag_t asn_DEF_T2_all_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000252 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
253 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
254 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
255 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000256 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin188ed2c2004-09-13 08:31:01 +0000257};
Lev Walkindfae9752004-09-29 13:19:37 +0000258asn_TYPE_descriptor_t asn_DEF_T2 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000259 "T2",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000260 "T2",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000261 T2_free,
262 T2_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000263 T2_constraint,
264 T2_decode_ber,
265 T2_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000266 T2_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000267 T2_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700268 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400269 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000270 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000271 asn_DEF_T2_tags_1,
272 sizeof(asn_DEF_T2_tags_1)
273 /sizeof(asn_DEF_T2_tags_1[0]), /* 3 */
274 asn_DEF_T2_all_tags_1,
275 sizeof(asn_DEF_T2_all_tags_1)
276 /sizeof(asn_DEF_T2_all_tags_1[0]), /* 5 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400277 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000278 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000279 0, 0, /* No members */
280 0 /* No specifics */
281};
282
283
284/*** <<< INCLUDES [T3] >>> ***/
285
Lev Walkin22b5ed42006-09-13 02:51:20 +0000286#include "T4.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000287
288/*** <<< TYPE-DECLS [T3] >>> ***/
289
Lev Walkin906654e2004-09-10 15:49:15 +0000290typedef T4_t T3_t;
291
292/*** <<< FUNC-DECLS [T3] >>> ***/
293
Lev Walkindfae9752004-09-29 13:19:37 +0000294extern asn_TYPE_descriptor_t asn_DEF_T3;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000295asn_struct_free_f T3_free;
296asn_struct_print_f T3_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000297asn_constr_check_f T3_constraint;
298ber_type_decoder_f T3_decode_ber;
299der_type_encoder_f T3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000300xer_type_decoder_f T3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000301xer_type_encoder_f T3_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000302
303/*** <<< CODE [T3] >>> ***/
304
305int
Lev Walkindfae9752004-09-29 13:19:37 +0000306T3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000307 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000308 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000309 td->check_constraints = asn_DEF_T4.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000310 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000311}
312
313/*
314 * This type is implemented using T4,
Lev Walkinc3808c12004-09-23 22:14:58 +0000315 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000316 */
317static void
Lev Walkine8318b82005-03-06 09:29:03 +0000318T3_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000319 td->free_struct = asn_DEF_T4.free_struct;
320 td->print_struct = asn_DEF_T4.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800321 td->check_constraints = asn_DEF_T4.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000322 td->ber_decoder = asn_DEF_T4.ber_decoder;
323 td->der_encoder = asn_DEF_T4.der_encoder;
324 td->xer_decoder = asn_DEF_T4.xer_decoder;
325 td->xer_encoder = asn_DEF_T4.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000326 td->uper_decoder = asn_DEF_T4.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000327 td->uper_encoder = asn_DEF_T4.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700328 td->oer_decoder = asn_DEF_T4.oer_decoder;
329 td->oer_encoder = asn_DEF_T4.oer_encoder;
Lev Walkinb33425f2017-07-14 14:59:52 +0400330 if(!td->oer_constraints)
331 td->oer_constraints = asn_DEF_T4.oer_constraints;
Lev Walkin59b176e2005-11-26 11:25:14 +0000332 if(!td->per_constraints)
333 td->per_constraints = asn_DEF_T4.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000334 td->elements = asn_DEF_T4.elements;
335 td->elements_count = asn_DEF_T4.elements_count;
336 td->specifics = asn_DEF_T4.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000337}
338
Lev Walkina9cc46e2004-09-22 16:06:28 +0000339void
Lev Walkindfae9752004-09-29 13:19:37 +0000340T3_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000341 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000342 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000343 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000344}
345
346int
Lev Walkindfae9752004-09-29 13:19:37 +0000347T3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000348 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000349 T3_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000350 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
351}
352
Lev Walkindc06f6b2004-10-20 15:50:55 +0000353asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000354T3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000355 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000356 T3_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000357 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000358}
359
360asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000361T3_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000362 void *structure, int tag_mode, ber_tlv_tag_t tag,
363 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000364 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000365 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
366}
367
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000368asn_dec_rval_t
369T3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000370 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000371 T3_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000372 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
373}
374
Lev Walkina9cc46e2004-09-22 16:06:28 +0000375asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000376T3_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000377 int ilevel, enum xer_encoder_flags_e flags,
378 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000379 T3_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000380 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000381}
382
383
384/*** <<< STAT-DEFS [T3] >>> ***/
385
Lev Walkina7591b52014-10-12 18:37:35 -0700386static const ber_tlv_tag_t asn_DEF_T3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000387 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
388 (ASN_TAG_CLASS_CONTEXT | (6 << 2))
389};
Lev Walkina7591b52014-10-12 18:37:35 -0700390static const ber_tlv_tag_t asn_DEF_T3_all_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000391 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
392 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
393 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000394 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin188ed2c2004-09-13 08:31:01 +0000395};
Lev Walkindfae9752004-09-29 13:19:37 +0000396asn_TYPE_descriptor_t asn_DEF_T3 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000397 "T3",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000398 "T3",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000399 T3_free,
400 T3_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000401 T3_constraint,
402 T3_decode_ber,
403 T3_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000404 T3_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000405 T3_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700406 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400407 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000408 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000409 asn_DEF_T3_tags_1,
410 sizeof(asn_DEF_T3_tags_1)
411 /sizeof(asn_DEF_T3_tags_1[0]), /* 2 */
412 asn_DEF_T3_all_tags_1,
413 sizeof(asn_DEF_T3_all_tags_1)
414 /sizeof(asn_DEF_T3_all_tags_1[0]), /* 4 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400415 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000416 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000417 0, 0, /* No members */
418 0 /* No specifics */
419};
420
421
422/*** <<< INCLUDES [T4] >>> ***/
423
Lev Walkin22b5ed42006-09-13 02:51:20 +0000424#include "T5.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000425
426/*** <<< TYPE-DECLS [T4] >>> ***/
427
Lev Walkin906654e2004-09-10 15:49:15 +0000428typedef T5_t T4_t;
429
430/*** <<< FUNC-DECLS [T4] >>> ***/
431
Lev Walkindfae9752004-09-29 13:19:37 +0000432extern asn_TYPE_descriptor_t asn_DEF_T4;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000433asn_struct_free_f T4_free;
434asn_struct_print_f T4_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000435asn_constr_check_f T4_constraint;
436ber_type_decoder_f T4_decode_ber;
437der_type_encoder_f T4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000438xer_type_decoder_f T4_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000439xer_type_encoder_f T4_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000440
441/*** <<< CODE [T4] >>> ***/
442
443int
Lev Walkindfae9752004-09-29 13:19:37 +0000444T4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000445 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000446 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000447 td->check_constraints = asn_DEF_T5.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000448 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000449}
450
451/*
452 * This type is implemented using T5,
Lev Walkinc3808c12004-09-23 22:14:58 +0000453 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000454 */
455static void
Lev Walkine8318b82005-03-06 09:29:03 +0000456T4_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000457 td->free_struct = asn_DEF_T5.free_struct;
458 td->print_struct = asn_DEF_T5.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800459 td->check_constraints = asn_DEF_T5.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000460 td->ber_decoder = asn_DEF_T5.ber_decoder;
461 td->der_encoder = asn_DEF_T5.der_encoder;
462 td->xer_decoder = asn_DEF_T5.xer_decoder;
463 td->xer_encoder = asn_DEF_T5.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000464 td->uper_decoder = asn_DEF_T5.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000465 td->uper_encoder = asn_DEF_T5.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700466 td->oer_decoder = asn_DEF_T5.oer_decoder;
467 td->oer_encoder = asn_DEF_T5.oer_encoder;
Lev Walkinb33425f2017-07-14 14:59:52 +0400468 if(!td->oer_constraints)
469 td->oer_constraints = asn_DEF_T5.oer_constraints;
Lev Walkin59b176e2005-11-26 11:25:14 +0000470 if(!td->per_constraints)
471 td->per_constraints = asn_DEF_T5.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000472 td->elements = asn_DEF_T5.elements;
473 td->elements_count = asn_DEF_T5.elements_count;
474 td->specifics = asn_DEF_T5.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000475}
476
Lev Walkina9cc46e2004-09-22 16:06:28 +0000477void
Lev Walkindfae9752004-09-29 13:19:37 +0000478T4_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000479 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000480 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000481 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000482}
483
484int
Lev Walkindfae9752004-09-29 13:19:37 +0000485T4_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000486 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000487 T4_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000488 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
489}
490
Lev Walkindc06f6b2004-10-20 15:50:55 +0000491asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000492T4_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000493 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000494 T4_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000495 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000496}
497
498asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000499T4_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000500 void *structure, int tag_mode, ber_tlv_tag_t tag,
501 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000502 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000503 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
504}
505
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000506asn_dec_rval_t
507T4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000508 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000509 T4_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000510 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
511}
512
Lev Walkina9cc46e2004-09-22 16:06:28 +0000513asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000514T4_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000515 int ilevel, enum xer_encoder_flags_e flags,
516 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000517 T4_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000518 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000519}
520
521
522/*** <<< STAT-DEFS [T4] >>> ***/
523
Lev Walkina7591b52014-10-12 18:37:35 -0700524static const ber_tlv_tag_t asn_DEF_T4_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000525 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
Lev Walkin188ed2c2004-09-13 08:31:01 +0000526 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000527 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin906654e2004-09-10 15:49:15 +0000528};
Lev Walkindfae9752004-09-29 13:19:37 +0000529asn_TYPE_descriptor_t asn_DEF_T4 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000530 "T4",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000531 "T4",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000532 T4_free,
533 T4_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000534 T4_constraint,
535 T4_decode_ber,
536 T4_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000537 T4_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000538 T4_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700539 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400540 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000541 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000542 asn_DEF_T4_tags_1,
543 sizeof(asn_DEF_T4_tags_1)
544 /sizeof(asn_DEF_T4_tags_1[0]) - 1, /* 2 */
545 asn_DEF_T4_tags_1, /* Same as above */
546 sizeof(asn_DEF_T4_tags_1)
547 /sizeof(asn_DEF_T4_tags_1[0]), /* 3 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400548 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000549 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000550 0, 0, /* No members */
551 0 /* No specifics */
552};
553
554
555/*** <<< INCLUDES [T5] >>> ***/
556
Lev Walkin22b5ed42006-09-13 02:51:20 +0000557#include "T6.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000558
559/*** <<< TYPE-DECLS [T5] >>> ***/
560
Lev Walkin906654e2004-09-10 15:49:15 +0000561typedef T6_t T5_t;
562
563/*** <<< FUNC-DECLS [T5] >>> ***/
564
Lev Walkindfae9752004-09-29 13:19:37 +0000565extern asn_TYPE_descriptor_t asn_DEF_T5;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000566asn_struct_free_f T5_free;
567asn_struct_print_f T5_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000568asn_constr_check_f T5_constraint;
569ber_type_decoder_f T5_decode_ber;
570der_type_encoder_f T5_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000571xer_type_decoder_f T5_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000572xer_type_encoder_f T5_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000573
574/*** <<< CODE [T5] >>> ***/
575
576int
Lev Walkindfae9752004-09-29 13:19:37 +0000577T5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000578 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000579 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000580 td->check_constraints = asn_DEF_T6.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000581 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000582}
583
584/*
585 * This type is implemented using T6,
Lev Walkinc3808c12004-09-23 22:14:58 +0000586 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000587 */
588static void
Lev Walkine8318b82005-03-06 09:29:03 +0000589T5_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000590 td->free_struct = asn_DEF_T6.free_struct;
591 td->print_struct = asn_DEF_T6.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800592 td->check_constraints = asn_DEF_T6.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000593 td->ber_decoder = asn_DEF_T6.ber_decoder;
594 td->der_encoder = asn_DEF_T6.der_encoder;
595 td->xer_decoder = asn_DEF_T6.xer_decoder;
596 td->xer_encoder = asn_DEF_T6.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000597 td->uper_decoder = asn_DEF_T6.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000598 td->uper_encoder = asn_DEF_T6.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700599 td->oer_decoder = asn_DEF_T6.oer_decoder;
600 td->oer_encoder = asn_DEF_T6.oer_encoder;
Lev Walkinb33425f2017-07-14 14:59:52 +0400601 if(!td->oer_constraints)
602 td->oer_constraints = asn_DEF_T6.oer_constraints;
Lev Walkin59b176e2005-11-26 11:25:14 +0000603 if(!td->per_constraints)
604 td->per_constraints = asn_DEF_T6.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000605 td->elements = asn_DEF_T6.elements;
606 td->elements_count = asn_DEF_T6.elements_count;
607 td->specifics = asn_DEF_T6.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000608}
609
Lev Walkina9cc46e2004-09-22 16:06:28 +0000610void
Lev Walkindfae9752004-09-29 13:19:37 +0000611T5_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000612 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000613 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000614 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000615}
616
617int
Lev Walkindfae9752004-09-29 13:19:37 +0000618T5_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000619 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000620 T5_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000621 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
622}
623
Lev Walkindc06f6b2004-10-20 15:50:55 +0000624asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000625T5_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000626 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000627 T5_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000628 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000629}
630
631asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000632T5_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000633 void *structure, int tag_mode, ber_tlv_tag_t tag,
634 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000635 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000636 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
637}
638
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000639asn_dec_rval_t
640T5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000641 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000642 T5_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000643 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
644}
645
Lev Walkina9cc46e2004-09-22 16:06:28 +0000646asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000647T5_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000648 int ilevel, enum xer_encoder_flags_e flags,
649 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000650 T5_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000651 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000652}
653
654
655/*** <<< STAT-DEFS [T5] >>> ***/
656
Lev Walkina7591b52014-10-12 18:37:35 -0700657static const ber_tlv_tag_t asn_DEF_T5_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000658 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
Lev Walkin2888f272004-09-14 12:46:58 +0000659 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
Lev Walkin906654e2004-09-10 15:49:15 +0000660};
Lev Walkindfae9752004-09-29 13:19:37 +0000661asn_TYPE_descriptor_t asn_DEF_T5 = {
Lev Walkin906654e2004-09-10 15:49:15 +0000662 "T5",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000663 "T5",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000664 T5_free,
665 T5_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000666 T5_constraint,
667 T5_decode_ber,
668 T5_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000669 T5_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000670 T5_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700671 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400672 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000673 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000674 asn_DEF_T5_tags_1,
675 sizeof(asn_DEF_T5_tags_1)
676 /sizeof(asn_DEF_T5_tags_1[0]) - 1, /* 1 */
677 asn_DEF_T5_tags_1, /* Same as above */
678 sizeof(asn_DEF_T5_tags_1)
679 /sizeof(asn_DEF_T5_tags_1[0]), /* 2 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400680 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000681 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000682 0, 0, /* No members */
683 0 /* No specifics */
684};
685
686
687/*** <<< INCLUDES [T6] >>> ***/
688
Lev Walkin2888f272004-09-14 12:46:58 +0000689#include <REAL.h>
Lev Walkin906654e2004-09-10 15:49:15 +0000690
691/*** <<< TYPE-DECLS [T6] >>> ***/
692
Lev Walkin2888f272004-09-14 12:46:58 +0000693typedef REAL_t T6_t;
Lev Walkin906654e2004-09-10 15:49:15 +0000694
695/*** <<< FUNC-DECLS [T6] >>> ***/
696
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000697extern asn_TYPE_descriptor_t asn_DEF_T6;
698asn_struct_free_f T6_free;
699asn_struct_print_f T6_print;
700asn_constr_check_f T6_constraint;
701ber_type_decoder_f T6_decode_ber;
702der_type_encoder_f T6_encode_der;
703xer_type_decoder_f T6_decode_xer;
704xer_type_encoder_f T6_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000705
706/*** <<< CODE [T6] >>> ***/
707
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000708int
709T6_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000710 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000711 /* Replace with underlying type checker */
712 td->check_constraints = asn_DEF_REAL.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000713 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000714}
715
716/*
717 * This type is implemented using REAL,
718 * so here we adjust the DEF accordingly.
719 */
720static void
Lev Walkine8318b82005-03-06 09:29:03 +0000721T6_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000722 td->free_struct = asn_DEF_REAL.free_struct;
723 td->print_struct = asn_DEF_REAL.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800724 td->check_constraints = asn_DEF_REAL.check_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000725 td->ber_decoder = asn_DEF_REAL.ber_decoder;
726 td->der_encoder = asn_DEF_REAL.der_encoder;
727 td->xer_decoder = asn_DEF_REAL.xer_decoder;
728 td->xer_encoder = asn_DEF_REAL.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000729 td->uper_decoder = asn_DEF_REAL.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000730 td->uper_encoder = asn_DEF_REAL.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700731 td->oer_decoder = asn_DEF_REAL.oer_decoder;
732 td->oer_encoder = asn_DEF_REAL.oer_encoder;
Lev Walkinb33425f2017-07-14 14:59:52 +0400733 if(!td->oer_constraints)
734 td->oer_constraints = asn_DEF_REAL.oer_constraints;
Lev Walkin59b176e2005-11-26 11:25:14 +0000735 if(!td->per_constraints)
736 td->per_constraints = asn_DEF_REAL.per_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000737 td->elements = asn_DEF_REAL.elements;
738 td->elements_count = asn_DEF_REAL.elements_count;
739 td->specifics = asn_DEF_REAL.specifics;
740}
741
742void
743T6_free(asn_TYPE_descriptor_t *td,
744 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000745 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000746 td->free_struct(td, struct_ptr, contents_only);
747}
748
749int
750T6_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
751 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000752 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000753 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
754}
755
756asn_dec_rval_t
757T6_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000758 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000759 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000760 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
761}
762
763asn_enc_rval_t
764T6_encode_der(asn_TYPE_descriptor_t *td,
765 void *structure, int tag_mode, ber_tlv_tag_t tag,
766 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000767 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000768 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
769}
770
771asn_dec_rval_t
772T6_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000773 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000774 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000775 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
776}
777
778asn_enc_rval_t
779T6_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
780 int ilevel, enum xer_encoder_flags_e flags,
781 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000782 T6_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000783 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
784}
785
786
787/*** <<< STAT-DEFS [T6] >>> ***/
788
Lev Walkina7591b52014-10-12 18:37:35 -0700789static const ber_tlv_tag_t asn_DEF_T6_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000790 (ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
791};
792asn_TYPE_descriptor_t asn_DEF_T6 = {
793 "T6",
794 "T6",
795 T6_free,
796 T6_print,
797 T6_constraint,
798 T6_decode_ber,
799 T6_encode_der,
800 T6_decode_xer,
801 T6_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700802 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400803 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000804 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000805 asn_DEF_T6_tags_1,
806 sizeof(asn_DEF_T6_tags_1)
807 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
808 asn_DEF_T6_tags_1, /* Same as above */
809 sizeof(asn_DEF_T6_tags_1)
810 /sizeof(asn_DEF_T6_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400811 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000812 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000813 0, 0, /* No members */
814 0 /* No specifics */
815};
Lev Walkin906654e2004-09-10 15:49:15 +0000816
817
818/*** <<< INCLUDES [T] >>> ***/
819
Lev Walkin22b5ed42006-09-13 02:51:20 +0000820#include "Ts.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000821
822/*** <<< TYPE-DECLS [T] >>> ***/
823
Lev Walkin906654e2004-09-10 15:49:15 +0000824typedef Ts_t T_t;
825
826/*** <<< FUNC-DECLS [T] >>> ***/
827
Lev Walkindfae9752004-09-29 13:19:37 +0000828extern asn_TYPE_descriptor_t asn_DEF_T;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000829asn_struct_free_f T_free;
830asn_struct_print_f T_print;
Lev Walkin906654e2004-09-10 15:49:15 +0000831asn_constr_check_f T_constraint;
832ber_type_decoder_f T_decode_ber;
833der_type_encoder_f T_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000834xer_type_decoder_f T_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000835xer_type_encoder_f T_encode_xer;
Lev Walkin906654e2004-09-10 15:49:15 +0000836
837/*** <<< CODE [T] >>> ***/
838
839int
Lev Walkindfae9752004-09-29 13:19:37 +0000840T_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000841 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000842 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000843 td->check_constraints = asn_DEF_Ts.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000844 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000845}
846
847/*
848 * This type is implemented using Ts,
Lev Walkinc3808c12004-09-23 22:14:58 +0000849 * so here we adjust the DEF accordingly.
Lev Walkin906654e2004-09-10 15:49:15 +0000850 */
851static void
Lev Walkine8318b82005-03-06 09:29:03 +0000852T_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000853 td->free_struct = asn_DEF_Ts.free_struct;
854 td->print_struct = asn_DEF_Ts.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800855 td->check_constraints = asn_DEF_Ts.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000856 td->ber_decoder = asn_DEF_Ts.ber_decoder;
857 td->der_encoder = asn_DEF_Ts.der_encoder;
858 td->xer_decoder = asn_DEF_Ts.xer_decoder;
859 td->xer_encoder = asn_DEF_Ts.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000860 td->uper_decoder = asn_DEF_Ts.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000861 td->uper_encoder = asn_DEF_Ts.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700862 td->oer_decoder = asn_DEF_Ts.oer_decoder;
863 td->oer_encoder = asn_DEF_Ts.oer_encoder;
Lev Walkinb33425f2017-07-14 14:59:52 +0400864 if(!td->oer_constraints)
865 td->oer_constraints = asn_DEF_Ts.oer_constraints;
Lev Walkin59b176e2005-11-26 11:25:14 +0000866 if(!td->per_constraints)
867 td->per_constraints = asn_DEF_Ts.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000868 td->elements = asn_DEF_Ts.elements;
869 td->elements_count = asn_DEF_Ts.elements_count;
870 td->specifics = asn_DEF_Ts.specifics;
Lev Walkin906654e2004-09-10 15:49:15 +0000871}
872
Lev Walkina9cc46e2004-09-22 16:06:28 +0000873void
Lev Walkindfae9752004-09-29 13:19:37 +0000874T_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000875 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000876 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000877 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin906654e2004-09-10 15:49:15 +0000878}
879
880int
Lev Walkindfae9752004-09-29 13:19:37 +0000881T_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin906654e2004-09-10 15:49:15 +0000882 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000883 T_1_inherit_TYPE_descriptor(td);
Lev Walkin906654e2004-09-10 15:49:15 +0000884 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
885}
886
Lev Walkindc06f6b2004-10-20 15:50:55 +0000887asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000888T_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000889 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000890 T_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000891 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000892}
893
894asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000895T_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000896 void *structure, int tag_mode, ber_tlv_tag_t tag,
897 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000898 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000899 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
900}
901
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000902asn_dec_rval_t
903T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000904 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000905 T_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000906 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
907}
908
Lev Walkina9cc46e2004-09-22 16:06:28 +0000909asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000910T_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000911 int ilevel, enum xer_encoder_flags_e flags,
912 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000913 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000914 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin906654e2004-09-10 15:49:15 +0000915}
916
917
918/*** <<< STAT-DEFS [T] >>> ***/
919
Lev Walkina7591b52014-10-12 18:37:35 -0700920static const ber_tlv_tag_t asn_DEF_T_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000921 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
922 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
923 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
Lev Walkin906654e2004-09-10 15:49:15 +0000924};
Lev Walkindfae9752004-09-29 13:19:37 +0000925asn_TYPE_descriptor_t asn_DEF_T = {
Lev Walkin906654e2004-09-10 15:49:15 +0000926 "T",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000927 "T",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000928 T_free,
929 T_print,
Lev Walkin906654e2004-09-10 15:49:15 +0000930 T_constraint,
931 T_decode_ber,
932 T_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000933 T_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000934 T_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700935 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400936 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +0000937 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000938 asn_DEF_T_tags_1,
939 sizeof(asn_DEF_T_tags_1)
940 /sizeof(asn_DEF_T_tags_1[0]) - 2, /* 1 */
941 asn_DEF_T_tags_1, /* Same as above */
942 sizeof(asn_DEF_T_tags_1)
943 /sizeof(asn_DEF_T_tags_1[0]), /* 3 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400944 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000945 0, /* No PER visible constraints */
Lev Walkin906654e2004-09-10 15:49:15 +0000946 0, 0, /* Defined elsewhere */
947 0 /* No specifics */
948};
949
950
951/*** <<< INCLUDES [Ts] >>> ***/
952
Lev Walkin22b5ed42006-09-13 02:51:20 +0000953#include "T2.h"
954#include "T3.h"
Lev Walkin906654e2004-09-10 15:49:15 +0000955#include <constr_SEQUENCE.h>
956
Lev Walkin906654e2004-09-10 15:49:15 +0000957/*** <<< TYPE-DECLS [Ts] >>> ***/
958
Lev Walkin906654e2004-09-10 15:49:15 +0000959typedef struct Ts {
960 T2_t m1;
961 T3_t *m2 /* OPTIONAL */;
962 T3_t m3;
963
964 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000965 asn_struct_ctx_t _asn_ctx;
Lev Walkin906654e2004-09-10 15:49:15 +0000966} Ts_t;
967
Lev Walkinc8285712005-03-04 22:18:20 +0000968/*** <<< FUNC-DECLS [Ts] >>> ***/
969
970extern asn_TYPE_descriptor_t asn_DEF_Ts;
971
Lev Walkin906654e2004-09-10 15:49:15 +0000972/*** <<< STAT-DEFS [Ts] >>> ***/
973
Lev Walkine0272aa2005-03-04 11:26:08 +0000974static asn_TYPE_member_t asn_MBR_Ts_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000975 { ATF_NOFLAGS, 0, offsetof(struct Ts, m1),
976 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
977 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000978 .type = &asn_DEF_T2,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000979 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400980 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000981 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
982 .default_value = 0,
Lev Walkin906654e2004-09-10 15:49:15 +0000983 .name = "m1"
984 },
985 { ATF_POINTER, 1, offsetof(struct Ts, m2),
986 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
987 .tag_mode = +1, /* EXPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000988 .type = &asn_DEF_T3,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000989 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +0400990 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +0000991 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
992 .default_value = 0,
Lev Walkin906654e2004-09-10 15:49:15 +0000993 .name = "m2"
994 },
995 { ATF_NOFLAGS, 0, offsetof(struct Ts, m3),
996 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
997 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000998 .type = &asn_DEF_T3,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000999 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +04001000 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +00001001 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
1002 .default_value = 0,
Lev Walkin906654e2004-09-10 15:49:15 +00001003 .name = "m3"
1004 },
1005};
Lev Walkina7591b52014-10-12 18:37:35 -07001006static const ber_tlv_tag_t asn_DEF_Ts_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +00001007 (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
1008 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
Lev Walkin906654e2004-09-10 15:49:15 +00001009};
Lev Walkina7591b52014-10-12 18:37:35 -07001010static const asn_TYPE_tag2member_t asn_MAP_Ts_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -07001011 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* m1 */
1012 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* m2 */
1013 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* m3 */
Lev Walkin906654e2004-09-10 15:49:15 +00001014};
Lev Walkin59b176e2005-11-26 11:25:14 +00001015static asn_SEQUENCE_specifics_t asn_SPC_Ts_specs_1 = {
Lev Walkin906654e2004-09-10 15:49:15 +00001016 sizeof(struct Ts),
Lev Walkindfae9752004-09-29 13:19:37 +00001017 offsetof(struct Ts, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +00001018 asn_MAP_Ts_tag2el_1,
Lev Walkin906654e2004-09-10 15:49:15 +00001019 3, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +00001020 0, 0, 0, /* Optional elements (not needed) */
Lev Walkin906654e2004-09-10 15:49:15 +00001021 -1, /* Start extensions */
1022 -1 /* Stop extensions */
1023};
Lev Walkindfae9752004-09-29 13:19:37 +00001024asn_TYPE_descriptor_t asn_DEF_Ts = {
Lev Walkin906654e2004-09-10 15:49:15 +00001025 "Ts",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001026 "Ts",
Lev Walkina9cc46e2004-09-22 16:06:28 +00001027 SEQUENCE_free,
1028 SEQUENCE_print,
Lev Walkin906654e2004-09-10 15:49:15 +00001029 SEQUENCE_constraint,
1030 SEQUENCE_decode_ber,
1031 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +00001032 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +00001033 SEQUENCE_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001034 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001035 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin906654e2004-09-10 15:49:15 +00001036 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001037 asn_DEF_Ts_tags_1,
1038 sizeof(asn_DEF_Ts_tags_1)
1039 /sizeof(asn_DEF_Ts_tags_1[0]) - 1, /* 1 */
1040 asn_DEF_Ts_tags_1, /* Same as above */
1041 sizeof(asn_DEF_Ts_tags_1)
1042 /sizeof(asn_DEF_Ts_tags_1[0]), /* 2 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001043 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001044 0, /* No PER visible constraints */
Lev Walkine0272aa2005-03-04 11:26:08 +00001045 asn_MBR_Ts_1,
Lev Walkin906654e2004-09-10 15:49:15 +00001046 3, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +00001047 &asn_SPC_Ts_specs_1 /* Additional specs */
Lev Walkin906654e2004-09-10 15:49:15 +00001048};
1049