diff options
author | Lev Walkin <vlm@lionet.info> | 2004-09-29 13:19:12 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2004-09-29 13:19:12 +0000 |
commit | 1ca69678d466e9f36d805e21bbddb4bd114f3834 (patch) | |
tree | 4368f3101105a3851d84ae811acd46f1b97c936b /tests | |
parent | 0352bd898e3ac3478721eae58b3a244c120f4534 (diff) |
added cross-referenced types
Diffstat (limited to 'tests')
-rw-r--r-- | tests/43-recursion-OK.asn1 | 3 | ||||
-rw-r--r-- | tests/43-recursion-OK.asn1.-P | 332 |
2 files changed, 255 insertions, 80 deletions
diff --git a/tests/43-recursion-OK.asn1 b/tests/43-recursion-OK.asn1 index f2ee3eb4..782f6c3d 100644 --- a/tests/43-recursion-OK.asn1 +++ b/tests/43-recursion-OK.asn1 @@ -25,4 +25,7 @@ BEGIN other [4] INTEGER } + Test-structure-2 ::= SET { m1 Test-structure-3 OPTIONAL } + Test-structure-3 ::= SET { m1 Test-structure-2 OPTIONAL } + END diff --git a/tests/43-recursion-OK.asn1.-P b/tests/43-recursion-OK.asn1.-P index 58fd39a9..885e6352 100644 --- a/tests/43-recursion-OK.asn1.-P +++ b/tests/43-recursion-OK.asn1.-P @@ -11,7 +11,9 @@ /*** <<< DEPS [Test-structure-1] >>> ***/ -extern asn1_TYPE_descriptor_t asn1_DEF_Test_structure_1; + +struct Test_structure_1; /* Forward declaration */ +extern asn_TYPE_descriptor_t asn_DEF_Test_structure_1; /*** <<< TYPE-DECLS [Test-structure-1] >>> ***/ @@ -21,42 +23,42 @@ typedef struct Test_structure_1 { A_SET_OF(struct Test_structure_1) list; /* Context for parsing across buffer boundaries */ - ber_dec_ctx_t _ber_dec_ctx; + asn_struct_ctx_t _asn_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; + asn_struct_ctx_t _asn_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; + asn_struct_ctx_t _asn_ctx; } Test_structure_1_t; /*** <<< STAT-DEFS [Test-structure-1] >>> ***/ -static asn1_TYPE_member_t asn1_MBR_t_member1[] = { +static asn_TYPE_member_t asn_MBR_t_member1[] = { { ATF_NOFLAGS, 0, 0, .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, - .type = (void *)&asn1_DEF_Test_structure_1, + .type = (void *)&asn_DEF_Test_structure_1, .memb_constraints = 0, /* Defer to actual type */ .name = "" }, }; -static ber_tlv_tag_t asn1_DEF_t_member1_tags[] = { +static ber_tlv_tag_t asn_DEF_t_member1_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)) }; -static asn1_SET_OF_specifics_t asn1_DEF_t_member1_specs = { +static asn_SET_OF_specifics_t asn_DEF_t_member1_specs = { sizeof(struct t_member1), - offsetof(struct t_member1, _ber_dec_ctx), + offsetof(struct t_member1, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; static /* Use -fall-defs-global to expose */ -asn1_TYPE_descriptor_t asn1_DEF_t_member1 = { +asn_TYPE_descriptor_t asn_DEF_t_member1 = { "t-member1", SET_OF_free, SET_OF_print, @@ -66,36 +68,36 @@ asn1_TYPE_descriptor_t asn1_DEF_t_member1 = { 0, /* Not implemented yet */ SET_OF_encode_xer, 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 */ - asn1_MBR_t_member1, + asn_DEF_t_member1_tags, + sizeof(asn_DEF_t_member1_tags) + /sizeof(asn_DEF_t_member1_tags[0]), /* 1 */ + asn_DEF_t_member1_tags, /* Same as above */ + sizeof(asn_DEF_t_member1_tags) + /sizeof(asn_DEF_t_member1_tags[0]), /* 1 */ + asn_MBR_t_member1, 1, /* Single element */ - &asn1_DEF_t_member1_specs /* Additional specs */ + &asn_DEF_t_member1_specs /* Additional specs */ }; -static asn1_TYPE_member_t asn1_MBR_t_member2[] = { +static asn_TYPE_member_t asn_MBR_t_member2[] = { { ATF_NOFLAGS, 0, 0, .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, - .type = (void *)&asn1_DEF_Test_structure_1, + .type = (void *)&asn_DEF_Test_structure_1, .memb_constraints = 0, /* Defer to actual type */ .name = "" }, }; -static ber_tlv_tag_t asn1_DEF_t_member2_tags[] = { +static ber_tlv_tag_t asn_DEF_t_member2_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn1_SET_OF_specifics_t asn1_DEF_t_member2_specs = { +static asn_SET_OF_specifics_t asn_DEF_t_member2_specs = { sizeof(struct t_member2), - offsetof(struct t_member2, _ber_dec_ctx), + offsetof(struct t_member2, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; static /* Use -fall-defs-global to expose */ -asn1_TYPE_descriptor_t asn1_DEF_t_member2 = { +asn_TYPE_descriptor_t asn_DEF_t_member2 = { "t-member2", SEQUENCE_OF_free, SEQUENCE_OF_print, @@ -105,65 +107,65 @@ asn1_TYPE_descriptor_t asn1_DEF_t_member2 = { 0, /* Not implemented yet */ SEQUENCE_OF_encode_xer, 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 */ - asn1_MBR_t_member2, + asn_DEF_t_member2_tags, + sizeof(asn_DEF_t_member2_tags) + /sizeof(asn_DEF_t_member2_tags[0]), /* 1 */ + asn_DEF_t_member2_tags, /* Same as above */ + sizeof(asn_DEF_t_member2_tags) + /sizeof(asn_DEF_t_member2_tags[0]), /* 1 */ + asn_MBR_t_member2, 1, /* Single element */ - &asn1_DEF_t_member2_specs /* Additional specs */ + &asn_DEF_t_member2_specs /* Additional specs */ }; -static asn1_TYPE_member_t asn1_MBR_Test_structure_1[] = { +static asn_TYPE_member_t asn_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, + .type = (void *)&asn_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, + .type = (void *)&asn_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, + .type = (void *)&asn_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, + .type = (void *)&asn_DEF_INTEGER, .memb_constraints = 0, /* Defer to actual type */ .name = "t-member4" }, }; -static ber_tlv_tag_t asn1_DEF_Test_structure_1_tags[] = { +static ber_tlv_tag_t asn_DEF_Test_structure_1_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn1_TYPE_tag2member_t asn1_DEF_Test_structure_1_tag2el[] = { +static asn_TYPE_tag2member_t asn_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 = { +static asn_SEQUENCE_specifics_t asn_DEF_Test_structure_1_specs = { sizeof(struct Test_structure_1), - offsetof(struct Test_structure_1, _ber_dec_ctx), - asn1_DEF_Test_structure_1_tag2el, + offsetof(struct Test_structure_1, _asn_ctx), + asn_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 = { +asn_TYPE_descriptor_t asn_DEF_Test_structure_1 = { "Test-structure-1", SEQUENCE_free, SEQUENCE_print, @@ -173,15 +175,15 @@ asn1_TYPE_descriptor_t asn1_DEF_Test_structure_1 = { 0, /* Not implemented yet */ SEQUENCE_encode_xer, 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 */ - asn1_MBR_Test_structure_1, + asn_DEF_Test_structure_1_tags, + sizeof(asn_DEF_Test_structure_1_tags) + /sizeof(asn_DEF_Test_structure_1_tags[0]), /* 1 */ + asn_DEF_Test_structure_1_tags, /* Same as above */ + sizeof(asn_DEF_Test_structure_1_tags) + /sizeof(asn_DEF_Test_structure_1_tags[0]), /* 1 */ + asn_MBR_Test_structure_1, 4, /* Elements count */ - &asn1_DEF_Test_structure_1_specs /* Additional specs */ + &asn_DEF_Test_structure_1_specs /* Additional specs */ }; @@ -202,7 +204,11 @@ typedef enum Choice_1_PR { Choice_1_PR_not, Choice_1_PR_other, } Choice_1_PR; -extern asn1_TYPE_descriptor_t asn1_DEF_Choice_1; + +struct Choice_1; /* Forward declaration */ + +struct Choice_1; /* Forward declaration */ +extern asn_TYPE_descriptor_t asn_DEF_Choice_1; /*** <<< TYPE-DECLS [Choice-1] >>> ***/ @@ -215,38 +221,38 @@ typedef struct Choice_1 { A_SET_OF(struct Choice_1) list; /* Context for parsing across buffer boundaries */ - ber_dec_ctx_t _ber_dec_ctx; + asn_struct_ctx_t _asn_ctx; } or; struct Choice_1 *not; INTEGER_t other; } choice; /* Context for parsing across buffer boundaries */ - ber_dec_ctx_t _ber_dec_ctx; + asn_struct_ctx_t _asn_ctx; } Choice_1_t; /*** <<< STAT-DEFS [Choice-1] >>> ***/ -static asn1_TYPE_member_t asn1_MBR_or[] = { +static asn_TYPE_member_t asn_MBR_or[] = { { ATF_NOFLAGS, 0, 0, .tag = -1 /* Ambiguous tag (CHOICE?) */, .tag_mode = 0, - .type = (void *)&asn1_DEF_Choice_1, + .type = (void *)&asn_DEF_Choice_1, .memb_constraints = 0, /* Defer to actual type */ .name = "" }, }; -static ber_tlv_tag_t asn1_DEF_or_tags[] = { +static ber_tlv_tag_t asn_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 = { +static asn_SET_OF_specifics_t asn_DEF_or_specs = { sizeof(struct or), - offsetof(struct or, _ber_dec_ctx), + offsetof(struct or, _asn_ctx), 1, /* XER encoding is XMLValueList */ }; static /* Use -fall-defs-global to expose */ -asn1_TYPE_descriptor_t asn1_DEF_or = { +asn_TYPE_descriptor_t asn_DEF_or = { "or", SET_OF_free, SET_OF_print, @@ -256,63 +262,63 @@ asn1_TYPE_descriptor_t asn1_DEF_or = { 0, /* Not implemented yet */ SET_OF_encode_xer, 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 */ - asn1_MBR_or, + asn_DEF_or_tags, + sizeof(asn_DEF_or_tags) + /sizeof(asn_DEF_or_tags[0]) - 1, /* 1 */ + asn_DEF_or_tags, /* Same as above */ + sizeof(asn_DEF_or_tags) + /sizeof(asn_DEF_or_tags[0]), /* 2 */ + asn_MBR_or, 1, /* Single element */ - &asn1_DEF_or_specs /* Additional specs */ + &asn_DEF_or_specs /* Additional specs */ }; -static asn1_TYPE_member_t asn1_MBR_Choice_1[] = { +static asn_TYPE_member_t asn_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, + .type = (void *)&asn_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, + .type = (void *)&asn_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, + .type = (void *)&asn_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, + .type = (void *)&asn_DEF_INTEGER, .memb_constraints = 0, /* Defer to actual type */ .name = "other" }, }; -static asn1_TYPE_tag2member_t asn1_DEF_Choice_1_tag2el[] = { +static asn_TYPE_tag2member_t asn_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 = { +static asn_CHOICE_specifics_t asn_DEF_Choice_1_specs = { sizeof(struct Choice_1), - offsetof(struct Choice_1, _ber_dec_ctx), + offsetof(struct Choice_1, _asn_ctx), offsetof(struct Choice_1, present), sizeof(((struct Choice_1 *)0)->present), - asn1_DEF_Choice_1_tag2el, + asn_DEF_Choice_1_tag2el, 4, /* Count of tags in the map */ 0 /* Whether extensible */ }; -asn1_TYPE_descriptor_t asn1_DEF_Choice_1 = { +asn_TYPE_descriptor_t asn_DEF_Choice_1 = { "Choice-1", CHOICE_free, CHOICE_print, @@ -326,8 +332,174 @@ asn1_TYPE_descriptor_t asn1_DEF_Choice_1 = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - asn1_MBR_Choice_1, + asn_MBR_Choice_1, 4, /* Elements count */ - &asn1_DEF_Choice_1_specs /* Additional specs */ + &asn_DEF_Choice_1_specs /* Additional specs */ +}; + + +/*** <<< INCLUDES [Test-structure-2] >>> ***/ + +#include <Test-structure-3.h> +#include <constr_SET.h> + +/*** <<< DEPS [Test-structure-2] >>> ***/ + + +/* + * Method of determining the components presence + */ +typedef enum Test_structure_2_PR { + Test_structure_2_PR_m1, /* Member m1 is present */ +} Test_structure_2_PR; + +struct Test_structure_3; /* Forward declaration */ +extern asn_TYPE_descriptor_t asn_DEF_Test_structure_2; + +/*** <<< TYPE-DECLS [Test-structure-2] >>> ***/ + + +typedef struct Test_structure_2 { + struct Test_structure_3 *m1 /* OPTIONAL */; + + /* Presence bitmask: ASN_SET_ISPRESENT(pTest_structure_2, Test_structure_2_PR_x) */ + unsigned int _presence_map + [((1+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))]; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Test_structure_2_t; + +/*** <<< STAT-DEFS [Test-structure-2] >>> ***/ + +static asn_TYPE_member_t asn_MBR_Test_structure_2[] = { + { ATF_POINTER, 1, offsetof(struct Test_structure_2, m1), + .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), + .tag_mode = 0, + .type = (void *)&asn_DEF_Test_structure_3, + .memb_constraints = 0, /* Defer to actual type */ + .name = "m1" + }, +}; +static ber_tlv_tag_t asn_DEF_Test_structure_2_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)) +}; +static asn_TYPE_tag2member_t asn_DEF_Test_structure_2_tag2el[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 }, /* m1 at 28 */ +}; +static uint8_t asn_DEF_Test_structure_2_mmap[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = { + (0 << 7) +}; +static asn_SET_specifics_t asn_DEF_Test_structure_2_specs = { + sizeof(struct Test_structure_2), + offsetof(struct Test_structure_2, _asn_ctx), + offsetof(struct Test_structure_2, _presence_map), + asn_DEF_Test_structure_2_tag2el, + 1, /* Count of tags in the map */ + 0, /* Whether extensible */ + (unsigned int *)asn_DEF_Test_structure_2_mmap /* Mandatory elements map */ +}; +asn_TYPE_descriptor_t asn_DEF_Test_structure_2 = { + "Test-structure-2", + SET_free, + SET_print, + SET_constraint, + SET_decode_ber, + SET_encode_der, + 0, /* Not implemented yet */ + SET_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_Test_structure_2_tags, + sizeof(asn_DEF_Test_structure_2_tags) + /sizeof(asn_DEF_Test_structure_2_tags[0]), /* 1 */ + asn_DEF_Test_structure_2_tags, /* Same as above */ + sizeof(asn_DEF_Test_structure_2_tags) + /sizeof(asn_DEF_Test_structure_2_tags[0]), /* 1 */ + asn_MBR_Test_structure_2, + 1, /* Elements count */ + &asn_DEF_Test_structure_2_specs /* Additional specs */ +}; + + +/*** <<< INCLUDES [Test-structure-3] >>> ***/ + +#include <Test-structure-2.h> +#include <constr_SET.h> + +/*** <<< DEPS [Test-structure-3] >>> ***/ + + +/* + * Method of determining the components presence + */ +typedef enum Test_structure_3_PR { + Test_structure_3_PR_m1, /* Member m1 is present */ +} Test_structure_3_PR; + +struct Test_structure_2; /* Forward declaration */ +extern asn_TYPE_descriptor_t asn_DEF_Test_structure_3; + +/*** <<< TYPE-DECLS [Test-structure-3] >>> ***/ + + +typedef struct Test_structure_3 { + struct Test_structure_2 *m1 /* OPTIONAL */; + + /* Presence bitmask: ASN_SET_ISPRESENT(pTest_structure_3, Test_structure_3_PR_x) */ + unsigned int _presence_map + [((1+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))]; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Test_structure_3_t; + +/*** <<< STAT-DEFS [Test-structure-3] >>> ***/ + +static asn_TYPE_member_t asn_MBR_Test_structure_3[] = { + { ATF_POINTER, 1, offsetof(struct Test_structure_3, m1), + .tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), + .tag_mode = 0, + .type = (void *)&asn_DEF_Test_structure_2, + .memb_constraints = 0, /* Defer to actual type */ + .name = "m1" + }, +}; +static ber_tlv_tag_t asn_DEF_Test_structure_3_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)) +}; +static asn_TYPE_tag2member_t asn_DEF_Test_structure_3_tag2el[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 }, /* m1 at 29 */ +}; +static uint8_t asn_DEF_Test_structure_3_mmap[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = { + (0 << 7) +}; +static asn_SET_specifics_t asn_DEF_Test_structure_3_specs = { + sizeof(struct Test_structure_3), + offsetof(struct Test_structure_3, _asn_ctx), + offsetof(struct Test_structure_3, _presence_map), + asn_DEF_Test_structure_3_tag2el, + 1, /* Count of tags in the map */ + 0, /* Whether extensible */ + (unsigned int *)asn_DEF_Test_structure_3_mmap /* Mandatory elements map */ +}; +asn_TYPE_descriptor_t asn_DEF_Test_structure_3 = { + "Test-structure-3", + SET_free, + SET_print, + SET_constraint, + SET_decode_ber, + SET_encode_der, + 0, /* Not implemented yet */ + SET_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_Test_structure_3_tags, + sizeof(asn_DEF_Test_structure_3_tags) + /sizeof(asn_DEF_Test_structure_3_tags[0]), /* 1 */ + asn_DEF_Test_structure_3_tags, /* Same as above */ + sizeof(asn_DEF_Test_structure_3_tags) + /sizeof(asn_DEF_Test_structure_3_tags[0]), /* 1 */ + asn_MBR_Test_structure_3, + 1, /* Elements count */ + &asn_DEF_Test_structure_3_specs /* Additional specs */ }; |