blob: b8f9f598f3ac85f0ace3d8e3b76b0f467192453b [file] [log] [blame]
vlmfa67ddc2004-06-03 03:38:44 +00001
vlmeb2157b2004-08-11 05:22:22 +00002/*** <<< INCLUDES [T] >>> ***/
vlmfa67ddc2004-06-03 03:38:44 +00003
vlmfa67ddc2004-06-03 03:38:44 +00004#include <INTEGER.h>
vlmfa67ddc2004-06-03 03:38:44 +00005#include <T2.h>
6#include <asn_SEQUENCE_OF.h>
vlmeb2157b2004-08-11 05:22:22 +00007#include <constr_SEQUENCE_OF.h>
vlmfa67ddc2004-06-03 03:38:44 +00008#include <constr_SEQUENCE.h>
9
vlmeb2157b2004-08-11 05:22:22 +000010/*** <<< DEPS [T] >>> ***/
11
vlmfa67ddc2004-06-03 03:38:44 +000012extern asn1_TYPE_descriptor_t asn1_DEF_T;
13
14/*** <<< TYPE-DECLS [T] >>> ***/
15
16
17typedef struct T {
18 INTEGER_t int;
19 struct collection {
vlmb47f48e2004-09-17 06:32:12 +000020 A_SEQUENCE_OF(T2_t) list;
vlmfa67ddc2004-06-03 03:38:44 +000021
22 /* Context for parsing across buffer boundaries */
23 ber_dec_ctx_t _ber_dec_ctx;
24 } collection;
25
26 /* Context for parsing across buffer boundaries */
27 ber_dec_ctx_t _ber_dec_ctx;
28} T_t;
29
30/*** <<< STAT-DEFS [T] >>> ***/
31
vlm21e46002004-08-20 13:36:32 +000032static asn1_TYPE_member_t asn1_MBR_collection[] = {
vlmddd5a7d2004-09-10 09:18:20 +000033 { ATF_NOFLAGS, 0, 0,
vlm21e46002004-08-20 13:36:32 +000034 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
35 .tag_mode = 0,
36 .type = (void *)&asn1_DEF_T2,
37 .memb_constraints = 0, /* Defer to actual type */
38 .name = ""
vlmfa67ddc2004-06-03 03:38:44 +000039 },
vlm21e46002004-08-20 13:36:32 +000040};
41static ber_tlv_tag_t asn1_DEF_collection_tags[] = {
42 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
43};
44static asn1_SET_OF_specifics_t asn1_DEF_collection_specs = {
45 sizeof(struct collection),
46 offsetof(struct collection, _ber_dec_ctx),
vlm39ba4c42004-09-22 16:06:28 +000047 0, /* XER encoding is XMLDelimitedItemList */
vlm21e46002004-08-20 13:36:32 +000048};
vlm1dc848e2004-09-07 06:44:29 +000049static /* Use -fall-defs-global to expose */
vlm21e46002004-08-20 13:36:32 +000050asn1_TYPE_descriptor_t asn1_DEF_collection = {
51 "collection",
vlm39ba4c42004-09-22 16:06:28 +000052 SEQUENCE_OF_free,
53 SEQUENCE_OF_print,
vlm21e46002004-08-20 13:36:32 +000054 SEQUENCE_OF_constraint,
55 SEQUENCE_OF_decode_ber,
56 SEQUENCE_OF_encode_der,
vlm39ba4c42004-09-22 16:06:28 +000057 0, /* Not implemented yet */
58 SEQUENCE_OF_encode_xer,
vlm21e46002004-08-20 13:36:32 +000059 0, /* Use generic outmost tag fetcher */
60 asn1_DEF_collection_tags,
61 sizeof(asn1_DEF_collection_tags)
62 /sizeof(asn1_DEF_collection_tags[0]), /* 1 */
vlm72425de2004-09-13 08:31:01 +000063 asn1_DEF_collection_tags, /* Same as above */
64 sizeof(asn1_DEF_collection_tags)
65 /sizeof(asn1_DEF_collection_tags[0]), /* 1 */
vlm21e46002004-08-20 13:36:32 +000066 asn1_MBR_collection,
67 1, /* Single element */
68 &asn1_DEF_collection_specs /* Additional specs */
69};
70
71static asn1_TYPE_member_t asn1_MBR_T[] = {
vlmddd5a7d2004-09-10 09:18:20 +000072 { ATF_NOFLAGS, 0, offsetof(struct T, int),
vlm21e46002004-08-20 13:36:32 +000073 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
74 .tag_mode = 0,
75 .type = (void *)&asn1_DEF_INTEGER,
76 .memb_constraints = 0, /* Defer to actual type */
77 .name = "int"
78 },
vlmddd5a7d2004-09-10 09:18:20 +000079 { ATF_NOFLAGS, 0, offsetof(struct T, collection),
vlm21e46002004-08-20 13:36:32 +000080 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
81 .tag_mode = 0,
82 .type = (void *)&asn1_DEF_collection,
83 .memb_constraints = 0, /* Defer to actual type */
84 .name = "collection"
vlmfa67ddc2004-06-03 03:38:44 +000085 },
86};
87static ber_tlv_tag_t asn1_DEF_T_tags[] = {
88 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
89};
vlm35efd1b2004-06-06 07:20:52 +000090static asn1_TYPE_tag2member_t asn1_DEF_T_tag2el[] = {
vlmc8aeab42004-06-14 13:09:45 +000091 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* int at 15 */
92 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* collection at 17 */
vlm35efd1b2004-06-06 07:20:52 +000093};
vlmfa67ddc2004-06-03 03:38:44 +000094static asn1_SEQUENCE_specifics_t asn1_DEF_T_specs = {
95 sizeof(struct T),
96 offsetof(struct T, _ber_dec_ctx),
vlm35efd1b2004-06-06 07:20:52 +000097 asn1_DEF_T_tag2el,
98 2, /* Count of tags in the map */
vlmfa67ddc2004-06-03 03:38:44 +000099 -1, /* Start extensions */
100 -1 /* Stop extensions */
101};
102asn1_TYPE_descriptor_t asn1_DEF_T = {
103 "T",
vlm39ba4c42004-09-22 16:06:28 +0000104 SEQUENCE_free,
105 SEQUENCE_print,
vlmfa67ddc2004-06-03 03:38:44 +0000106 SEQUENCE_constraint,
107 SEQUENCE_decode_ber,
108 SEQUENCE_encode_der,
vlm39ba4c42004-09-22 16:06:28 +0000109 0, /* Not implemented yet */
110 SEQUENCE_encode_xer,
vlmfa67ddc2004-06-03 03:38:44 +0000111 0, /* Use generic outmost tag fetcher */
112 asn1_DEF_T_tags,
113 sizeof(asn1_DEF_T_tags)
vlm6e73a042004-08-11 07:17:22 +0000114 /sizeof(asn1_DEF_T_tags[0]), /* 1 */
vlm72425de2004-09-13 08:31:01 +0000115 asn1_DEF_T_tags, /* Same as above */
116 sizeof(asn1_DEF_T_tags)
117 /sizeof(asn1_DEF_T_tags[0]), /* 1 */
vlm21e46002004-08-20 13:36:32 +0000118 asn1_MBR_T,
119 2, /* Elements count */
vlmfa67ddc2004-06-03 03:38:44 +0000120 &asn1_DEF_T_specs /* Additional specs */
121};
122
123
vlmeb2157b2004-08-11 05:22:22 +0000124/*** <<< INCLUDES [T2] >>> ***/
vlmfa67ddc2004-06-03 03:38:44 +0000125
vlmfa67ddc2004-06-03 03:38:44 +0000126#include <BOOLEAN.h>
127#include <UTF8String.h>
vlmfa67ddc2004-06-03 03:38:44 +0000128#include <constr_SEQUENCE.h>
129
vlmeb2157b2004-08-11 05:22:22 +0000130/*** <<< DEPS [T2] >>> ***/
131
vlmfa67ddc2004-06-03 03:38:44 +0000132extern asn1_TYPE_descriptor_t asn1_DEF_T2;
133
134/*** <<< TYPE-DECLS [T2] >>> ***/
135
136
137typedef struct T2 {
138 BOOLEAN_t flag;
139 UTF8String_t str;
140
141 /* Context for parsing across buffer boundaries */
142 ber_dec_ctx_t _ber_dec_ctx;
143} T2_t;
144
145/*** <<< STAT-DEFS [T2] >>> ***/
146
vlm21e46002004-08-20 13:36:32 +0000147static asn1_TYPE_member_t asn1_MBR_T2[] = {
vlmddd5a7d2004-09-10 09:18:20 +0000148 { ATF_NOFLAGS, 0, offsetof(struct T2, flag),
vlm21e46002004-08-20 13:36:32 +0000149 .tag = (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
150 .tag_mode = 0,
151 .type = (void *)&asn1_DEF_BOOLEAN,
152 .memb_constraints = 0, /* Defer to actual type */
153 .name = "flag"
vlmfa67ddc2004-06-03 03:38:44 +0000154 },
vlmddd5a7d2004-09-10 09:18:20 +0000155 { ATF_NOFLAGS, 0, offsetof(struct T2, str),
vlm21e46002004-08-20 13:36:32 +0000156 .tag = (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)),
157 .tag_mode = 0,
158 .type = (void *)&asn1_DEF_UTF8String,
159 .memb_constraints = 0, /* Defer to actual type */
160 .name = "str"
vlmfa67ddc2004-06-03 03:38:44 +0000161 },
162};
163static ber_tlv_tag_t asn1_DEF_T2_tags[] = {
164 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
165};
vlm35efd1b2004-06-06 07:20:52 +0000166static asn1_TYPE_tag2member_t asn1_DEF_T2_tag2el[] = {
vlmc8aeab42004-06-14 13:09:45 +0000167 { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 0, 0, 0 }, /* flag at 20 */
168 { (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)), 1, 0, 0 }, /* str at 21 */
vlm35efd1b2004-06-06 07:20:52 +0000169};
vlmfa67ddc2004-06-03 03:38:44 +0000170static asn1_SEQUENCE_specifics_t asn1_DEF_T2_specs = {
171 sizeof(struct T2),
172 offsetof(struct T2, _ber_dec_ctx),
vlm35efd1b2004-06-06 07:20:52 +0000173 asn1_DEF_T2_tag2el,
174 2, /* Count of tags in the map */
vlmfa67ddc2004-06-03 03:38:44 +0000175 -1, /* Start extensions */
176 -1 /* Stop extensions */
177};
178asn1_TYPE_descriptor_t asn1_DEF_T2 = {
179 "T2",
vlm39ba4c42004-09-22 16:06:28 +0000180 SEQUENCE_free,
181 SEQUENCE_print,
vlmfa67ddc2004-06-03 03:38:44 +0000182 SEQUENCE_constraint,
183 SEQUENCE_decode_ber,
184 SEQUENCE_encode_der,
vlm39ba4c42004-09-22 16:06:28 +0000185 0, /* Not implemented yet */
186 SEQUENCE_encode_xer,
vlmfa67ddc2004-06-03 03:38:44 +0000187 0, /* Use generic outmost tag fetcher */
188 asn1_DEF_T2_tags,
189 sizeof(asn1_DEF_T2_tags)
vlm6e73a042004-08-11 07:17:22 +0000190 /sizeof(asn1_DEF_T2_tags[0]), /* 1 */
vlm72425de2004-09-13 08:31:01 +0000191 asn1_DEF_T2_tags, /* Same as above */
192 sizeof(asn1_DEF_T2_tags)
193 /sizeof(asn1_DEF_T2_tags[0]), /* 1 */
vlm21e46002004-08-20 13:36:32 +0000194 asn1_MBR_T2,
195 2, /* Elements count */
vlmfa67ddc2004-06-03 03:38:44 +0000196 &asn1_DEF_T2_specs /* Additional specs */
197};
198