diff options
Diffstat (limited to 'tests/69-reserved-words-OK.asn1.-Pfwide-types')
-rw-r--r-- | tests/69-reserved-words-OK.asn1.-Pfwide-types | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/tests/69-reserved-words-OK.asn1.-Pfwide-types b/tests/69-reserved-words-OK.asn1.-Pfwide-types new file mode 100644 index 00000000..4ee72ad4 --- /dev/null +++ b/tests/69-reserved-words-OK.asn1.-Pfwide-types @@ -0,0 +1,198 @@ + +/*** <<< INCLUDES [T] >>> ***/ + +#include <INTEGER.h> +#include <OCTET_STRING.h> +#include <REAL.h> +#include <constr_SET.h> +#include <constr_SEQUENCE.h> + +/*** <<< DEPS [T] >>> ***/ + + +/* + * Method of determining the components presence + */ +typedef enum class_PR { +} class_PR; + +/*** <<< TYPE-DECLS [T] >>> ***/ + +typedef struct T { + INTEGER_t Int; + OCTET_STRING_t Char; + struct Class { + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Presence bitmask: ASN_SET_ISPRESENT(pclass, class_PR_x) */ + unsigned int _presence_map + [((0+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))]; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } Class; + REAL_t Double; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} T_t; + +/*** <<< FUNC-DECLS [T] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_T; + +/*** <<< CODE [T] >>> ***/ + +static int +memb_char_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 1)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + + +/*** <<< STAT-DEFS [T] >>> ***/ + +static ber_tlv_tag_t asn_DEF_class_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)) +}; +static uint8_t asn_MAP_class_mmap_4[(0 + (8 * sizeof(unsigned int)) - 1) / 8] = { + 0 +}; +static asn_SET_specifics_t asn_SPC_class_specs_4 = { + sizeof(struct Class), + offsetof(struct Class, _asn_ctx), + offsetof(struct Class, _presence_map), + asn_MAP_class_tag2el_4, + 0, /* Count of tags in the map */ + asn_MAP_class_tag2el_4, /* Same as above */ + 0, /* Count of tags in the CXER map */ + 1, /* Whether extensible */ + (unsigned int *)asn_MAP_class_mmap_4 /* Mandatory elements map */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_class_4 = { + "class", + "class", + SET_free, + SET_print, + SET_constraint, + SET_decode_ber, + SET_encode_der, + SET_decode_xer, + SET_encode_xer, + 0, 0, /* No PER support, use "-gen-PER" to enable */ + 0, /* Use generic outmost tag fetcher */ + asn_DEF_class_tags_4, + sizeof(asn_DEF_class_tags_4) + /sizeof(asn_DEF_class_tags_4[0]), /* 1 */ + asn_DEF_class_tags_4, /* Same as above */ + sizeof(asn_DEF_class_tags_4) + /sizeof(asn_DEF_class_tags_4[0]), /* 1 */ + 0, /* No PER visible constraints */ + 0, 0, /* No members */ + &asn_SPC_class_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_T_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct T, Int), + .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + .tag_mode = 0, + .type = &asn_DEF_INTEGER, + .memb_constraints = 0, /* Defer constraints checking to the member type */ + .per_constraints = 0, /* PER is not compiled, use -gen-PER */ + .default_value = 0, + .name = "int" + }, + { ATF_NOFLAGS, 0, offsetof(struct T, Char), + .tag = (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + .tag_mode = 0, + .type = &asn_DEF_OCTET_STRING, + .memb_constraints = memb_char_constraint_1, + .per_constraints = 0, /* PER is not compiled, use -gen-PER */ + .default_value = 0, + .name = "char" + }, + { ATF_NOFLAGS, 0, offsetof(struct T, Class), + .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), + .tag_mode = 0, + .type = &asn_DEF_class_4, + .memb_constraints = 0, /* Defer constraints checking to the member type */ + .per_constraints = 0, /* PER is not compiled, use -gen-PER */ + .default_value = 0, + .name = "class" + }, + { ATF_NOFLAGS, 0, offsetof(struct T, Double), + .tag = (ASN_TAG_CLASS_UNIVERSAL | (9 << 2)), + .tag_mode = 0, + .type = &asn_DEF_REAL, + .memb_constraints = 0, /* Defer constraints checking to the member type */ + .per_constraints = 0, /* PER is not compiled, use -gen-PER */ + .default_value = 0, + .name = "double" + }, +}; +static ber_tlv_tag_t asn_DEF_T_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_TYPE_tag2member_t asn_MAP_T_tag2el_1[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* int at 15 */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* char at 16 */ + { (ASN_TAG_CLASS_UNIVERSAL | (9 << 2)), 3, 0, 0 }, /* double at 18 */ + { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 2, 0, 0 } /* class at 17 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_T_specs_1 = { + sizeof(struct T), + offsetof(struct T, _asn_ctx), + asn_MAP_T_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_T = { + "T", + "T", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + 0, 0, /* No PER support, use "-gen-PER" to enable */ + 0, /* Use generic outmost tag fetcher */ + asn_DEF_T_tags_1, + sizeof(asn_DEF_T_tags_1) + /sizeof(asn_DEF_T_tags_1[0]), /* 1 */ + asn_DEF_T_tags_1, /* Same as above */ + sizeof(asn_DEF_T_tags_1) + /sizeof(asn_DEF_T_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_T_1, + 4, /* Elements count */ + &asn_SPC_T_specs_1 /* Additional specs */ +}; + |