blob: 694e259e4ddfef95fa2b84825de89b04ceb47bbe [file] [log] [blame]
Lev Walkin5bbff1e2004-06-28 21:13:22 +00001
Lev Walkinb47ddce2004-08-11 05:25:47 +00002/*** <<< INCLUDES [PrimitiveType] >>> ***/
Lev Walkin5bbff1e2004-06-28 21:13:22 +00003
4#include <OCTET_STRING.h>
5
6/*** <<< TYPE-DECLS [PrimitiveType] >>> ***/
7
Lev Walkin5bbff1e2004-06-28 21:13:22 +00008typedef OCTET_STRING_t PrimitiveType_t;
9
Lev Walkin5bbff1e2004-06-28 21:13:22 +000010/*** <<< FUNC-DECLS [PrimitiveType] >>> ***/
11
Lev Walkincaf0d5a2005-03-04 23:48:19 +000012extern asn_TYPE_descriptor_t asn_DEF_PrimitiveType;
13asn_struct_free_f PrimitiveType_free;
14asn_struct_print_f PrimitiveType_print;
15asn_constr_check_f PrimitiveType_constraint;
16ber_type_decoder_f PrimitiveType_decode_ber;
17der_type_encoder_f PrimitiveType_encode_der;
18xer_type_decoder_f PrimitiveType_decode_xer;
19xer_type_encoder_f PrimitiveType_encode_xer;
Lev Walkin5bbff1e2004-06-28 21:13:22 +000020
Lev Walkin2e3055d2004-08-20 13:36:32 +000021/*** <<< CODE [PrimitiveType] >>> ***/
22
Lev Walkincaf0d5a2005-03-04 23:48:19 +000023int
24PrimitiveType_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 Walkincaf0d5a2005-03-04 23:48:19 +000026 /* Replace with underlying type checker */
27 td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +000028 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkincaf0d5a2005-03-04 23:48:19 +000029}
30
31/*
32 * This type is implemented using OCTET_STRING,
33 * so here we adjust the DEF accordingly.
34 */
35static void
Lev Walkine8318b82005-03-06 09:29:03 +000036PrimitiveType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +000037 td->free_struct = asn_DEF_OCTET_STRING.free_struct;
38 td->print_struct = asn_DEF_OCTET_STRING.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -080039 td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +000040 td->ber_decoder = asn_DEF_OCTET_STRING.ber_decoder;
41 td->der_encoder = asn_DEF_OCTET_STRING.der_encoder;
42 td->xer_decoder = asn_DEF_OCTET_STRING.xer_decoder;
43 td->xer_encoder = asn_DEF_OCTET_STRING.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +000044 td->uper_decoder = asn_DEF_OCTET_STRING.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +000045 td->uper_encoder = asn_DEF_OCTET_STRING.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -070046 td->oer_decoder = asn_DEF_OCTET_STRING.oer_decoder;
47 td->oer_encoder = asn_DEF_OCTET_STRING.oer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +000048 if(!td->per_constraints)
49 td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
Lev Walkincaf0d5a2005-03-04 23:48:19 +000050 td->elements = asn_DEF_OCTET_STRING.elements;
51 td->elements_count = asn_DEF_OCTET_STRING.elements_count;
52 td->specifics = asn_DEF_OCTET_STRING.specifics;
53}
54
55void
56PrimitiveType_free(asn_TYPE_descriptor_t *td,
57 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +000058 PrimitiveType_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +000059 td->free_struct(td, struct_ptr, contents_only);
60}
61
62int
63PrimitiveType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
64 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +000065 PrimitiveType_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +000066 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
67}
68
69asn_dec_rval_t
70PrimitiveType_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 PrimitiveType_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +000073 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
74}
75
76asn_enc_rval_t
77PrimitiveType_encode_der(asn_TYPE_descriptor_t *td,
78 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 PrimitiveType_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +000081 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
82}
83
84asn_dec_rval_t
85PrimitiveType_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 PrimitiveType_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +000088 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
89}
90
91asn_enc_rval_t
92PrimitiveType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
93 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 PrimitiveType_1_inherit_TYPE_descriptor(td);
Lev Walkincaf0d5a2005-03-04 23:48:19 +000096 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
97}
98
99
100/*** <<< STAT-DEFS [PrimitiveType] >>> ***/
101
Lev Walkina7591b52014-10-12 18:37:35 -0700102static const ber_tlv_tag_t asn_DEF_PrimitiveType_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000103 (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
104};
105asn_TYPE_descriptor_t asn_DEF_PrimitiveType = {
106 "PrimitiveType",
107 "PrimitiveType",
108 PrimitiveType_free,
109 PrimitiveType_print,
110 PrimitiveType_constraint,
111 PrimitiveType_decode_ber,
112 PrimitiveType_encode_der,
113 PrimitiveType_decode_xer,
114 PrimitiveType_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000115 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700116 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000117 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000118 asn_DEF_PrimitiveType_tags_1,
119 sizeof(asn_DEF_PrimitiveType_tags_1)
120 /sizeof(asn_DEF_PrimitiveType_tags_1[0]), /* 1 */
121 asn_DEF_PrimitiveType_tags_1, /* Same as above */
122 sizeof(asn_DEF_PrimitiveType_tags_1)
123 /sizeof(asn_DEF_PrimitiveType_tags_1[0]), /* 1 */
124 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000125 0, 0, /* No members */
126 0 /* No specifics */
127};
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000128
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000129
Lev Walkinb47ddce2004-08-11 05:25:47 +0000130/*** <<< INCLUDES [ConstructedType] >>> ***/
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000131
Lev Walkin22b5ed42006-09-13 02:51:20 +0000132#include "PrimitiveType.h"
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000133#include <constr_SEQUENCE.h>
134
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000135/*** <<< TYPE-DECLS [ConstructedType] >>> ***/
136
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000137typedef struct ConstructedType {
138 PrimitiveType_t field;
139
140 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000141 asn_struct_ctx_t _asn_ctx;
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000142} ConstructedType_t;
143
Lev Walkinc8285712005-03-04 22:18:20 +0000144/*** <<< FUNC-DECLS [ConstructedType] >>> ***/
145
146extern asn_TYPE_descriptor_t asn_DEF_ConstructedType;
147
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000148/*** <<< STAT-DEFS [ConstructedType] >>> ***/
149
Lev Walkine0272aa2005-03-04 11:26:08 +0000150static asn_TYPE_member_t asn_MBR_ConstructedType_1[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000151 { ATF_NOFLAGS, 0, offsetof(struct ConstructedType, field),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000152 .tag = (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
153 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkinae7bf3f2005-08-29 10:31:14 +0000154 .type = &asn_DEF_PrimitiveType,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000155 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin59b176e2005-11-26 11:25:14 +0000156 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
157 .default_value = 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000158 .name = "field"
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000159 },
160};
Lev Walkina7591b52014-10-12 18:37:35 -0700161static const ber_tlv_tag_t asn_DEF_ConstructedType_tags_1[] = {
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000162 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
163};
Lev Walkina7591b52014-10-12 18:37:35 -0700164static const asn_TYPE_tag2member_t asn_MAP_ConstructedType_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -0700165 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 0, 0, 0 } /* field */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000166};
Lev Walkin59b176e2005-11-26 11:25:14 +0000167static asn_SEQUENCE_specifics_t asn_SPC_ConstructedType_specs_1 = {
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000168 sizeof(struct ConstructedType),
Lev Walkindfae9752004-09-29 13:19:37 +0000169 offsetof(struct ConstructedType, _asn_ctx),
Lev Walkin59b176e2005-11-26 11:25:14 +0000170 asn_MAP_ConstructedType_tag2el_1,
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000171 1, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +0000172 0, 0, 0, /* Optional elements (not needed) */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000173 -1, /* Start extensions */
174 -1 /* Stop extensions */
175};
Lev Walkindfae9752004-09-29 13:19:37 +0000176asn_TYPE_descriptor_t asn_DEF_ConstructedType = {
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000177 "ConstructedType",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000178 "ConstructedType",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000179 SEQUENCE_free,
180 SEQUENCE_print,
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000181 SEQUENCE_constraint,
182 SEQUENCE_decode_ber,
183 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000184 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000185 SEQUENCE_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000186 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700187 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000188 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000189 asn_DEF_ConstructedType_tags_1,
190 sizeof(asn_DEF_ConstructedType_tags_1)
191 /sizeof(asn_DEF_ConstructedType_tags_1[0]), /* 1 */
192 asn_DEF_ConstructedType_tags_1, /* Same as above */
193 sizeof(asn_DEF_ConstructedType_tags_1)
194 /sizeof(asn_DEF_ConstructedType_tags_1[0]), /* 1 */
195 0, /* No PER visible constraints */
Lev Walkine0272aa2005-03-04 11:26:08 +0000196 asn_MBR_ConstructedType_1,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000197 1, /* Elements count */
Lev Walkin59b176e2005-11-26 11:25:14 +0000198 &asn_SPC_ConstructedType_specs_1 /* Additional specs */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000199};
200
201
Lev Walkinb47ddce2004-08-11 05:25:47 +0000202/*** <<< INCLUDES [T] >>> ***/
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000203
Lev Walkin22b5ed42006-09-13 02:51:20 +0000204#include "ConstructedType.h"
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000205
206/*** <<< TYPE-DECLS [T] >>> ***/
207
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000208typedef ConstructedType_t T_t;
209
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000210/*** <<< FUNC-DECLS [T] >>> ***/
211
Lev Walkindfae9752004-09-29 13:19:37 +0000212extern asn_TYPE_descriptor_t asn_DEF_T;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000213asn_struct_free_f T_free;
214asn_struct_print_f T_print;
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000215asn_constr_check_f T_constraint;
216ber_type_decoder_f T_decode_ber;
217der_type_encoder_f T_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000218xer_type_decoder_f T_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000219xer_type_encoder_f T_encode_xer;
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000220
Lev Walkin2e3055d2004-08-20 13:36:32 +0000221/*** <<< CODE [T] >>> ***/
222
223int
Lev Walkindfae9752004-09-29 13:19:37 +0000224T_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000225 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin154aa182004-09-26 13:12:56 +0000226 /* Replace with underlying type checker */
Lev Walkindfae9752004-09-29 13:19:37 +0000227 td->check_constraints = asn_DEF_ConstructedType.check_constraints;
Lev Walkin1eded352006-07-13 11:19:01 +0000228 return td->check_constraints(td, sptr, ctfailcb, app_key);
Lev Walkin2e3055d2004-08-20 13:36:32 +0000229}
230
231/*
232 * This type is implemented using ConstructedType,
Lev Walkinc3808c12004-09-23 22:14:58 +0000233 * so here we adjust the DEF accordingly.
Lev Walkin2e3055d2004-08-20 13:36:32 +0000234 */
235static void
Lev Walkine8318b82005-03-06 09:29:03 +0000236T_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
Lev Walkindfae9752004-09-29 13:19:37 +0000237 td->free_struct = asn_DEF_ConstructedType.free_struct;
238 td->print_struct = asn_DEF_ConstructedType.print_struct;
Lev Walkin6169b8d2013-12-07 11:02:44 -0800239 td->check_constraints = asn_DEF_ConstructedType.check_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000240 td->ber_decoder = asn_DEF_ConstructedType.ber_decoder;
241 td->der_encoder = asn_DEF_ConstructedType.der_encoder;
242 td->xer_decoder = asn_DEF_ConstructedType.xer_decoder;
243 td->xer_encoder = asn_DEF_ConstructedType.xer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000244 td->uper_decoder = asn_DEF_ConstructedType.uper_decoder;
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000245 td->uper_encoder = asn_DEF_ConstructedType.uper_encoder;
Lev Walkinba68c912017-07-06 07:52:39 -0700246 td->oer_decoder = asn_DEF_ConstructedType.oer_decoder;
247 td->oer_encoder = asn_DEF_ConstructedType.oer_encoder;
Lev Walkin59b176e2005-11-26 11:25:14 +0000248 if(!td->per_constraints)
249 td->per_constraints = asn_DEF_ConstructedType.per_constraints;
Lev Walkindfae9752004-09-29 13:19:37 +0000250 td->elements = asn_DEF_ConstructedType.elements;
251 td->elements_count = asn_DEF_ConstructedType.elements_count;
252 td->specifics = asn_DEF_ConstructedType.specifics;
Lev Walkin2e3055d2004-08-20 13:36:32 +0000253}
254
Lev Walkina9cc46e2004-09-22 16:06:28 +0000255void
Lev Walkindfae9752004-09-29 13:19:37 +0000256T_free(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000257 void *struct_ptr, int contents_only) {
Lev Walkine8318b82005-03-06 09:29:03 +0000258 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000259 td->free_struct(td, struct_ptr, contents_only);
Lev Walkin2e3055d2004-08-20 13:36:32 +0000260}
261
262int
Lev Walkindfae9752004-09-29 13:19:37 +0000263T_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000264 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000265 T_1_inherit_TYPE_descriptor(td);
Lev Walkin2e3055d2004-08-20 13:36:32 +0000266 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
267}
268
Lev Walkindc06f6b2004-10-20 15:50:55 +0000269asn_dec_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000270T_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000271 void **structure, const void *bufptr, size_t size, int tag_mode) {
Lev Walkine8318b82005-03-06 09:29:03 +0000272 T_1_inherit_TYPE_descriptor(td);
Lev Walkindfae9752004-09-29 13:19:37 +0000273 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000274}
275
276asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000277T_encode_der(asn_TYPE_descriptor_t *td,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000278 void *structure, int tag_mode, ber_tlv_tag_t tag,
279 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000280 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000281 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
282}
283
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000284asn_dec_rval_t
285T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
Lev Walkin3ebc65a2005-03-17 21:57:19 +0000286 void **structure, const char *opt_mname, const void *bufptr, size_t size) {
Lev Walkine8318b82005-03-06 09:29:03 +0000287 T_1_inherit_TYPE_descriptor(td);
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000288 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
289}
290
Lev Walkina9cc46e2004-09-22 16:06:28 +0000291asn_enc_rval_t
Lev Walkindfae9752004-09-29 13:19:37 +0000292T_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000293 int ilevel, enum xer_encoder_flags_e flags,
294 asn_app_consume_bytes_f *cb, void *app_key) {
Lev Walkine8318b82005-03-06 09:29:03 +0000295 T_1_inherit_TYPE_descriptor(td);
Lev Walkina9cc46e2004-09-22 16:06:28 +0000296 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
Lev Walkin2e3055d2004-08-20 13:36:32 +0000297}
298
299
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000300/*** <<< STAT-DEFS [T] >>> ***/
301
Lev Walkina7591b52014-10-12 18:37:35 -0700302static const ber_tlv_tag_t asn_DEF_T_tags_1[] = {
Lev Walkin188ed2c2004-09-13 08:31:01 +0000303 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
304 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000305};
Lev Walkindfae9752004-09-29 13:19:37 +0000306asn_TYPE_descriptor_t asn_DEF_T = {
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000307 "T",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000308 "T",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000309 T_free,
310 T_print,
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000311 T_constraint,
312 T_decode_ber,
313 T_encode_der,
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000314 T_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000315 T_encode_xer,
Lev Walkin9f5bb3a2006-08-18 01:46:46 +0000316 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkinba68c912017-07-06 07:52:39 -0700317 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000318 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000319 asn_DEF_T_tags_1,
320 sizeof(asn_DEF_T_tags_1)
321 /sizeof(asn_DEF_T_tags_1[0]) - 1, /* 1 */
322 asn_DEF_T_tags_1, /* Same as above */
323 sizeof(asn_DEF_T_tags_1)
324 /sizeof(asn_DEF_T_tags_1[0]), /* 2 */
325 0, /* No PER visible constraints */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000326 0, 0, /* Defined elsewhere */
Lev Walkin5bbff1e2004-06-28 21:13:22 +0000327 0 /* No specifics */
328};
329