2 /*** <<< INCLUDES [PDU] >>> ***/
5 #include <VisibleString.h>
6 #include <PrintableString.h>
7 #include <NumericString.h>
8 #include <UTF8String.h>
10 #include <UniversalString.h>
11 #include <NativeReal.h>
12 #include <OBJECT_IDENTIFIER.h>
13 #include <asn_SEQUENCE_OF.h>
14 #include <constr_SEQUENCE_OF.h>
15 #include <constr_SEQUENCE.h>
17 /*** <<< FWD-DECLS [PDU] >>> ***/
21 /*** <<< TYPE-DECLS [PDU] >>> ***/
25 A_SEQUENCE_OF(struct PDU) list;
27 /* Context for parsing across buffer boundaries */
28 asn_struct_ctx_t _asn_ctx;
30 IA5String_t *ia5; /* OPTIONAL */
31 IA5String_t *ia5_c; /* OPTIONAL */
32 IA5String_t *ia5_ce; /* OPTIONAL */
33 IA5String_t *ia5_ir; /* OPTIONAL */
34 VisibleString_t *vs; /* OPTIONAL */
35 VisibleString_t *vs_c; /* OPTIONAL */
36 VisibleString_t *vs_ce; /* OPTIONAL */
37 VisibleString_t *vs_ir; /* OPTIONAL */
38 PrintableString_t *pr; /* OPTIONAL */
39 PrintableString_t *pr_c; /* OPTIONAL */
40 PrintableString_t *pr_ir; /* OPTIONAL */
41 NumericString_t *ns; /* OPTIONAL */
42 NumericString_t *ns_c; /* OPTIONAL */
43 NumericString_t *ns_ce; /* OPTIONAL */
44 NumericString_t *ns_ir; /* OPTIONAL */
45 UTF8String_t *ut_c; /* OPTIONAL */
46 UTF8String_t *ut_ce; /* OPTIONAL */
47 UTF8String_t *ut_ir; /* OPTIONAL */
48 BMPString_t *bm; /* OPTIONAL */
49 BMPString_t *bm_c; /* OPTIONAL */
50 BMPString_t *bm_cs; /* OPTIONAL */
51 BMPString_t *bm_ce; /* OPTIONAL */
52 BMPString_t *bm_ir; /* OPTIONAL */
53 UniversalString_t *us; /* OPTIONAL */
54 UniversalString_t *us_c; /* OPTIONAL */
55 UniversalString_t *us_cs; /* OPTIONAL */
56 UniversalString_t *us_ce; /* OPTIONAL */
57 UniversalString_t *us_ir; /* OPTIONAL */
58 double *real; /* OPTIONAL */
59 OBJECT_IDENTIFIER_t *oid; /* OPTIONAL */
61 /* Context for parsing across buffer boundaries */
62 asn_struct_ctx_t _asn_ctx;
65 /*** <<< FUNC-DECLS [PDU] >>> ***/
67 extern asn_TYPE_descriptor_t asn_DEF_PDU;
68 extern asn_SEQUENCE_specifics_t asn_SPC_PDU_specs_1;
69 extern asn_TYPE_member_t asn_MBR_PDU_1[31];
71 /*** <<< POST-INCLUDE [PDU] >>> ***/
75 /*** <<< CTABLES [PDU] >>> ***/
77 static int check_permitted_alphabet_5(const void *sptr) {
78 /* The underlying type is IA5String */
79 const IA5String_t *st = (const IA5String_t *)sptr;
80 const uint8_t *ch = st->buf;
81 const uint8_t *end = ch + st->size;
83 for(; ch < end; ch++) {
85 if(!(cv >= 65 && cv <= 90)) return -1;
90 static int check_permitted_alphabet_6(const void *sptr) {
91 /* The underlying type is IA5String */
92 const IA5String_t *st = (const IA5String_t *)sptr;
93 const uint8_t *ch = st->buf;
94 const uint8_t *end = ch + st->size;
96 for(; ch < end; ch++) {
98 if(!(cv >= 65 && cv <= 90)) return -1;
103 static const int permitted_alphabet_table_7[256] = {
104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
108 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
109 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
111 static const int permitted_alphabet_code2value_7[5] = {
115 static int check_permitted_alphabet_7(const void *sptr) {
116 const int *table = permitted_alphabet_table_7;
117 /* The underlying type is IA5String */
118 const IA5String_t *st = (const IA5String_t *)sptr;
119 const uint8_t *ch = st->buf;
120 const uint8_t *end = ch + st->size;
122 for(; ch < end; ch++) {
124 if(!table[cv]) return -1;
129 static int check_permitted_alphabet_9(const void *sptr) {
130 /* The underlying type is VisibleString */
131 const VisibleString_t *st = (const VisibleString_t *)sptr;
132 const uint8_t *ch = st->buf;
133 const uint8_t *end = ch + st->size;
135 for(; ch < end; ch++) {
137 if(!(cv >= 65 && cv <= 90)) return -1;
142 static int check_permitted_alphabet_10(const void *sptr) {
143 /* The underlying type is VisibleString */
144 const VisibleString_t *st = (const VisibleString_t *)sptr;
145 const uint8_t *ch = st->buf;
146 const uint8_t *end = ch + st->size;
148 for(; ch < end; ch++) {
150 if(!(cv >= 65 && cv <= 90)) return -1;
155 static const int permitted_alphabet_table_11[256] = {
156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
160 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
161 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
163 static const int permitted_alphabet_code2value_11[5] = {
167 static int check_permitted_alphabet_11(const void *sptr) {
168 const int *table = permitted_alphabet_table_11;
169 /* The underlying type is VisibleString */
170 const VisibleString_t *st = (const VisibleString_t *)sptr;
171 const uint8_t *ch = st->buf;
172 const uint8_t *end = ch + st->size;
174 for(; ch < end; ch++) {
176 if(!table[cv]) return -1;
181 static int check_permitted_alphabet_13(const void *sptr) {
182 /* The underlying type is PrintableString */
183 const PrintableString_t *st = (const PrintableString_t *)sptr;
184 const uint8_t *ch = st->buf;
185 const uint8_t *end = ch + st->size;
187 for(; ch < end; ch++) {
189 if(!(cv >= 65 && cv <= 90)) return -1;
194 static const int permitted_alphabet_table_14[256] = {
195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
199 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
200 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
202 static const int permitted_alphabet_code2value_14[5] = {
206 static int check_permitted_alphabet_14(const void *sptr) {
207 const int *table = permitted_alphabet_table_14;
208 /* The underlying type is PrintableString */
209 const PrintableString_t *st = (const PrintableString_t *)sptr;
210 const uint8_t *ch = st->buf;
211 const uint8_t *end = ch + st->size;
213 for(; ch < end; ch++) {
215 if(!table[cv]) return -1;
220 static int check_permitted_alphabet_16(const void *sptr) {
221 /* The underlying type is NumericString */
222 const NumericString_t *st = (const NumericString_t *)sptr;
223 const uint8_t *ch = st->buf;
224 const uint8_t *end = ch + st->size;
226 for(; ch < end; ch++) {
228 if(!(cv >= 53 && cv <= 57)) return -1;
233 static int check_permitted_alphabet_17(const void *sptr) {
234 /* The underlying type is NumericString */
235 const NumericString_t *st = (const NumericString_t *)sptr;
236 const uint8_t *ch = st->buf;
237 const uint8_t *end = ch + st->size;
239 for(; ch < end; ch++) {
241 if(!(cv >= 53 && cv <= 57)) return -1;
246 static const int permitted_alphabet_table_18[256] = {
247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
250 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, /* 1 9 */
252 static const int permitted_alphabet_code2value_18[2] = {
256 static int check_permitted_alphabet_18(const void *sptr) {
257 const int *table = permitted_alphabet_table_18;
258 /* The underlying type is NumericString */
259 const NumericString_t *st = (const NumericString_t *)sptr;
260 const uint8_t *ch = st->buf;
261 const uint8_t *end = ch + st->size;
263 for(; ch < end; ch++) {
265 if(!table[cv]) return -1;
270 static const int permitted_alphabet_table_21[128] = {
271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
275 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* A */
276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, /* Z */
279 static int check_permitted_alphabet_21(const void *sptr) {
280 const int *table = permitted_alphabet_table_21;
281 /* The underlying type is UTF8String */
282 const UTF8String_t *st = (const UTF8String_t *)sptr;
283 const uint8_t *ch = st->buf;
284 const uint8_t *end = ch + st->size;
286 for(; ch < end; ch++) {
288 if(cv >= 0x80) return -1;
289 if(!table[cv]) return -1;
294 static int check_permitted_alphabet_23(const void *sptr) {
295 /* The underlying type is BMPString */
296 const BMPString_t *st = (const BMPString_t *)sptr;
297 const uint8_t *ch = st->buf;
298 const uint8_t *end = ch + st->size;
300 if(st->size % 2) return -1; /* (size%2)! */
301 for(; ch < end; ch += 2) {
302 uint16_t cv = (ch[0] << 8)
304 if(!(cv >= 65 && cv <= 90)) return -1;
309 static int check_permitted_alphabet_24(const void *sptr) {
310 /* The underlying type is BMPString */
311 const BMPString_t *st = (const BMPString_t *)sptr;
312 const uint8_t *ch = st->buf;
313 const uint8_t *end = ch + st->size;
315 if(st->size % 2) return -1; /* (size%2)! */
316 for(; ch < end; ch += 2) {
317 uint16_t cv = (ch[0] << 8)
319 if(!(cv <= 65533)) return -1;
324 static int check_permitted_alphabet_25(const void *sptr) {
325 /* The underlying type is BMPString */
326 const BMPString_t *st = (const BMPString_t *)sptr;
327 const uint8_t *ch = st->buf;
328 const uint8_t *end = ch + st->size;
330 if(st->size % 2) return -1; /* (size%2)! */
331 for(; ch < end; ch += 2) {
332 uint16_t cv = (ch[0] << 8)
334 if(!(cv >= 65 && cv <= 90)) return -1;
339 static const int permitted_alphabet_table_26[256] = {
340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
344 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
345 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
347 static const int permitted_alphabet_code2value_26[5] = {
351 static int check_permitted_alphabet_26(const void *sptr) {
352 const int *table = permitted_alphabet_table_26;
353 /* The underlying type is BMPString */
354 const BMPString_t *st = (const BMPString_t *)sptr;
355 const uint8_t *ch = st->buf;
356 const uint8_t *end = ch + st->size;
358 if(st->size % 2) return -1; /* (size%2)! */
359 for(; ch < end; ch += 2) {
360 uint16_t cv = (ch[0] << 8)
362 if(cv > 255) return -1;
363 if(!table[cv]) return -1;
368 static int check_permitted_alphabet_28(const void *sptr) {
369 /* The underlying type is UniversalString */
370 const UniversalString_t *st = (const UniversalString_t *)sptr;
371 const uint8_t *ch = st->buf;
372 const uint8_t *end = ch + st->size;
374 if(st->size % 4) return -1; /* (size%4)! */
375 for(; ch < end; ch += 4) {
376 uint32_t cv = (ch[0] << 24)
380 if(!(cv >= 65 && cv <= 90)) return -1;
385 static int check_permitted_alphabet_29(const void *sptr) {
386 /* The underlying type is UniversalString */
387 const UniversalString_t *st = (const UniversalString_t *)sptr;
388 const uint8_t *ch = st->buf;
389 const uint8_t *end = ch + st->size;
391 if(st->size % 4) return -1; /* (size%4)! */
392 for(; ch < end; ch += 4) {
393 uint32_t cv = (ch[0] << 24)
397 (void)cv; /* Unused variable */
402 static int check_permitted_alphabet_30(const void *sptr) {
403 /* The underlying type is UniversalString */
404 const UniversalString_t *st = (const UniversalString_t *)sptr;
405 const uint8_t *ch = st->buf;
406 const uint8_t *end = ch + st->size;
408 if(st->size % 4) return -1; /* (size%4)! */
409 for(; ch < end; ch += 4) {
410 uint32_t cv = (ch[0] << 24)
414 if(!(cv >= 65 && cv <= 90)) return -1;
419 static const int permitted_alphabet_table_31[256] = {
420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
424 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
425 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
427 static const int permitted_alphabet_code2value_31[5] = {
431 static int check_permitted_alphabet_31(const void *sptr) {
432 const int *table = permitted_alphabet_table_31;
433 /* The underlying type is UniversalString */
434 const UniversalString_t *st = (const UniversalString_t *)sptr;
435 const uint8_t *ch = st->buf;
436 const uint8_t *end = ch + st->size;
438 if(st->size % 4) return -1; /* (size%4)! */
439 for(; ch < end; ch += 4) {
440 uint32_t cv = (ch[0] << 24)
444 if(cv > 255) return -1;
445 if(!table[cv]) return -1;
451 /*** <<< CODE [PDU] >>> ***/
454 memb_ia5_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
455 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
456 const IA5String_t *st = (const IA5String_t *)sptr;
459 ASN__CTFAIL(app_key, td, sptr,
460 "%s: value not given (%s:%d)",
461 td->name, __FILE__, __LINE__);
466 if(!check_permitted_alphabet_5(st)) {
467 /* Constraint check succeeded */
470 ASN__CTFAIL(app_key, td, sptr,
471 "%s: constraint failed (%s:%d)",
472 td->name, __FILE__, __LINE__);
478 memb_ia5_ce_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
479 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
480 const IA5String_t *st = (const IA5String_t *)sptr;
483 ASN__CTFAIL(app_key, td, sptr,
484 "%s: value not given (%s:%d)",
485 td->name, __FILE__, __LINE__);
490 if(!check_permitted_alphabet_6(st)) {
491 /* Constraint check succeeded */
494 ASN__CTFAIL(app_key, td, sptr,
495 "%s: constraint failed (%s:%d)",
496 td->name, __FILE__, __LINE__);
502 memb_ia5_ir_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
503 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
504 const IA5String_t *st = (const IA5String_t *)sptr;
507 ASN__CTFAIL(app_key, td, sptr,
508 "%s: value not given (%s:%d)",
509 td->name, __FILE__, __LINE__);
514 if(!check_permitted_alphabet_7(st)) {
515 /* Constraint check succeeded */
518 ASN__CTFAIL(app_key, td, sptr,
519 "%s: constraint failed (%s:%d)",
520 td->name, __FILE__, __LINE__);
525 static int asn_PER_MAP_ia5_ir_7_v2c(unsigned int value) {
526 if(value >= sizeof(permitted_alphabet_table_7)/sizeof(permitted_alphabet_table_7[0]))
528 return permitted_alphabet_table_7[value] - 1;
530 static int asn_PER_MAP_ia5_ir_7_c2v(unsigned int code) {
531 if(code >= sizeof(permitted_alphabet_code2value_7)/sizeof(permitted_alphabet_code2value_7[0]))
533 return permitted_alphabet_code2value_7[code];
536 memb_vs_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
537 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
538 const VisibleString_t *st = (const VisibleString_t *)sptr;
541 ASN__CTFAIL(app_key, td, sptr,
542 "%s: value not given (%s:%d)",
543 td->name, __FILE__, __LINE__);
548 if(!check_permitted_alphabet_9(st)) {
549 /* Constraint check succeeded */
552 ASN__CTFAIL(app_key, td, sptr,
553 "%s: constraint failed (%s:%d)",
554 td->name, __FILE__, __LINE__);
560 memb_vs_ce_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
561 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
562 const VisibleString_t *st = (const VisibleString_t *)sptr;
565 ASN__CTFAIL(app_key, td, sptr,
566 "%s: value not given (%s:%d)",
567 td->name, __FILE__, __LINE__);
572 if(!check_permitted_alphabet_10(st)) {
573 /* Constraint check succeeded */
576 ASN__CTFAIL(app_key, td, sptr,
577 "%s: constraint failed (%s:%d)",
578 td->name, __FILE__, __LINE__);
584 memb_vs_ir_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
585 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
586 const VisibleString_t *st = (const VisibleString_t *)sptr;
589 ASN__CTFAIL(app_key, td, sptr,
590 "%s: value not given (%s:%d)",
591 td->name, __FILE__, __LINE__);
596 if(!check_permitted_alphabet_11(st)) {
597 /* Constraint check succeeded */
600 ASN__CTFAIL(app_key, td, sptr,
601 "%s: constraint failed (%s:%d)",
602 td->name, __FILE__, __LINE__);
607 static int asn_PER_MAP_vs_ir_11_v2c(unsigned int value) {
608 if(value >= sizeof(permitted_alphabet_table_11)/sizeof(permitted_alphabet_table_11[0]))
610 return permitted_alphabet_table_11[value] - 1;
612 static int asn_PER_MAP_vs_ir_11_c2v(unsigned int code) {
613 if(code >= sizeof(permitted_alphabet_code2value_11)/sizeof(permitted_alphabet_code2value_11[0]))
615 return permitted_alphabet_code2value_11[code];
618 memb_pr_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
619 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
620 const PrintableString_t *st = (const PrintableString_t *)sptr;
623 ASN__CTFAIL(app_key, td, sptr,
624 "%s: value not given (%s:%d)",
625 td->name, __FILE__, __LINE__);
630 if(!check_permitted_alphabet_13(st)) {
631 /* Constraint check succeeded */
634 ASN__CTFAIL(app_key, td, sptr,
635 "%s: constraint failed (%s:%d)",
636 td->name, __FILE__, __LINE__);
642 memb_pr_ir_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
643 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
644 const PrintableString_t *st = (const PrintableString_t *)sptr;
647 ASN__CTFAIL(app_key, td, sptr,
648 "%s: value not given (%s:%d)",
649 td->name, __FILE__, __LINE__);
654 if(!check_permitted_alphabet_14(st)) {
655 /* Constraint check succeeded */
658 ASN__CTFAIL(app_key, td, sptr,
659 "%s: constraint failed (%s:%d)",
660 td->name, __FILE__, __LINE__);
665 static int asn_PER_MAP_pr_ir_14_v2c(unsigned int value) {
666 if(value >= sizeof(permitted_alphabet_table_14)/sizeof(permitted_alphabet_table_14[0]))
668 return permitted_alphabet_table_14[value] - 1;
670 static int asn_PER_MAP_pr_ir_14_c2v(unsigned int code) {
671 if(code >= sizeof(permitted_alphabet_code2value_14)/sizeof(permitted_alphabet_code2value_14[0]))
673 return permitted_alphabet_code2value_14[code];
676 memb_ns_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
677 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
678 const NumericString_t *st = (const NumericString_t *)sptr;
681 ASN__CTFAIL(app_key, td, sptr,
682 "%s: value not given (%s:%d)",
683 td->name, __FILE__, __LINE__);
688 if(!check_permitted_alphabet_16(st)) {
689 /* Constraint check succeeded */
692 ASN__CTFAIL(app_key, td, sptr,
693 "%s: constraint failed (%s:%d)",
694 td->name, __FILE__, __LINE__);
700 memb_ns_ce_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
701 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
702 const NumericString_t *st = (const NumericString_t *)sptr;
705 ASN__CTFAIL(app_key, td, sptr,
706 "%s: value not given (%s:%d)",
707 td->name, __FILE__, __LINE__);
712 if(!check_permitted_alphabet_17(st)) {
713 /* Constraint check succeeded */
716 ASN__CTFAIL(app_key, td, sptr,
717 "%s: constraint failed (%s:%d)",
718 td->name, __FILE__, __LINE__);
724 memb_ns_ir_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
725 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
726 const NumericString_t *st = (const NumericString_t *)sptr;
729 ASN__CTFAIL(app_key, td, sptr,
730 "%s: value not given (%s:%d)",
731 td->name, __FILE__, __LINE__);
736 if(!check_permitted_alphabet_18(st)) {
737 /* Constraint check succeeded */
740 ASN__CTFAIL(app_key, td, sptr,
741 "%s: constraint failed (%s:%d)",
742 td->name, __FILE__, __LINE__);
747 static int asn_PER_MAP_ns_ir_18_v2c(unsigned int value) {
748 if(value >= sizeof(permitted_alphabet_table_18)/sizeof(permitted_alphabet_table_18[0]))
750 return permitted_alphabet_table_18[value] - 1;
752 static int asn_PER_MAP_ns_ir_18_c2v(unsigned int code) {
753 if(code >= sizeof(permitted_alphabet_code2value_18)/sizeof(permitted_alphabet_code2value_18[0]))
755 return permitted_alphabet_code2value_18[code];
758 memb_ut_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
759 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
760 const UTF8String_t *st = (const UTF8String_t *)sptr;
764 ASN__CTFAIL(app_key, td, sptr,
765 "%s: value not given (%s:%d)",
766 td->name, __FILE__, __LINE__);
770 size = UTF8String_length(st);
771 if((ssize_t)size < 0) {
772 ASN__CTFAIL(app_key, td, sptr,
773 "%s: UTF-8: broken encoding (%s:%d)",
774 td->name, __FILE__, __LINE__);
779 /* Constraint check succeeded */
782 ASN__CTFAIL(app_key, td, sptr,
783 "%s: constraint failed (%s:%d)",
784 td->name, __FILE__, __LINE__);
790 memb_ut_ce_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
791 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
792 const UTF8String_t *st = (const UTF8String_t *)sptr;
796 ASN__CTFAIL(app_key, td, sptr,
797 "%s: value not given (%s:%d)",
798 td->name, __FILE__, __LINE__);
802 size = UTF8String_length(st);
803 if((ssize_t)size < 0) {
804 ASN__CTFAIL(app_key, td, sptr,
805 "%s: UTF-8: broken encoding (%s:%d)",
806 td->name, __FILE__, __LINE__);
811 /* Constraint check succeeded */
814 ASN__CTFAIL(app_key, td, sptr,
815 "%s: constraint failed (%s:%d)",
816 td->name, __FILE__, __LINE__);
822 memb_ut_ir_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
823 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
824 const UTF8String_t *st = (const UTF8String_t *)sptr;
827 ASN__CTFAIL(app_key, td, sptr,
828 "%s: value not given (%s:%d)",
829 td->name, __FILE__, __LINE__);
834 if(!check_permitted_alphabet_21(st)) {
835 /* Constraint check succeeded */
838 ASN__CTFAIL(app_key, td, sptr,
839 "%s: constraint failed (%s:%d)",
840 td->name, __FILE__, __LINE__);
846 memb_bm_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
847 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
848 const BMPString_t *st = (const BMPString_t *)sptr;
851 ASN__CTFAIL(app_key, td, sptr,
852 "%s: value not given (%s:%d)",
853 td->name, __FILE__, __LINE__);
858 if(!check_permitted_alphabet_23(st)) {
859 /* Constraint check succeeded */
862 ASN__CTFAIL(app_key, td, sptr,
863 "%s: constraint failed (%s:%d)",
864 td->name, __FILE__, __LINE__);
870 memb_bm_cs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
871 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
872 const BMPString_t *st = (const BMPString_t *)sptr;
876 ASN__CTFAIL(app_key, td, sptr,
877 "%s: value not given (%s:%d)",
878 td->name, __FILE__, __LINE__);
882 size = st->size >> 1; /* 2 byte per character */
885 && !check_permitted_alphabet_24(st)) {
886 /* Constraint check succeeded */
889 ASN__CTFAIL(app_key, td, sptr,
890 "%s: constraint failed (%s:%d)",
891 td->name, __FILE__, __LINE__);
897 memb_bm_ce_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
898 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
899 const BMPString_t *st = (const BMPString_t *)sptr;
902 ASN__CTFAIL(app_key, td, sptr,
903 "%s: value not given (%s:%d)",
904 td->name, __FILE__, __LINE__);
909 if(!check_permitted_alphabet_25(st)) {
910 /* Constraint check succeeded */
913 ASN__CTFAIL(app_key, td, sptr,
914 "%s: constraint failed (%s:%d)",
915 td->name, __FILE__, __LINE__);
921 memb_bm_ir_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
922 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
923 const BMPString_t *st = (const BMPString_t *)sptr;
926 ASN__CTFAIL(app_key, td, sptr,
927 "%s: value not given (%s:%d)",
928 td->name, __FILE__, __LINE__);
933 if(!check_permitted_alphabet_26(st)) {
934 /* Constraint check succeeded */
937 ASN__CTFAIL(app_key, td, sptr,
938 "%s: constraint failed (%s:%d)",
939 td->name, __FILE__, __LINE__);
944 static int asn_PER_MAP_bm_ir_26_v2c(unsigned int value) {
945 if(value >= sizeof(permitted_alphabet_table_26)/sizeof(permitted_alphabet_table_26[0]))
947 return permitted_alphabet_table_26[value] - 1;
949 static int asn_PER_MAP_bm_ir_26_c2v(unsigned int code) {
950 if(code >= sizeof(permitted_alphabet_code2value_26)/sizeof(permitted_alphabet_code2value_26[0]))
952 return permitted_alphabet_code2value_26[code];
955 memb_us_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
956 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
957 const UniversalString_t *st = (const UniversalString_t *)sptr;
960 ASN__CTFAIL(app_key, td, sptr,
961 "%s: value not given (%s:%d)",
962 td->name, __FILE__, __LINE__);
967 if(!check_permitted_alphabet_28(st)) {
968 /* Constraint check succeeded */
971 ASN__CTFAIL(app_key, td, sptr,
972 "%s: constraint failed (%s:%d)",
973 td->name, __FILE__, __LINE__);
979 memb_us_cs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
980 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
981 const UniversalString_t *st = (const UniversalString_t *)sptr;
985 ASN__CTFAIL(app_key, td, sptr,
986 "%s: value not given (%s:%d)",
987 td->name, __FILE__, __LINE__);
991 size = st->size >> 2; /* 4 byte per character */
994 && !check_permitted_alphabet_29(st)) {
995 /* Constraint check succeeded */
998 ASN__CTFAIL(app_key, td, sptr,
999 "%s: constraint failed (%s:%d)",
1000 td->name, __FILE__, __LINE__);
1006 memb_us_ce_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
1007 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
1008 const UniversalString_t *st = (const UniversalString_t *)sptr;
1011 ASN__CTFAIL(app_key, td, sptr,
1012 "%s: value not given (%s:%d)",
1013 td->name, __FILE__, __LINE__);
1018 if(!check_permitted_alphabet_30(st)) {
1019 /* Constraint check succeeded */
1022 ASN__CTFAIL(app_key, td, sptr,
1023 "%s: constraint failed (%s:%d)",
1024 td->name, __FILE__, __LINE__);
1030 memb_us_ir_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
1031 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
1032 const UniversalString_t *st = (const UniversalString_t *)sptr;
1035 ASN__CTFAIL(app_key, td, sptr,
1036 "%s: value not given (%s:%d)",
1037 td->name, __FILE__, __LINE__);
1042 if(!check_permitted_alphabet_31(st)) {
1043 /* Constraint check succeeded */
1046 ASN__CTFAIL(app_key, td, sptr,
1047 "%s: constraint failed (%s:%d)",
1048 td->name, __FILE__, __LINE__);
1053 static int asn_PER_MAP_us_ir_31_v2c(unsigned int value) {
1054 if(value >= sizeof(permitted_alphabet_table_31)/sizeof(permitted_alphabet_table_31[0]))
1056 return permitted_alphabet_table_31[value] - 1;
1058 static int asn_PER_MAP_us_ir_31_c2v(unsigned int code) {
1059 if(code >= sizeof(permitted_alphabet_code2value_31)/sizeof(permitted_alphabet_code2value_31[0]))
1061 return permitted_alphabet_code2value_31[code];
1064 /*** <<< CTDEFS [PDU] >>> ***/
1066 static asn_per_constraints_t asn_PER_memb_ia5_c_constr_5 CC_NOTUSED = {
1067 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1068 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1069 0, 0 /* No PER character map necessary */
1071 static asn_per_constraints_t asn_PER_memb_ia5_ce_constr_6 CC_NOTUSED = {
1072 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1073 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1074 0, 0 /* No PER character map necessary */
1076 static asn_per_constraints_t asn_PER_memb_ia5_ir_constr_7 CC_NOTUSED = {
1077 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1078 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1079 asn_PER_MAP_ia5_ir_7_v2c, /* Value to PER code map */
1080 asn_PER_MAP_ia5_ir_7_c2v /* PER code to value map */
1082 static asn_per_constraints_t asn_PER_memb_vs_c_constr_9 CC_NOTUSED = {
1083 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1084 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1085 0, 0 /* No PER character map necessary */
1087 static asn_per_constraints_t asn_PER_memb_vs_ce_constr_10 CC_NOTUSED = {
1088 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1089 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1090 0, 0 /* No PER character map necessary */
1092 static asn_per_constraints_t asn_PER_memb_vs_ir_constr_11 CC_NOTUSED = {
1093 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1094 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1095 asn_PER_MAP_vs_ir_11_v2c, /* Value to PER code map */
1096 asn_PER_MAP_vs_ir_11_c2v /* PER code to value map */
1098 static asn_per_constraints_t asn_PER_memb_pr_c_constr_13 CC_NOTUSED = {
1099 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1100 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1101 0, 0 /* No PER character map necessary */
1103 static asn_per_constraints_t asn_PER_memb_pr_ir_constr_14 CC_NOTUSED = {
1104 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1105 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1106 asn_PER_MAP_pr_ir_14_v2c, /* Value to PER code map */
1107 asn_PER_MAP_pr_ir_14_c2v /* PER code to value map */
1109 static asn_per_constraints_t asn_PER_memb_ns_c_constr_16 CC_NOTUSED = {
1110 { APC_CONSTRAINED, 3, 3, 53, 57 } /* (53..57) */,
1111 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1112 0, 0 /* No PER character map necessary */
1114 static asn_per_constraints_t asn_PER_memb_ns_ce_constr_17 CC_NOTUSED = {
1115 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1116 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1117 0, 0 /* No PER character map necessary */
1119 static asn_per_constraints_t asn_PER_memb_ns_ir_constr_18 CC_NOTUSED = {
1120 { APC_CONSTRAINED, 1, 1, 49, 57 } /* (49..57) */,
1121 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1122 asn_PER_MAP_ns_ir_18_v2c, /* Value to PER code map */
1123 asn_PER_MAP_ns_ir_18_c2v /* PER code to value map */
1125 static asn_per_constraints_t asn_PER_memb_ut_c_constr_19 CC_NOTUSED = {
1126 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1127 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1128 0, 0 /* No PER value map */
1130 static asn_per_constraints_t asn_PER_memb_ut_ce_constr_20 CC_NOTUSED = {
1131 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1132 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1133 0, 0 /* No PER value map */
1135 static asn_per_constraints_t asn_PER_memb_ut_ir_constr_21 CC_NOTUSED = {
1136 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1137 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1138 0, 0 /* No PER value map */
1140 static asn_per_constraints_t asn_PER_memb_bm_c_constr_23 CC_NOTUSED = {
1141 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1142 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1143 0, 0 /* No PER character map necessary */
1145 static asn_per_constraints_t asn_PER_memb_bm_cs_constr_24 CC_NOTUSED = {
1146 { APC_CONSTRAINED, 16, 16, 0, 65533 } /* (0..65533) */,
1147 { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */,
1148 0, 0 /* No PER character map necessary */
1150 static asn_per_constraints_t asn_PER_memb_bm_ce_constr_25 CC_NOTUSED = {
1151 { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */,
1152 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1153 0, 0 /* No PER character map necessary */
1155 static asn_per_constraints_t asn_PER_memb_bm_ir_constr_26 CC_NOTUSED = {
1156 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1157 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1158 asn_PER_MAP_bm_ir_26_v2c, /* Value to PER code map */
1159 asn_PER_MAP_bm_ir_26_c2v /* PER code to value map */
1161 static asn_per_constraints_t asn_PER_memb_us_c_constr_28 CC_NOTUSED = {
1162 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1163 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1164 0, 0 /* No PER character map necessary */
1166 static asn_per_constraints_t asn_PER_memb_us_cs_constr_29 CC_NOTUSED = {
1167 { APC_CONSTRAINED, 32, 32, 0, 2147483647 } /* (0..4294967295) */,
1168 { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */,
1169 0, 0 /* No PER character map necessary */
1171 static asn_per_constraints_t asn_PER_memb_us_ce_constr_30 CC_NOTUSED = {
1172 { APC_CONSTRAINED, 32, 32, 0, 2147483647 } /* special case 1 */
1174 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1175 0, 0 /* No PER character map necessary */
1177 static asn_per_constraints_t asn_PER_memb_us_ir_constr_31 CC_NOTUSED = {
1178 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1179 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1180 asn_PER_MAP_us_ir_31_v2c, /* Value to PER code map */
1181 asn_PER_MAP_us_ir_31_c2v /* PER code to value map */
1184 /*** <<< STAT-DEFS [PDU] >>> ***/
1186 static asn_TYPE_member_t asn_MBR_many_2[] = {
1187 { ATF_POINTER, 0, 0,
1188 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
1190 .type = &asn_DEF_PDU,
1192 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1193 0, 0, /* No default value */
1197 static const ber_tlv_tag_t asn_DEF_many_tags_2[] = {
1198 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
1199 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
1201 static asn_SET_OF_specifics_t asn_SPC_many_specs_2 = {
1202 sizeof(struct many),
1203 offsetof(struct many, _asn_ctx),
1204 0, /* XER encoding is XMLDelimitedItemList */
1206 static /* Use -fall-defs-global to expose */
1207 asn_TYPE_descriptor_t asn_DEF_many_2 = {
1210 &asn_OP_SEQUENCE_OF,
1211 asn_DEF_many_tags_2,
1212 sizeof(asn_DEF_many_tags_2)
1213 /sizeof(asn_DEF_many_tags_2[0]) - 1, /* 1 */
1214 asn_DEF_many_tags_2, /* Same as above */
1215 sizeof(asn_DEF_many_tags_2)
1216 /sizeof(asn_DEF_many_tags_2[0]), /* 2 */
1217 { 0, 0, SEQUENCE_OF_constraint },
1219 1, /* Single element */
1220 &asn_SPC_many_specs_2 /* Additional specs */
1223 asn_TYPE_member_t asn_MBR_PDU_1[] = {
1224 { ATF_POINTER, 31, offsetof(struct PDU, many),
1225 .tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
1227 .type = &asn_DEF_many_2,
1229 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1230 0, 0, /* No default value */
1233 { ATF_POINTER, 30, offsetof(struct PDU, ia5),
1234 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
1235 .tag_mode = -1, /* IMPLICIT tag at current level */
1236 .type = &asn_DEF_IA5String,
1238 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1239 0, 0, /* No default value */
1242 { ATF_POINTER, 29, offsetof(struct PDU, ia5_c),
1243 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
1244 .tag_mode = -1, /* IMPLICIT tag at current level */
1245 .type = &asn_DEF_IA5String,
1247 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ia5_c_constr_5, .general_constraints = memb_ia5_c_constraint_1 },
1248 0, 0, /* No default value */
1251 { ATF_POINTER, 28, offsetof(struct PDU, ia5_ce),
1252 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
1253 .tag_mode = -1, /* IMPLICIT tag at current level */
1254 .type = &asn_DEF_IA5String,
1256 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ia5_ce_constr_6, .general_constraints = memb_ia5_ce_constraint_1 },
1257 0, 0, /* No default value */
1260 { ATF_POINTER, 27, offsetof(struct PDU, ia5_ir),
1261 .tag = (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
1262 .tag_mode = -1, /* IMPLICIT tag at current level */
1263 .type = &asn_DEF_IA5String,
1265 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ia5_ir_constr_7, .general_constraints = memb_ia5_ir_constraint_1 },
1266 0, 0, /* No default value */
1269 { ATF_POINTER, 26, offsetof(struct PDU, vs),
1270 .tag = (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
1271 .tag_mode = -1, /* IMPLICIT tag at current level */
1272 .type = &asn_DEF_VisibleString,
1274 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1275 0, 0, /* No default value */
1278 { ATF_POINTER, 25, offsetof(struct PDU, vs_c),
1279 .tag = (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
1280 .tag_mode = -1, /* IMPLICIT tag at current level */
1281 .type = &asn_DEF_VisibleString,
1283 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_vs_c_constr_9, .general_constraints = memb_vs_c_constraint_1 },
1284 0, 0, /* No default value */
1287 { ATF_POINTER, 24, offsetof(struct PDU, vs_ce),
1288 .tag = (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
1289 .tag_mode = -1, /* IMPLICIT tag at current level */
1290 .type = &asn_DEF_VisibleString,
1292 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_vs_ce_constr_10, .general_constraints = memb_vs_ce_constraint_1 },
1293 0, 0, /* No default value */
1296 { ATF_POINTER, 23, offsetof(struct PDU, vs_ir),
1297 .tag = (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
1298 .tag_mode = -1, /* IMPLICIT tag at current level */
1299 .type = &asn_DEF_VisibleString,
1301 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_vs_ir_constr_11, .general_constraints = memb_vs_ir_constraint_1 },
1302 0, 0, /* No default value */
1305 { ATF_POINTER, 22, offsetof(struct PDU, pr),
1306 .tag = (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
1307 .tag_mode = -1, /* IMPLICIT tag at current level */
1308 .type = &asn_DEF_PrintableString,
1310 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1311 0, 0, /* No default value */
1314 { ATF_POINTER, 21, offsetof(struct PDU, pr_c),
1315 .tag = (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
1316 .tag_mode = -1, /* IMPLICIT tag at current level */
1317 .type = &asn_DEF_PrintableString,
1319 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_pr_c_constr_13, .general_constraints = memb_pr_c_constraint_1 },
1320 0, 0, /* No default value */
1323 { ATF_POINTER, 20, offsetof(struct PDU, pr_ir),
1324 .tag = (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
1325 .tag_mode = -1, /* IMPLICIT tag at current level */
1326 .type = &asn_DEF_PrintableString,
1328 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_pr_ir_constr_14, .general_constraints = memb_pr_ir_constraint_1 },
1329 0, 0, /* No default value */
1332 { ATF_POINTER, 19, offsetof(struct PDU, ns),
1333 .tag = (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
1334 .tag_mode = -1, /* IMPLICIT tag at current level */
1335 .type = &asn_DEF_NumericString,
1337 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1338 0, 0, /* No default value */
1341 { ATF_POINTER, 18, offsetof(struct PDU, ns_c),
1342 .tag = (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
1343 .tag_mode = -1, /* IMPLICIT tag at current level */
1344 .type = &asn_DEF_NumericString,
1346 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ns_c_constr_16, .general_constraints = memb_ns_c_constraint_1 },
1347 0, 0, /* No default value */
1350 { ATF_POINTER, 17, offsetof(struct PDU, ns_ce),
1351 .tag = (ASN_TAG_CLASS_CONTEXT | (14 << 2)),
1352 .tag_mode = -1, /* IMPLICIT tag at current level */
1353 .type = &asn_DEF_NumericString,
1355 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ns_ce_constr_17, .general_constraints = memb_ns_ce_constraint_1 },
1356 0, 0, /* No default value */
1359 { ATF_POINTER, 16, offsetof(struct PDU, ns_ir),
1360 .tag = (ASN_TAG_CLASS_CONTEXT | (15 << 2)),
1361 .tag_mode = -1, /* IMPLICIT tag at current level */
1362 .type = &asn_DEF_NumericString,
1364 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ns_ir_constr_18, .general_constraints = memb_ns_ir_constraint_1 },
1365 0, 0, /* No default value */
1368 { ATF_POINTER, 15, offsetof(struct PDU, ut_c),
1369 .tag = (ASN_TAG_CLASS_CONTEXT | (16 << 2)),
1370 .tag_mode = -1, /* IMPLICIT tag at current level */
1371 .type = &asn_DEF_UTF8String,
1373 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ut_c_constr_19, .general_constraints = memb_ut_c_constraint_1 },
1374 0, 0, /* No default value */
1377 { ATF_POINTER, 14, offsetof(struct PDU, ut_ce),
1378 .tag = (ASN_TAG_CLASS_CONTEXT | (17 << 2)),
1379 .tag_mode = -1, /* IMPLICIT tag at current level */
1380 .type = &asn_DEF_UTF8String,
1382 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ut_ce_constr_20, .general_constraints = memb_ut_ce_constraint_1 },
1383 0, 0, /* No default value */
1386 { ATF_POINTER, 13, offsetof(struct PDU, ut_ir),
1387 .tag = (ASN_TAG_CLASS_CONTEXT | (18 << 2)),
1388 .tag_mode = -1, /* IMPLICIT tag at current level */
1389 .type = &asn_DEF_UTF8String,
1391 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ut_ir_constr_21, .general_constraints = memb_ut_ir_constraint_1 },
1392 0, 0, /* No default value */
1395 { ATF_POINTER, 12, offsetof(struct PDU, bm),
1396 .tag = (ASN_TAG_CLASS_CONTEXT | (19 << 2)),
1397 .tag_mode = -1, /* IMPLICIT tag at current level */
1398 .type = &asn_DEF_BMPString,
1400 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1401 0, 0, /* No default value */
1404 { ATF_POINTER, 11, offsetof(struct PDU, bm_c),
1405 .tag = (ASN_TAG_CLASS_CONTEXT | (20 << 2)),
1406 .tag_mode = -1, /* IMPLICIT tag at current level */
1407 .type = &asn_DEF_BMPString,
1409 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_bm_c_constr_23, .general_constraints = memb_bm_c_constraint_1 },
1410 0, 0, /* No default value */
1413 { ATF_POINTER, 10, offsetof(struct PDU, bm_cs),
1414 .tag = (ASN_TAG_CLASS_CONTEXT | (21 << 2)),
1415 .tag_mode = -1, /* IMPLICIT tag at current level */
1416 .type = &asn_DEF_BMPString,
1418 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_bm_cs_constr_24, .general_constraints = memb_bm_cs_constraint_1 },
1419 0, 0, /* No default value */
1422 { ATF_POINTER, 9, offsetof(struct PDU, bm_ce),
1423 .tag = (ASN_TAG_CLASS_CONTEXT | (22 << 2)),
1424 .tag_mode = -1, /* IMPLICIT tag at current level */
1425 .type = &asn_DEF_BMPString,
1427 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_bm_ce_constr_25, .general_constraints = memb_bm_ce_constraint_1 },
1428 0, 0, /* No default value */
1431 { ATF_POINTER, 8, offsetof(struct PDU, bm_ir),
1432 .tag = (ASN_TAG_CLASS_CONTEXT | (23 << 2)),
1433 .tag_mode = -1, /* IMPLICIT tag at current level */
1434 .type = &asn_DEF_BMPString,
1436 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_bm_ir_constr_26, .general_constraints = memb_bm_ir_constraint_1 },
1437 0, 0, /* No default value */
1440 { ATF_POINTER, 7, offsetof(struct PDU, us),
1441 .tag = (ASN_TAG_CLASS_CONTEXT | (24 << 2)),
1442 .tag_mode = -1, /* IMPLICIT tag at current level */
1443 .type = &asn_DEF_UniversalString,
1445 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1446 0, 0, /* No default value */
1449 { ATF_POINTER, 6, offsetof(struct PDU, us_c),
1450 .tag = (ASN_TAG_CLASS_CONTEXT | (25 << 2)),
1451 .tag_mode = -1, /* IMPLICIT tag at current level */
1452 .type = &asn_DEF_UniversalString,
1454 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_us_c_constr_28, .general_constraints = memb_us_c_constraint_1 },
1455 0, 0, /* No default value */
1458 { ATF_POINTER, 5, offsetof(struct PDU, us_cs),
1459 .tag = (ASN_TAG_CLASS_CONTEXT | (26 << 2)),
1460 .tag_mode = -1, /* IMPLICIT tag at current level */
1461 .type = &asn_DEF_UniversalString,
1463 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_us_cs_constr_29, .general_constraints = memb_us_cs_constraint_1 },
1464 0, 0, /* No default value */
1467 { ATF_POINTER, 4, offsetof(struct PDU, us_ce),
1468 .tag = (ASN_TAG_CLASS_CONTEXT | (27 << 2)),
1469 .tag_mode = -1, /* IMPLICIT tag at current level */
1470 .type = &asn_DEF_UniversalString,
1472 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_us_ce_constr_30, .general_constraints = memb_us_ce_constraint_1 },
1473 0, 0, /* No default value */
1476 { ATF_POINTER, 3, offsetof(struct PDU, us_ir),
1477 .tag = (ASN_TAG_CLASS_CONTEXT | (28 << 2)),
1478 .tag_mode = -1, /* IMPLICIT tag at current level */
1479 .type = &asn_DEF_UniversalString,
1481 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_us_ir_constr_31, .general_constraints = memb_us_ir_constraint_1 },
1482 0, 0, /* No default value */
1485 { ATF_POINTER, 2, offsetof(struct PDU, real),
1486 .tag = (ASN_TAG_CLASS_CONTEXT | (29 << 2)),
1487 .tag_mode = -1, /* IMPLICIT tag at current level */
1488 .type = &asn_DEF_NativeReal,
1490 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1491 0, 0, /* No default value */
1494 { ATF_POINTER, 1, offsetof(struct PDU, oid),
1495 .tag = (ASN_TAG_CLASS_CONTEXT | (30 << 2)),
1496 .tag_mode = -1, /* IMPLICIT tag at current level */
1497 .type = &asn_DEF_OBJECT_IDENTIFIER,
1499 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
1500 0, 0, /* No default value */
1504 static const int asn_MAP_PDU_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 };
1505 static const ber_tlv_tag_t asn_DEF_PDU_tags_1[] = {
1506 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
1508 static const asn_TYPE_tag2member_t asn_MAP_PDU_tag2el_1[] = {
1509 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* many */
1510 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ia5 */
1511 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ia5-c */
1512 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ia5-ce */
1513 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ia5-ir */
1514 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* vs */
1515 { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* vs-c */
1516 { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* vs-ce */
1517 { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* vs-ir */
1518 { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* pr */
1519 { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* pr-c */
1520 { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* pr-ir */
1521 { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* ns */
1522 { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* ns-c */
1523 { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* ns-ce */
1524 { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* ns-ir */
1525 { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* ut-c */
1526 { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* ut-ce */
1527 { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* ut-ir */
1528 { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* bm */
1529 { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* bm-c */
1530 { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* bm-cs */
1531 { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* bm-ce */
1532 { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 }, /* bm-ir */
1533 { (ASN_TAG_CLASS_CONTEXT | (24 << 2)), 24, 0, 0 }, /* us */
1534 { (ASN_TAG_CLASS_CONTEXT | (25 << 2)), 25, 0, 0 }, /* us-c */
1535 { (ASN_TAG_CLASS_CONTEXT | (26 << 2)), 26, 0, 0 }, /* us-cs */
1536 { (ASN_TAG_CLASS_CONTEXT | (27 << 2)), 27, 0, 0 }, /* us-ce */
1537 { (ASN_TAG_CLASS_CONTEXT | (28 << 2)), 28, 0, 0 }, /* us-ir */
1538 { (ASN_TAG_CLASS_CONTEXT | (29 << 2)), 29, 0, 0 }, /* real */
1539 { (ASN_TAG_CLASS_CONTEXT | (30 << 2)), 30, 0, 0 } /* oid */
1541 asn_SEQUENCE_specifics_t asn_SPC_PDU_specs_1 = {
1543 offsetof(struct PDU, _asn_ctx),
1544 .tag2el = asn_MAP_PDU_tag2el_1,
1545 .tag2el_count = 31, /* Count of tags in the map */
1546 asn_MAP_PDU_oms_1, /* Optional members */
1547 31, 0, /* Root/Additions */
1548 -1, /* First extension addition */
1550 asn_TYPE_descriptor_t asn_DEF_PDU = {
1555 sizeof(asn_DEF_PDU_tags_1)
1556 /sizeof(asn_DEF_PDU_tags_1[0]), /* 1 */
1557 asn_DEF_PDU_tags_1, /* Same as above */
1558 sizeof(asn_DEF_PDU_tags_1)
1559 /sizeof(asn_DEF_PDU_tags_1[0]), /* 1 */
1560 { 0, 0, SEQUENCE_constraint },
1562 31, /* Elements count */
1563 &asn_SPC_PDU_specs_1 /* Additional specs */