/*** <<< INCLUDES [Test-structure-1] >>> ***/ #include #include #include #include #include #include #include /*** <<< DEPS [Test-structure-1] >>> ***/ extern asn1_TYPE_descriptor_t asn1_DEF_Test_structure_1; /*** <<< TYPE-DECLS [Test-structure-1] >>> ***/ typedef struct Test_structure_1 { struct t_member1 { A_SET_OF(struct Test_structure_1) list; /* Context for parsing across buffer boundaries */ ber_dec_ctx_t _ber_dec_ctx; } t_member1; struct t_member2 { A_SEQUENCE_OF(struct Test_structure_1) list; /* Context for parsing across buffer boundaries */ ber_dec_ctx_t _ber_dec_ctx; } t_member2; struct Test_structure_1 *t_member3 /* OPTIONAL */; INTEGER_t t_member4; /* Context for parsing across buffer boundaries */ ber_dec_ctx_t _ber_dec_ctx; } Test_structure_1_t; /*** <<< STAT-DEFS [Test-structure-1] >>> ***/ static asn1_TYPE_member_t asn1_MBR_t_member1[] = { { ATF_NOFLAGS, 0, 0, .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, .type = (void *)&asn1_DEF_Test_structure_1, .memb_constraints = 0, /* Defer to actual type */ .name = "" }, }; static ber_tlv_tag_t asn1_DEF_t_member1_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)) }; static asn1_SET_OF_specifics_t asn1_DEF_t_member1_specs = { sizeof(struct t_member1), offsetof(struct t_member1, _ber_dec_ctx), }; static /* Use -fall-defs-global to expose */ asn1_TYPE_descriptor_t asn1_DEF_t_member1 = { "t-member1", SET_OF_constraint, SET_OF_decode_ber, SET_OF_encode_der, SET_OF_print, SET_OF_free, 0, /* Use generic outmost tag fetcher */ asn1_DEF_t_member1_tags, sizeof(asn1_DEF_t_member1_tags) /sizeof(asn1_DEF_t_member1_tags[0]), /* 1 */ asn1_DEF_t_member1_tags, /* Same as above */ sizeof(asn1_DEF_t_member1_tags) /sizeof(asn1_DEF_t_member1_tags[0]), /* 1 */ 1, /* Whether CONSTRUCTED */ asn1_MBR_t_member1, 1, /* Single element */ &asn1_DEF_t_member1_specs /* Additional specs */ }; static asn1_TYPE_member_t asn1_MBR_t_member2[] = { { ATF_NOFLAGS, 0, 0, .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, .type = (void *)&asn1_DEF_Test_structure_1, .memb_constraints = 0, /* Defer to actual type */ .name = "" }, }; static ber_tlv_tag_t asn1_DEF_t_member2_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static asn1_SET_OF_specifics_t asn1_DEF_t_member2_specs = { sizeof(struct t_member2), offsetof(struct t_member2, _ber_dec_ctx), }; static /* Use -fall-defs-global to expose */ asn1_TYPE_descriptor_t asn1_DEF_t_member2 = { "t-member2", SEQUENCE_OF_constraint, SEQUENCE_OF_decode_ber, SEQUENCE_OF_encode_der, SEQUENCE_OF_print, SEQUENCE_OF_free, 0, /* Use generic outmost tag fetcher */ asn1_DEF_t_member2_tags, sizeof(asn1_DEF_t_member2_tags) /sizeof(asn1_DEF_t_member2_tags[0]), /* 1 */ asn1_DEF_t_member2_tags, /* Same as above */ sizeof(asn1_DEF_t_member2_tags) /sizeof(asn1_DEF_t_member2_tags[0]), /* 1 */ 1, /* Whether CONSTRUCTED */ asn1_MBR_t_member2, 1, /* Single element */ &asn1_DEF_t_member2_specs /* Additional specs */ }; static asn1_TYPE_member_t asn1_MBR_Test_structure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member1), .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), .tag_mode = 0, .type = (void *)&asn1_DEF_t_member1, .memb_constraints = 0, /* Defer to actual type */ .name = "t-member1" }, { ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member2), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, .type = (void *)&asn1_DEF_t_member2, .memb_constraints = 0, /* Defer to actual type */ .name = "t-member2" }, { ATF_POINTER, 1, offsetof(struct Test_structure_1, t_member3), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, .type = (void *)&asn1_DEF_Test_structure_1, .memb_constraints = 0, /* Defer to actual type */ .name = "t-member3" }, { ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member4), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = (void *)&asn1_DEF_INTEGER, .memb_constraints = 0, /* Defer to actual type */ .name = "t-member4" }, }; static ber_tlv_tag_t asn1_DEF_Test_structure_1_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static asn1_TYPE_tag2member_t asn1_DEF_Test_structure_1_tag2el[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, 0, 0 }, /* t-member4 at 19 */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* t-member2 at 16 */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 }, /* t-member3 at 17 */ { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 }, /* t-member1 at 15 */ }; static asn1_SEQUENCE_specifics_t asn1_DEF_Test_structure_1_specs = { sizeof(struct Test_structure_1), offsetof(struct Test_structure_1, _ber_dec_ctx), asn1_DEF_Test_structure_1_tag2el, 4, /* Count of tags in the map */ -1, /* Start extensions */ -1 /* Stop extensions */ }; asn1_TYPE_descriptor_t asn1_DEF_Test_structure_1 = { "Test-structure-1", SEQUENCE_constraint, SEQUENCE_decode_ber, SEQUENCE_encode_der, SEQUENCE_print, SEQUENCE_free, 0, /* Use generic outmost tag fetcher */ asn1_DEF_Test_structure_1_tags, sizeof(asn1_DEF_Test_structure_1_tags) /sizeof(asn1_DEF_Test_structure_1_tags[0]), /* 1 */ asn1_DEF_Test_structure_1_tags, /* Same as above */ sizeof(asn1_DEF_Test_structure_1_tags) /sizeof(asn1_DEF_Test_structure_1_tags[0]), /* 1 */ 1, /* Whether CONSTRUCTED */ asn1_MBR_Test_structure_1, 4, /* Elements count */ &asn1_DEF_Test_structure_1_specs /* Additional specs */ }; /*** <<< INCLUDES [Choice-1] >>> ***/ #include #include #include #include #include /*** <<< DEPS [Choice-1] >>> ***/ typedef enum Choice_1_PR { Choice_1_PR_NOTHING, /* No components present */ Choice_1_PR_and, Choice_1_PR_or, Choice_1_PR_not, Choice_1_PR_other, } Choice_1_PR; extern asn1_TYPE_descriptor_t asn1_DEF_Choice_1; /*** <<< TYPE-DECLS [Choice-1] >>> ***/ typedef struct Choice_1 { Choice_1_PR present; union { struct Choice_1 *and; struct or { A_SET_OF(struct Choice_1) list; /* Context for parsing across buffer boundaries */ ber_dec_ctx_t _ber_dec_ctx; } or; struct Choice_1 *not; INTEGER_t other; } choice; /* Context for parsing across buffer boundaries */ ber_dec_ctx_t _ber_dec_ctx; } Choice_1_t; /*** <<< STAT-DEFS [Choice-1] >>> ***/ static asn1_TYPE_member_t asn1_MBR_or[] = { { ATF_NOFLAGS, 0, 0, .tag = -1 /* Ambiguous tag (CHOICE?) */, .tag_mode = 0, .type = (void *)&asn1_DEF_Choice_1, .memb_constraints = 0, /* Defer to actual type */ .name = "" }, }; static ber_tlv_tag_t asn1_DEF_or_tags[] = { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)) }; static asn1_SET_OF_specifics_t asn1_DEF_or_specs = { sizeof(struct or), offsetof(struct or, _ber_dec_ctx), }; static /* Use -fall-defs-global to expose */ asn1_TYPE_descriptor_t asn1_DEF_or = { "or", SET_OF_constraint, SET_OF_decode_ber, SET_OF_encode_der, SET_OF_print, SET_OF_free, 0, /* Use generic outmost tag fetcher */ asn1_DEF_or_tags, sizeof(asn1_DEF_or_tags) /sizeof(asn1_DEF_or_tags[0]) - 1, /* 1 */ asn1_DEF_or_tags, /* Same as above */ sizeof(asn1_DEF_or_tags) /sizeof(asn1_DEF_or_tags[0]), /* 2 */ 1, /* Whether CONSTRUCTED */ asn1_MBR_or, 1, /* Single element */ &asn1_DEF_or_specs /* Additional specs */ }; static asn1_TYPE_member_t asn1_MBR_Choice_1[] = { { ATF_POINTER, 0, offsetof(struct Choice_1, choice.and), .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)), .tag_mode = +1, /* EXPLICIT tag at current level */ .type = (void *)&asn1_DEF_Choice_1, .memb_constraints = 0, /* Defer to actual type */ .name = "and" }, { ATF_NOFLAGS, 0, offsetof(struct Choice_1, choice.or), .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)), .tag_mode = -1, /* IMPLICIT tag at current level */ .type = (void *)&asn1_DEF_or, .memb_constraints = 0, /* Defer to actual type */ .name = "or" }, { ATF_POINTER, 0, offsetof(struct Choice_1, choice.not), .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)), .tag_mode = +1, /* EXPLICIT tag at current level */ .type = (void *)&asn1_DEF_Choice_1, .memb_constraints = 0, /* Defer to actual type */ .name = "not" }, { ATF_NOFLAGS, 0, offsetof(struct Choice_1, choice.other), .tag = (ASN_TAG_CLASS_CONTEXT | (4 << 2)), .tag_mode = +1, /* EXPLICIT tag at current level */ .type = (void *)&asn1_DEF_INTEGER, .memb_constraints = 0, /* Defer to actual type */ .name = "other" }, }; static asn1_TYPE_tag2member_t asn1_DEF_Choice_1_tag2el[] = { { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* and at 22 */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* or at 23 */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* not at 24 */ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* other at 26 */ }; static asn1_CHOICE_specifics_t asn1_DEF_Choice_1_specs = { sizeof(struct Choice_1), offsetof(struct Choice_1, _ber_dec_ctx), offsetof(struct Choice_1, present), sizeof(((struct Choice_1 *)0)->present), asn1_DEF_Choice_1_tag2el, 4, /* Count of tags in the map */ 0 /* Whether extensible */ }; asn1_TYPE_descriptor_t asn1_DEF_Choice_1 = { "Choice-1", CHOICE_constraint, CHOICE_decode_ber, CHOICE_encode_der, CHOICE_print, CHOICE_free, CHOICE_outmost_tag, 0, /* No effective tags (pointer) */ 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ 1, /* Whether CONSTRUCTED */ asn1_MBR_Choice_1, 4, /* Elements count */ &asn1_DEF_Choice_1_specs /* Additional specs */ };