blob: 06729eab81d6438590c1eebd4f047a6371c67d07 [file] [log] [blame]
Lev Walkinf15320b2004-06-03 03:38:44 +00001
Lev Walkinb47ddce2004-08-11 05:25:47 +00002/*** <<< INCLUDES [LogLine] >>> ***/
Lev Walkinf15320b2004-06-03 03:38:44 +00003
Lev Walkinf15320b2004-06-03 03:38:44 +00004#include <IA5String.h>
Lev Walkinf15320b2004-06-03 03:38:44 +00005#include <VariablePartSet.h>
6#include <asn_SEQUENCE_OF.h>
Lev Walkinb47ddce2004-08-11 05:25:47 +00007#include <constr_SEQUENCE_OF.h>
Lev Walkinf15320b2004-06-03 03:38:44 +00008#include <constr_SEQUENCE.h>
9
Lev Walkinb47ddce2004-08-11 05:25:47 +000010/*** <<< DEPS [LogLine] >>> ***/
11
Lev Walkindfae9752004-09-29 13:19:37 +000012extern asn_TYPE_descriptor_t asn_DEF_LogLine;
Lev Walkinf15320b2004-06-03 03:38:44 +000013
14/*** <<< TYPE-DECLS [LogLine] >>> ***/
15
16
17typedef struct LogLine {
18 IA5String_t line_digest;
19 struct varsets {
Lev Walkin8dd0eed2004-09-17 06:32:12 +000020 A_SEQUENCE_OF(VariablePartSet_t) list;
Lev Walkinf15320b2004-06-03 03:38:44 +000021
22 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +000023 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +000024 } varsets;
25 /*
26 * This type is extensible,
27 * possible extensions are below.
28 */
29
30 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +000031 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +000032} LogLine_t;
33
Lev Walkin2e3055d2004-08-20 13:36:32 +000034/*** <<< CODE [LogLine] >>> ***/
35
36static int
Lev Walkindfae9752004-09-29 13:19:37 +000037memb_varsets_1_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin2e3055d2004-08-20 13:36:32 +000038 asn_app_consume_bytes_f *app_errlog, void *app_key) {
39 size_t size;
40
41 if(!sptr) {
42 _ASN_ERRLOG(app_errlog, app_key,
Lev Walkin16835b62004-08-22 13:47:59 +000043 "%s: value not given (%s:%d)",
44 td->name, __FILE__, __LINE__);
Lev Walkin2e3055d2004-08-20 13:36:32 +000045 return -1;
46 }
47
48 { /* Determine the number of elements */
49 const A_SEQUENCE_OF(void) *list;
Lev Walkin64d99e92005-01-30 18:34:07 +000050 (const void *)list = sptr;
Lev Walkin2e3055d2004-08-20 13:36:32 +000051 size = list->count;
52 }
53
54 if((size >= 1)) {
55 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +000056 return 0;
Lev Walkin2e3055d2004-08-20 13:36:32 +000057 } else {
58 _ASN_ERRLOG(app_errlog, app_key,
Lev Walkin16835b62004-08-22 13:47:59 +000059 "%s: constraint failed (%s:%d)",
60 td->name, __FILE__, __LINE__);
Lev Walkin2e3055d2004-08-20 13:36:32 +000061 return -1;
62 }
63}
64
65
Lev Walkinf15320b2004-06-03 03:38:44 +000066/*** <<< STAT-DEFS [LogLine] >>> ***/
67
Lev Walkindfae9752004-09-29 13:19:37 +000068static asn_TYPE_member_t asn_MBR_varsets[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +000069 { ATF_NOFLAGS, 0, 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +000070 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
71 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +000072 .type = (void *)&asn_DEF_VariablePartSet,
Lev Walkinba58e1b2005-01-17 12:20:19 +000073 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +000074 .name = ""
Lev Walkinf15320b2004-06-03 03:38:44 +000075 },
Lev Walkin2e3055d2004-08-20 13:36:32 +000076};
Lev Walkindfae9752004-09-29 13:19:37 +000077static ber_tlv_tag_t asn_DEF_varsets_tags[] = {
Lev Walkin2e3055d2004-08-20 13:36:32 +000078 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
79};
Lev Walkindfae9752004-09-29 13:19:37 +000080static asn_SET_OF_specifics_t asn_DEF_varsets_specs = {
Lev Walkin2e3055d2004-08-20 13:36:32 +000081 sizeof(struct varsets),
Lev Walkindfae9752004-09-29 13:19:37 +000082 offsetof(struct varsets, _asn_ctx),
Lev Walkina9cc46e2004-09-22 16:06:28 +000083 0, /* XER encoding is XMLDelimitedItemList */
Lev Walkin2e3055d2004-08-20 13:36:32 +000084};
Lev Walkind04430c2004-09-07 06:44:29 +000085static /* Use -fall-defs-global to expose */
Lev Walkindfae9752004-09-29 13:19:37 +000086asn_TYPE_descriptor_t asn_DEF_varsets = {
Lev Walkin2e3055d2004-08-20 13:36:32 +000087 "varsets",
Lev Walkindc06f6b2004-10-20 15:50:55 +000088 "varsets",
Lev Walkina9cc46e2004-09-22 16:06:28 +000089 SEQUENCE_OF_free,
90 SEQUENCE_OF_print,
Lev Walkin2e3055d2004-08-20 13:36:32 +000091 SEQUENCE_OF_constraint,
92 SEQUENCE_OF_decode_ber,
93 SEQUENCE_OF_encode_der,
Lev Walkinb2230802005-02-14 20:31:31 +000094 SEQUENCE_OF_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +000095 SEQUENCE_OF_encode_xer,
Lev Walkin2e3055d2004-08-20 13:36:32 +000096 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +000097 asn_DEF_varsets_tags,
98 sizeof(asn_DEF_varsets_tags)
99 /sizeof(asn_DEF_varsets_tags[0]), /* 1 */
100 asn_DEF_varsets_tags, /* Same as above */
101 sizeof(asn_DEF_varsets_tags)
102 /sizeof(asn_DEF_varsets_tags[0]), /* 1 */
103 asn_MBR_varsets,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000104 1, /* Single element */
Lev Walkindfae9752004-09-29 13:19:37 +0000105 &asn_DEF_varsets_specs /* Additional specs */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000106};
107
Lev Walkindfae9752004-09-29 13:19:37 +0000108static asn_TYPE_member_t asn_MBR_LogLine[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000109 { ATF_NOFLAGS, 0, offsetof(struct LogLine, line_digest),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000110 .tag = (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)),
111 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000112 .type = (void *)&asn_DEF_IA5String,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000113 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000114 .name = "line-digest"
115 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000116 { ATF_NOFLAGS, 0, offsetof(struct LogLine, varsets),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000117 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
118 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000119 .type = (void *)&asn_DEF_varsets,
Lev Walkina09e5da2004-08-22 03:19:00 +0000120 .memb_constraints = memb_varsets_1_constraint,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000121 .name = "varsets"
Lev Walkinf15320b2004-06-03 03:38:44 +0000122 },
123};
Lev Walkindfae9752004-09-29 13:19:37 +0000124static ber_tlv_tag_t asn_DEF_LogLine_tags[] = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000125 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
126};
Lev Walkindfae9752004-09-29 13:19:37 +0000127static asn_TYPE_tag2member_t asn_DEF_LogLine_tag2el[] = {
Lev Walkin38abe792004-06-14 13:09:45 +0000128 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* varsets at 25 */
Lev Walkinbbe38662005-02-25 08:17:56 +0000129 { (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)), 0, 0, 0 } /* line-digest at 23 */
Lev Walkincda6b8a2004-06-06 07:20:52 +0000130};
Lev Walkindfae9752004-09-29 13:19:37 +0000131static asn_SEQUENCE_specifics_t asn_DEF_LogLine_specs = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000132 sizeof(struct LogLine),
Lev Walkindfae9752004-09-29 13:19:37 +0000133 offsetof(struct LogLine, _asn_ctx),
134 asn_DEF_LogLine_tag2el,
Lev Walkincda6b8a2004-06-06 07:20:52 +0000135 2, /* Count of tags in the map */
Lev Walkinf15320b2004-06-03 03:38:44 +0000136 1, /* Start extensions */
137 3 /* Stop extensions */
138};
Lev Walkindfae9752004-09-29 13:19:37 +0000139asn_TYPE_descriptor_t asn_DEF_LogLine = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000140 "LogLine",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000141 "LogLine",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000142 SEQUENCE_free,
143 SEQUENCE_print,
Lev Walkinf15320b2004-06-03 03:38:44 +0000144 SEQUENCE_constraint,
145 SEQUENCE_decode_ber,
146 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000147 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000148 SEQUENCE_encode_xer,
Lev Walkinf15320b2004-06-03 03:38:44 +0000149 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000150 asn_DEF_LogLine_tags,
151 sizeof(asn_DEF_LogLine_tags)
152 /sizeof(asn_DEF_LogLine_tags[0]), /* 1 */
153 asn_DEF_LogLine_tags, /* Same as above */
154 sizeof(asn_DEF_LogLine_tags)
155 /sizeof(asn_DEF_LogLine_tags[0]), /* 1 */
156 asn_MBR_LogLine,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000157 2, /* Elements count */
Lev Walkindfae9752004-09-29 13:19:37 +0000158 &asn_DEF_LogLine_specs /* Additional specs */
Lev Walkinf15320b2004-06-03 03:38:44 +0000159};
160
161
Lev Walkinb47ddce2004-08-11 05:25:47 +0000162/*** <<< INCLUDES [VariablePartSet] >>> ***/
Lev Walkinf15320b2004-06-03 03:38:44 +0000163
Lev Walkinf15320b2004-06-03 03:38:44 +0000164#include <ActionItem.h>
Lev Walkinf15320b2004-06-03 03:38:44 +0000165#include <VariablePart.h>
166#include <asn_SEQUENCE_OF.h>
Lev Walkinb47ddce2004-08-11 05:25:47 +0000167#include <constr_SEQUENCE_OF.h>
Lev Walkinf15320b2004-06-03 03:38:44 +0000168#include <constr_SEQUENCE.h>
169
Lev Walkinb47ddce2004-08-11 05:25:47 +0000170/*** <<< DEPS [VariablePartSet] >>> ***/
171
Lev Walkindfae9752004-09-29 13:19:37 +0000172extern asn_TYPE_descriptor_t asn_DEF_VariablePartSet;
Lev Walkinf15320b2004-06-03 03:38:44 +0000173
174/*** <<< TYPE-DECLS [VariablePartSet] >>> ***/
175
176
177typedef struct VariablePartSet {
178 struct vparts {
Lev Walkin8dd0eed2004-09-17 06:32:12 +0000179 A_SEQUENCE_OF(VariablePart_t) list;
Lev Walkinf15320b2004-06-03 03:38:44 +0000180
181 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000182 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +0000183 } vparts;
184 ActionItem_t resolution;
185 /*
186 * This type is extensible,
187 * possible extensions are below.
188 */
189
190 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000191 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +0000192} VariablePartSet_t;
193
Lev Walkin2e3055d2004-08-20 13:36:32 +0000194/*** <<< CODE [VariablePartSet] >>> ***/
195
196static int
Lev Walkindfae9752004-09-29 13:19:37 +0000197memb_vparts_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000198 asn_app_consume_bytes_f *app_errlog, void *app_key) {
199
200 if(!sptr) {
201 _ASN_ERRLOG(app_errlog, app_key,
Lev Walkin16835b62004-08-22 13:47:59 +0000202 "%s: value not given (%s:%d)",
203 td->name, __FILE__, __LINE__);
Lev Walkin2e3055d2004-08-20 13:36:32 +0000204 return -1;
205 }
206
207
208 if(1 /* No applicable constraints whatsoever */) {
209 /* Nothing is here. See below */
210 }
211
Lev Walkin154aa182004-09-26 13:12:56 +0000212 return td->check_constraints(td, sptr, app_errlog, app_key);
Lev Walkin2e3055d2004-08-20 13:36:32 +0000213}
214
215
Lev Walkinf15320b2004-06-03 03:38:44 +0000216/*** <<< STAT-DEFS [VariablePartSet] >>> ***/
217
Lev Walkindfae9752004-09-29 13:19:37 +0000218static asn_TYPE_member_t asn_MBR_vparts[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000219 { ATF_NOFLAGS, 0, 0,
Lev Walkinb9189732004-09-10 09:37:12 +0000220 .tag = -1 /* Ambiguous tag (CHOICE?) */,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000221 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000222 .type = (void *)&asn_DEF_VariablePart,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000223 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000224 .name = ""
Lev Walkinf15320b2004-06-03 03:38:44 +0000225 },
Lev Walkin2e3055d2004-08-20 13:36:32 +0000226};
Lev Walkindfae9752004-09-29 13:19:37 +0000227static ber_tlv_tag_t asn_DEF_vparts_tags[] = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000228 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
229};
Lev Walkindfae9752004-09-29 13:19:37 +0000230static asn_SET_OF_specifics_t asn_DEF_vparts_specs = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000231 sizeof(struct vparts),
Lev Walkindfae9752004-09-29 13:19:37 +0000232 offsetof(struct vparts, _asn_ctx),
Lev Walkina9cc46e2004-09-22 16:06:28 +0000233 1, /* XER encoding is XMLValueList */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000234};
Lev Walkind04430c2004-09-07 06:44:29 +0000235static /* Use -fall-defs-global to expose */
Lev Walkindfae9752004-09-29 13:19:37 +0000236asn_TYPE_descriptor_t asn_DEF_vparts = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000237 "vparts",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000238 "vparts",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000239 SEQUENCE_OF_free,
240 SEQUENCE_OF_print,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000241 SEQUENCE_OF_constraint,
242 SEQUENCE_OF_decode_ber,
243 SEQUENCE_OF_encode_der,
Lev Walkinb2230802005-02-14 20:31:31 +0000244 SEQUENCE_OF_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000245 SEQUENCE_OF_encode_xer,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000246 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000247 asn_DEF_vparts_tags,
248 sizeof(asn_DEF_vparts_tags)
249 /sizeof(asn_DEF_vparts_tags[0]), /* 1 */
250 asn_DEF_vparts_tags, /* Same as above */
251 sizeof(asn_DEF_vparts_tags)
252 /sizeof(asn_DEF_vparts_tags[0]), /* 1 */
253 asn_MBR_vparts,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000254 1, /* Single element */
Lev Walkindfae9752004-09-29 13:19:37 +0000255 &asn_DEF_vparts_specs /* Additional specs */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000256};
257
Lev Walkindfae9752004-09-29 13:19:37 +0000258static asn_TYPE_member_t asn_MBR_VariablePartSet[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000259 { ATF_NOFLAGS, 0, offsetof(struct VariablePartSet, vparts),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000260 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
261 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000262 .type = (void *)&asn_DEF_vparts,
Lev Walkina09e5da2004-08-22 03:19:00 +0000263 .memb_constraints = memb_vparts_2_constraint,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000264 .name = "vparts"
265 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000266 { ATF_NOFLAGS, 0, offsetof(struct VariablePartSet, resolution),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000267 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
268 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000269 .type = (void *)&asn_DEF_ActionItem,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000270 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000271 .name = "resolution"
Lev Walkinf15320b2004-06-03 03:38:44 +0000272 },
273};
Lev Walkindfae9752004-09-29 13:19:37 +0000274static ber_tlv_tag_t asn_DEF_VariablePartSet_tags[] = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000275 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
276};
Lev Walkindfae9752004-09-29 13:19:37 +0000277static asn_TYPE_tag2member_t asn_DEF_VariablePartSet_tag2el[] = {
Lev Walkin38abe792004-06-14 13:09:45 +0000278 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* vparts at 33 */
Lev Walkinbbe38662005-02-25 08:17:56 +0000279 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* resolution at 35 */
Lev Walkincda6b8a2004-06-06 07:20:52 +0000280};
Lev Walkindfae9752004-09-29 13:19:37 +0000281static asn_SEQUENCE_specifics_t asn_DEF_VariablePartSet_specs = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000282 sizeof(struct VariablePartSet),
Lev Walkindfae9752004-09-29 13:19:37 +0000283 offsetof(struct VariablePartSet, _asn_ctx),
284 asn_DEF_VariablePartSet_tag2el,
Lev Walkincda6b8a2004-06-06 07:20:52 +0000285 2, /* Count of tags in the map */
Lev Walkinf15320b2004-06-03 03:38:44 +0000286 1, /* Start extensions */
287 3 /* Stop extensions */
288};
Lev Walkindfae9752004-09-29 13:19:37 +0000289asn_TYPE_descriptor_t asn_DEF_VariablePartSet = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000290 "VariablePartSet",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000291 "VariablePartSet",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000292 SEQUENCE_free,
293 SEQUENCE_print,
Lev Walkinf15320b2004-06-03 03:38:44 +0000294 SEQUENCE_constraint,
295 SEQUENCE_decode_ber,
296 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000297 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000298 SEQUENCE_encode_xer,
Lev Walkinf15320b2004-06-03 03:38:44 +0000299 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000300 asn_DEF_VariablePartSet_tags,
301 sizeof(asn_DEF_VariablePartSet_tags)
302 /sizeof(asn_DEF_VariablePartSet_tags[0]), /* 1 */
303 asn_DEF_VariablePartSet_tags, /* Same as above */
304 sizeof(asn_DEF_VariablePartSet_tags)
305 /sizeof(asn_DEF_VariablePartSet_tags[0]), /* 1 */
306 asn_MBR_VariablePartSet,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000307 2, /* Elements count */
Lev Walkindfae9752004-09-29 13:19:37 +0000308 &asn_DEF_VariablePartSet_specs /* Additional specs */
Lev Walkinf15320b2004-06-03 03:38:44 +0000309};
310
311
Lev Walkinb47ddce2004-08-11 05:25:47 +0000312/*** <<< INCLUDES [VariablePart] >>> ***/
Lev Walkinf15320b2004-06-03 03:38:44 +0000313
Lev Walkinf15320b2004-06-03 03:38:44 +0000314#include <VisibleString.h>
315#include <asn_SET_OF.h>
Lev Walkinb47ddce2004-08-11 05:25:47 +0000316#include <constr_SET_OF.h>
317#include <constr_SEQUENCE.h>
318#include <constr_CHOICE.h>
Lev Walkinf15320b2004-06-03 03:38:44 +0000319
Lev Walkinb47ddce2004-08-11 05:25:47 +0000320/*** <<< DEPS [VariablePart] >>> ***/
Lev Walkinf15320b2004-06-03 03:38:44 +0000321
Lev Walkinb47ddce2004-08-11 05:25:47 +0000322typedef enum VariablePart_PR {
323 VariablePart_PR_NOTHING, /* No components present */
324 VariablePart_PR_vset,
325 VariablePart_PR_vrange,
326 /* Extensions may appear below */
Lev Walkin64399722004-08-11 07:17:22 +0000327} VariablePart_PR;
Lev Walkindfae9752004-09-29 13:19:37 +0000328extern asn_TYPE_descriptor_t asn_DEF_VariablePart;
Lev Walkinf15320b2004-06-03 03:38:44 +0000329
330/*** <<< TYPE-DECLS [VariablePart] >>> ***/
331
332
333typedef struct VariablePart {
Lev Walkin64399722004-08-11 07:17:22 +0000334 VariablePart_PR present;
Lev Walkinf15320b2004-06-03 03:38:44 +0000335 union {
336 struct vset {
337 A_SET_OF(VisibleString_t) list;
338
339 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000340 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +0000341 } vset;
342 struct vrange {
343 VisibleString_t from;
344 VisibleString_t to;
345 /*
346 * This type is extensible,
347 * possible extensions are below.
348 */
349
350 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000351 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +0000352 } vrange;
353 /*
354 * This type is extensible,
355 * possible extensions are below.
356 */
357 } choice;
358
359 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000360 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +0000361} VariablePart_t;
362
Lev Walkin2e3055d2004-08-20 13:36:32 +0000363/*** <<< CODE [VariablePart] >>> ***/
364
365static int
Lev Walkindfae9752004-09-29 13:19:37 +0000366memb_vset_3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000367 asn_app_consume_bytes_f *app_errlog, void *app_key) {
368 size_t size;
369
370 if(!sptr) {
371 _ASN_ERRLOG(app_errlog, app_key,
Lev Walkin16835b62004-08-22 13:47:59 +0000372 "%s: value not given (%s:%d)",
373 td->name, __FILE__, __LINE__);
Lev Walkin2e3055d2004-08-20 13:36:32 +0000374 return -1;
375 }
376
377 { /* Determine the number of elements */
378 const A_SET_OF(void) *list;
Lev Walkin64d99e92005-01-30 18:34:07 +0000379 (const void *)list = sptr;
Lev Walkin2e3055d2004-08-20 13:36:32 +0000380 size = list->count;
381 }
382
383 if((size >= 1)) {
384 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000385 return 0;
Lev Walkin2e3055d2004-08-20 13:36:32 +0000386 } else {
387 _ASN_ERRLOG(app_errlog, app_key,
Lev Walkin16835b62004-08-22 13:47:59 +0000388 "%s: constraint failed (%s:%d)",
389 td->name, __FILE__, __LINE__);
Lev Walkin2e3055d2004-08-20 13:36:32 +0000390 return -1;
391 }
392}
393
394
Lev Walkinf15320b2004-06-03 03:38:44 +0000395/*** <<< STAT-DEFS [VariablePart] >>> ***/
396
Lev Walkindfae9752004-09-29 13:19:37 +0000397static asn_TYPE_member_t asn_MBR_vset[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000398 { ATF_NOFLAGS, 0, 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000399 .tag = (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
400 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000401 .type = (void *)&asn_DEF_VisibleString,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000402 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000403 .name = ""
Lev Walkinf15320b2004-06-03 03:38:44 +0000404 },
Lev Walkin2e3055d2004-08-20 13:36:32 +0000405};
Lev Walkindfae9752004-09-29 13:19:37 +0000406static ber_tlv_tag_t asn_DEF_vset_tags[] = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000407 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
408};
Lev Walkindfae9752004-09-29 13:19:37 +0000409static asn_SET_OF_specifics_t asn_DEF_vset_specs = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000410 sizeof(struct vset),
Lev Walkindfae9752004-09-29 13:19:37 +0000411 offsetof(struct vset, _asn_ctx),
Lev Walkina9cc46e2004-09-22 16:06:28 +0000412 0, /* XER encoding is XMLDelimitedItemList */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000413};
Lev Walkind04430c2004-09-07 06:44:29 +0000414static /* Use -fall-defs-global to expose */
Lev Walkindfae9752004-09-29 13:19:37 +0000415asn_TYPE_descriptor_t asn_DEF_vset = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000416 "vset",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000417 "vset",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000418 SET_OF_free,
419 SET_OF_print,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000420 SET_OF_constraint,
421 SET_OF_decode_ber,
422 SET_OF_encode_der,
Lev Walkinb2230802005-02-14 20:31:31 +0000423 SET_OF_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000424 SET_OF_encode_xer,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000425 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000426 asn_DEF_vset_tags,
427 sizeof(asn_DEF_vset_tags)
428 /sizeof(asn_DEF_vset_tags[0]), /* 1 */
429 asn_DEF_vset_tags, /* Same as above */
430 sizeof(asn_DEF_vset_tags)
431 /sizeof(asn_DEF_vset_tags[0]), /* 1 */
432 asn_MBR_vset,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000433 1, /* Single element */
Lev Walkindfae9752004-09-29 13:19:37 +0000434 &asn_DEF_vset_specs /* Additional specs */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000435};
436
Lev Walkindfae9752004-09-29 13:19:37 +0000437static asn_TYPE_member_t asn_MBR_vrange[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000438 { ATF_NOFLAGS, 0, offsetof(struct vrange, from),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000439 .tag = (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
440 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000441 .type = (void *)&asn_DEF_VisibleString,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000442 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000443 .name = "from"
444 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000445 { ATF_NOFLAGS, 0, offsetof(struct vrange, to),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000446 .tag = (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
447 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000448 .type = (void *)&asn_DEF_VisibleString,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000449 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000450 .name = "to"
451 },
452};
Lev Walkindfae9752004-09-29 13:19:37 +0000453static ber_tlv_tag_t asn_DEF_vrange_tags[] = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000454 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
455};
Lev Walkindfae9752004-09-29 13:19:37 +0000456static asn_TYPE_tag2member_t asn_DEF_vrange_tag2el[] = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000457 { (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), 0, 0, 1 }, /* from at 45 */
Lev Walkinbbe38662005-02-25 08:17:56 +0000458 { (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), 1, -1, 0 } /* to at 46 */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000459};
Lev Walkindfae9752004-09-29 13:19:37 +0000460static asn_SEQUENCE_specifics_t asn_DEF_vrange_specs = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000461 sizeof(struct vrange),
Lev Walkindfae9752004-09-29 13:19:37 +0000462 offsetof(struct vrange, _asn_ctx),
463 asn_DEF_vrange_tag2el,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000464 2, /* Count of tags in the map */
465 1, /* Start extensions */
466 3 /* Stop extensions */
467};
Lev Walkind04430c2004-09-07 06:44:29 +0000468static /* Use -fall-defs-global to expose */
Lev Walkindfae9752004-09-29 13:19:37 +0000469asn_TYPE_descriptor_t asn_DEF_vrange = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000470 "vrange",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000471 "vrange",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000472 SEQUENCE_free,
473 SEQUENCE_print,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000474 SEQUENCE_constraint,
475 SEQUENCE_decode_ber,
476 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000477 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000478 SEQUENCE_encode_xer,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000479 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000480 asn_DEF_vrange_tags,
481 sizeof(asn_DEF_vrange_tags)
482 /sizeof(asn_DEF_vrange_tags[0]), /* 1 */
483 asn_DEF_vrange_tags, /* Same as above */
484 sizeof(asn_DEF_vrange_tags)
485 /sizeof(asn_DEF_vrange_tags[0]), /* 1 */
486 asn_MBR_vrange,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000487 2, /* Elements count */
Lev Walkindfae9752004-09-29 13:19:37 +0000488 &asn_DEF_vrange_specs /* Additional specs */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000489};
490
Lev Walkindfae9752004-09-29 13:19:37 +0000491static asn_TYPE_member_t asn_MBR_VariablePart[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000492 { ATF_NOFLAGS, 0, offsetof(struct VariablePart, choice.vset),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000493 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
494 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000495 .type = (void *)&asn_DEF_vset,
Lev Walkina09e5da2004-08-22 03:19:00 +0000496 .memb_constraints = memb_vset_3_constraint,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000497 .name = "vset"
498 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000499 { ATF_NOFLAGS, 0, offsetof(struct VariablePart, choice.vrange),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000500 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
501 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000502 .type = (void *)&asn_DEF_vrange,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000503 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000504 .name = "vrange"
Lev Walkinf15320b2004-06-03 03:38:44 +0000505 },
506};
Lev Walkindfae9752004-09-29 13:19:37 +0000507static asn_TYPE_tag2member_t asn_DEF_VariablePart_tag2el[] = {
Lev Walkin38abe792004-06-14 13:09:45 +0000508 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* vrange at 45 */
Lev Walkinbbe38662005-02-25 08:17:56 +0000509 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 } /* vset at 42 */
Lev Walkinf15320b2004-06-03 03:38:44 +0000510};
Lev Walkindfae9752004-09-29 13:19:37 +0000511static asn_CHOICE_specifics_t asn_DEF_VariablePart_specs = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000512 sizeof(struct VariablePart),
Lev Walkindfae9752004-09-29 13:19:37 +0000513 offsetof(struct VariablePart, _asn_ctx),
Lev Walkinf15320b2004-06-03 03:38:44 +0000514 offsetof(struct VariablePart, present),
515 sizeof(((struct VariablePart *)0)->present),
Lev Walkindfae9752004-09-29 13:19:37 +0000516 asn_DEF_VariablePart_tag2el,
Lev Walkinf15320b2004-06-03 03:38:44 +0000517 2, /* Count of tags in the map */
Lev Walkind64497c2004-07-01 00:49:55 +0000518 1 /* Whether extensible */
Lev Walkinf15320b2004-06-03 03:38:44 +0000519};
Lev Walkindfae9752004-09-29 13:19:37 +0000520asn_TYPE_descriptor_t asn_DEF_VariablePart = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000521 "VariablePart",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000522 "VariablePart",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000523 CHOICE_free,
524 CHOICE_print,
Lev Walkinf15320b2004-06-03 03:38:44 +0000525 CHOICE_constraint,
526 CHOICE_decode_ber,
527 CHOICE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000528 CHOICE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000529 CHOICE_encode_xer,
Lev Walkinf15320b2004-06-03 03:38:44 +0000530 CHOICE_outmost_tag,
Lev Walkin188ed2c2004-09-13 08:31:01 +0000531 0, /* No effective tags (pointer) */
532 0, /* No effective tags (count) */
533 0, /* No tags (pointer) */
534 0, /* No tags (count) */
Lev Walkindfae9752004-09-29 13:19:37 +0000535 asn_MBR_VariablePart,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000536 2, /* Elements count */
Lev Walkindfae9752004-09-29 13:19:37 +0000537 &asn_DEF_VariablePart_specs /* Additional specs */
Lev Walkinf15320b2004-06-03 03:38:44 +0000538};
539
540
Lev Walkinb47ddce2004-08-11 05:25:47 +0000541/*** <<< INCLUDES [ActionItem] >>> ***/
Lev Walkinf15320b2004-06-03 03:38:44 +0000542
Lev Walkinf15320b2004-06-03 03:38:44 +0000543#include <ENUMERATED.h>
Lev Walkinb47ddce2004-08-11 05:25:47 +0000544#include <BOOLEAN.h>
545#include <VisibleString.h>
546#include <asn_SET_OF.h>
547#include <constr_SET_OF.h>
548#include <constr_SEQUENCE.h>
549
550/*** <<< DEPS [ActionItem] >>> ***/
Lev Walkinf15320b2004-06-03 03:38:44 +0000551
Lev Walkin2e3055d2004-08-20 13:36:32 +0000552typedef enum accept_as {
553 accept_as_unknown = 0,
554 accept_as_safe = 1,
Lev Walkinbbe38662005-02-25 08:17:56 +0000555 accept_as_unsafe = 2
Lev Walkin2e3055d2004-08-20 13:36:32 +0000556 /*
557 * Enumeration is extensible
558 */
559} accept_as_e;
Lev Walkindfae9752004-09-29 13:19:37 +0000560extern asn_TYPE_descriptor_t asn_DEF_ActionItem;
Lev Walkinf15320b2004-06-03 03:38:44 +0000561
562/*** <<< TYPE-DECLS [ActionItem] >>> ***/
563
564
565typedef struct ActionItem {
566 ENUMERATED_t accept_as;
567 struct notify {
568 BOOLEAN_t critical;
569 struct email {
570 A_SET_OF(VisibleString_t) list;
571
572 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000573 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +0000574 } email;
575 /*
576 * This type is extensible,
577 * possible extensions are below.
578 */
579
580 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000581 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +0000582 } *notify;
583 /*
584 * This type is extensible,
585 * possible extensions are below.
586 */
587
588 /* Context for parsing across buffer boundaries */
Lev Walkindfae9752004-09-29 13:19:37 +0000589 asn_struct_ctx_t _asn_ctx;
Lev Walkinf15320b2004-06-03 03:38:44 +0000590} ActionItem_t;
591
Lev Walkinbbe38662005-02-25 08:17:56 +0000592/*** <<< FUNC-DECLS [ActionItem] >>> ***/
593
594/* extern asn_TYPE_descriptor_t asn_DEF_accept_as; // (Use -fall-defs-global to expose) */
595
596/*** <<< CODE [ActionItem] >>> ***/
597
598static int
599accept_as_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
600 asn_app_consume_bytes_f *app_errlog, void *app_key) {
601 /* Replace with underlying type checker */
602 td->check_constraints = asn_DEF_ENUMERATED.check_constraints;
603 return td->check_constraints(td, sptr, app_errlog, app_key);
604}
605
606/*
607 * This type is implemented using ENUMERATED,
608 * so here we adjust the DEF accordingly.
609 */
610static void
611accept_as_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
612 td->free_struct = asn_DEF_ENUMERATED.free_struct;
613 td->print_struct = asn_DEF_ENUMERATED.print_struct;
614 td->ber_decoder = asn_DEF_ENUMERATED.ber_decoder;
615 td->der_encoder = asn_DEF_ENUMERATED.der_encoder;
616 td->xer_decoder = asn_DEF_ENUMERATED.xer_decoder;
617 td->xer_encoder = asn_DEF_ENUMERATED.xer_encoder;
618 td->elements = asn_DEF_ENUMERATED.elements;
619 td->elements_count = asn_DEF_ENUMERATED.elements_count;
620 td->specifics = asn_DEF_ENUMERATED.specifics;
621}
622
623static void
624accept_as_free(asn_TYPE_descriptor_t *td,
625 void *struct_ptr, int contents_only) {
626 accept_as_inherit_TYPE_descriptor(td);
627 td->free_struct(td, struct_ptr, contents_only);
628}
629
630static int
631accept_as_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
632 int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
633 accept_as_inherit_TYPE_descriptor(td);
634 return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
635}
636
637static asn_dec_rval_t
638accept_as_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
639 void **structure, void *bufptr, size_t size, int tag_mode) {
640 accept_as_inherit_TYPE_descriptor(td);
641 return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
642}
643
644static asn_enc_rval_t
645accept_as_encode_der(asn_TYPE_descriptor_t *td,
646 void *structure, int tag_mode, ber_tlv_tag_t tag,
647 asn_app_consume_bytes_f *cb, void *app_key) {
648 accept_as_inherit_TYPE_descriptor(td);
649 return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
650}
651
652static asn_dec_rval_t
653accept_as_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
654 void **structure, const char *opt_mname, void *bufptr, size_t size) {
655 accept_as_inherit_TYPE_descriptor(td);
656 return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
657}
658
659static asn_enc_rval_t
660accept_as_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
661 int ilevel, enum xer_encoder_flags_e flags,
662 asn_app_consume_bytes_f *cb, void *app_key) {
663 accept_as_inherit_TYPE_descriptor(td);
664 return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
665}
666
667
Lev Walkinf15320b2004-06-03 03:38:44 +0000668/*** <<< STAT-DEFS [ActionItem] >>> ***/
669
Lev Walkinbbe38662005-02-25 08:17:56 +0000670static asn_INTEGER_enum_map_t asn_MAP_accept_as_enum2value[] = {
671 { "safe", 1 },
672 { "unknown", 0 },
673 { "unsafe", 2 }
674 /* This list is extensible */
675};
676static asn_INTEGER_enum_map_t asn_MAP_accept_as_value2enum[] = {
677 { "unknown", 0 },
678 { "safe", 1 },
679 { "unsafe", 2 }
680 /* This list is extensible */
681};
682static asn_INTEGER_specifics_t asn_DEF_accept_as_specs = {
683 /* Two name<->value maps sorted differently;
684 * this may seem like a waste of space,
685 * but the strings actually share it.
686 */
687 asn_MAP_accept_as_enum2value, /* "tag" => N; sorted by tag */
688 asn_MAP_accept_as_value2enum, /* N => "tag"; sorted by N */
689 3, /* Number of elements in the maps */
690 1 /* Enumeration is extensible */
691};
692static ber_tlv_tag_t asn_DEF_accept_as_tags[] = {
693 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
694};
695static /* Use -fall-defs-global to expose */
696asn_TYPE_descriptor_t asn_DEF_accept_as = {
697 "accept-as",
698 "accept-as",
699 accept_as_free,
700 accept_as_print,
701 accept_as_constraint,
702 accept_as_decode_ber,
703 accept_as_encode_der,
704 accept_as_decode_xer,
705 accept_as_encode_xer,
706 0, /* Use generic outmost tag fetcher */
707 asn_DEF_accept_as_tags,
708 sizeof(asn_DEF_accept_as_tags)
709 /sizeof(asn_DEF_accept_as_tags[0]), /* 1 */
710 asn_DEF_accept_as_tags, /* Same as above */
711 sizeof(asn_DEF_accept_as_tags)
712 /sizeof(asn_DEF_accept_as_tags[0]), /* 1 */
713 0, 0, /* Defined elsewhere */
714 &asn_DEF_accept_as_specs /* Additional specs */
715};
716
Lev Walkindfae9752004-09-29 13:19:37 +0000717static asn_TYPE_member_t asn_MBR_email[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000718 { ATF_NOFLAGS, 0, 0,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000719 .tag = (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
720 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000721 .type = (void *)&asn_DEF_VisibleString,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000722 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000723 .name = ""
Lev Walkinf15320b2004-06-03 03:38:44 +0000724 },
Lev Walkin2e3055d2004-08-20 13:36:32 +0000725};
Lev Walkindfae9752004-09-29 13:19:37 +0000726static ber_tlv_tag_t asn_DEF_email_tags[] = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000727 (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
728};
Lev Walkindfae9752004-09-29 13:19:37 +0000729static asn_SET_OF_specifics_t asn_DEF_email_specs = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000730 sizeof(struct email),
Lev Walkindfae9752004-09-29 13:19:37 +0000731 offsetof(struct email, _asn_ctx),
Lev Walkina9cc46e2004-09-22 16:06:28 +0000732 0, /* XER encoding is XMLDelimitedItemList */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000733};
Lev Walkind04430c2004-09-07 06:44:29 +0000734static /* Use -fall-defs-global to expose */
Lev Walkindfae9752004-09-29 13:19:37 +0000735asn_TYPE_descriptor_t asn_DEF_email = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000736 "email",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000737 "email",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000738 SET_OF_free,
739 SET_OF_print,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000740 SET_OF_constraint,
741 SET_OF_decode_ber,
742 SET_OF_encode_der,
Lev Walkinb2230802005-02-14 20:31:31 +0000743 SET_OF_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000744 SET_OF_encode_xer,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000745 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000746 asn_DEF_email_tags,
747 sizeof(asn_DEF_email_tags)
748 /sizeof(asn_DEF_email_tags[0]), /* 1 */
749 asn_DEF_email_tags, /* Same as above */
750 sizeof(asn_DEF_email_tags)
751 /sizeof(asn_DEF_email_tags[0]), /* 1 */
752 asn_MBR_email,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000753 1, /* Single element */
Lev Walkindfae9752004-09-29 13:19:37 +0000754 &asn_DEF_email_specs /* Additional specs */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000755};
756
Lev Walkindfae9752004-09-29 13:19:37 +0000757static asn_TYPE_member_t asn_MBR_notify[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000758 { ATF_NOFLAGS, 0, offsetof(struct notify, critical),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000759 .tag = (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
760 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000761 .type = (void *)&asn_DEF_BOOLEAN,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000762 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000763 .name = "critical"
764 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000765 { ATF_NOFLAGS, 0, offsetof(struct notify, email),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000766 .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
767 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000768 .type = (void *)&asn_DEF_email,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000769 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000770 .name = "email"
771 },
772};
Lev Walkindfae9752004-09-29 13:19:37 +0000773static ber_tlv_tag_t asn_DEF_notify_tags[] = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000774 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
775};
Lev Walkindfae9752004-09-29 13:19:37 +0000776static asn_TYPE_tag2member_t asn_DEF_notify_tag2el[] = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000777 { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 0, 0, 0 }, /* critical at 61 */
Lev Walkinbbe38662005-02-25 08:17:56 +0000778 { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* email at 62 */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000779};
Lev Walkindfae9752004-09-29 13:19:37 +0000780static asn_SEQUENCE_specifics_t asn_DEF_notify_specs = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000781 sizeof(struct notify),
Lev Walkindfae9752004-09-29 13:19:37 +0000782 offsetof(struct notify, _asn_ctx),
783 asn_DEF_notify_tag2el,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000784 2, /* Count of tags in the map */
785 1, /* Start extensions */
786 3 /* Stop extensions */
787};
Lev Walkind04430c2004-09-07 06:44:29 +0000788static /* Use -fall-defs-global to expose */
Lev Walkindfae9752004-09-29 13:19:37 +0000789asn_TYPE_descriptor_t asn_DEF_notify = {
Lev Walkin2e3055d2004-08-20 13:36:32 +0000790 "notify",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000791 "notify",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000792 SEQUENCE_free,
793 SEQUENCE_print,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000794 SEQUENCE_constraint,
795 SEQUENCE_decode_ber,
796 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000797 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000798 SEQUENCE_encode_xer,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000799 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000800 asn_DEF_notify_tags,
801 sizeof(asn_DEF_notify_tags)
802 /sizeof(asn_DEF_notify_tags[0]), /* 1 */
803 asn_DEF_notify_tags, /* Same as above */
804 sizeof(asn_DEF_notify_tags)
805 /sizeof(asn_DEF_notify_tags[0]), /* 1 */
806 asn_MBR_notify,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000807 2, /* Elements count */
Lev Walkindfae9752004-09-29 13:19:37 +0000808 &asn_DEF_notify_specs /* Additional specs */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000809};
810
Lev Walkindfae9752004-09-29 13:19:37 +0000811static asn_TYPE_member_t asn_MBR_ActionItem[] = {
Lev Walkincc93b0f2004-09-10 09:18:20 +0000812 { ATF_NOFLAGS, 0, offsetof(struct ActionItem, accept_as),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000813 .tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
814 .tag_mode = 0,
Lev Walkinbbe38662005-02-25 08:17:56 +0000815 .type = (void *)&asn_DEF_accept_as,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000816 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000817 .name = "accept-as"
818 },
Lev Walkincc93b0f2004-09-10 09:18:20 +0000819 { ATF_POINTER, 1, offsetof(struct ActionItem, notify),
Lev Walkin2e3055d2004-08-20 13:36:32 +0000820 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
821 .tag_mode = 0,
Lev Walkindfae9752004-09-29 13:19:37 +0000822 .type = (void *)&asn_DEF_notify,
Lev Walkinba58e1b2005-01-17 12:20:19 +0000823 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkin2e3055d2004-08-20 13:36:32 +0000824 .name = "notify"
Lev Walkinf15320b2004-06-03 03:38:44 +0000825 },
826};
Lev Walkindfae9752004-09-29 13:19:37 +0000827static ber_tlv_tag_t asn_DEF_ActionItem_tags[] = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000828 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
829};
Lev Walkindfae9752004-09-29 13:19:37 +0000830static asn_TYPE_tag2member_t asn_DEF_ActionItem_tag2el[] = {
Lev Walkin38abe792004-06-14 13:09:45 +0000831 { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* accept-as at 55 */
Lev Walkinbbe38662005-02-25 08:17:56 +0000832 { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* notify at 61 */
Lev Walkincda6b8a2004-06-06 07:20:52 +0000833};
Lev Walkindfae9752004-09-29 13:19:37 +0000834static asn_SEQUENCE_specifics_t asn_DEF_ActionItem_specs = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000835 sizeof(struct ActionItem),
Lev Walkindfae9752004-09-29 13:19:37 +0000836 offsetof(struct ActionItem, _asn_ctx),
837 asn_DEF_ActionItem_tag2el,
Lev Walkincda6b8a2004-06-06 07:20:52 +0000838 2, /* Count of tags in the map */
Lev Walkinf15320b2004-06-03 03:38:44 +0000839 1, /* Start extensions */
840 3 /* Stop extensions */
841};
Lev Walkindfae9752004-09-29 13:19:37 +0000842asn_TYPE_descriptor_t asn_DEF_ActionItem = {
Lev Walkinf15320b2004-06-03 03:38:44 +0000843 "ActionItem",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000844 "ActionItem",
Lev Walkina9cc46e2004-09-22 16:06:28 +0000845 SEQUENCE_free,
846 SEQUENCE_print,
Lev Walkinf15320b2004-06-03 03:38:44 +0000847 SEQUENCE_constraint,
848 SEQUENCE_decode_ber,
849 SEQUENCE_encode_der,
Lev Walkin61b40d82004-10-23 15:07:45 +0000850 SEQUENCE_decode_xer,
Lev Walkina9cc46e2004-09-22 16:06:28 +0000851 SEQUENCE_encode_xer,
Lev Walkinf15320b2004-06-03 03:38:44 +0000852 0, /* Use generic outmost tag fetcher */
Lev Walkindfae9752004-09-29 13:19:37 +0000853 asn_DEF_ActionItem_tags,
854 sizeof(asn_DEF_ActionItem_tags)
855 /sizeof(asn_DEF_ActionItem_tags[0]), /* 1 */
856 asn_DEF_ActionItem_tags, /* Same as above */
857 sizeof(asn_DEF_ActionItem_tags)
858 /sizeof(asn_DEF_ActionItem_tags[0]), /* 1 */
859 asn_MBR_ActionItem,
Lev Walkin2e3055d2004-08-20 13:36:32 +0000860 2, /* Elements count */
Lev Walkindfae9752004-09-29 13:19:37 +0000861 &asn_DEF_ActionItem_specs /* Additional specs */
Lev Walkinf15320b2004-06-03 03:38:44 +0000862};
863