From aa8c06f9e54975034abc88464e701373985bbc45 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Thu, 26 Oct 2017 14:41:22 +0800 Subject: [PATCH 01/17] Compare constraints field in asn1p_expr_compare() With this modification, asn1f_parameterization_fork() will fork parameterization if rhs_pspecs and stored rhs_pspecs have different constraints, e.g. expressions parameterized by different VALUESET references. Associated information object tables will be generated accordingly. --- libasn1parser/asn1p_constr.c | 16 ++++++++++++---- libasn1parser/asn1p_expr.c | 6 ++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/libasn1parser/asn1p_constr.c b/libasn1parser/asn1p_constr.c index e83b2f8f5..03dafe501 100644 --- a/libasn1parser/asn1p_constr.c +++ b/libasn1parser/asn1p_constr.c @@ -24,10 +24,18 @@ asn1p_constraint_set_source(asn1p_constraint_t *ct, int asn1p_constraint_compare(const asn1p_constraint_t *a, const asn1p_constraint_t *b) { - (void)a; - (void)b; - assert(!"Constraint comparison is not implemented"); - return -1; + assert((a && b)); + + if(a->type != b->type) + return -1; + + /* Currently we only check VALUESET as a reference */ + if(a->type == ACT_EL_TYPE) { + return strcmp(a->containedSubtype->value.v_type->reference->components[0].name, + b->containedSubtype->value.v_type->reference->components[0].name); + } + + return 0; } asn1p_constraint_t * diff --git a/libasn1parser/asn1p_expr.c b/libasn1parser/asn1p_expr.c index e2d280cef..807c0813d 100644 --- a/libasn1parser/asn1p_expr.c +++ b/libasn1parser/asn1p_expr.c @@ -57,6 +57,12 @@ asn1p_expr_compare(const asn1p_expr_t *a, const asn1p_expr_t *b) { return -1; } + if((!a->constraints && b->constraints) || (a->constraints && !b->constraints)) { + return -1; + } else if(a->constraints && asn1p_constraint_compare(a->constraints, b->constraints)) { + return -1; + } + if((a->tag.tag_class != b->tag.tag_class) || (a->tag.tag_mode != b->tag.tag_mode) || (a->tag.tag_value != b->tag.tag_value)) { From 939573d7134684433b2e88e0ce3a13114efa3146 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Thu, 26 Oct 2017 16:04:16 +0800 Subject: [PATCH 02/17] Use a simplier method to solve duplicate type names generated If one item's name already exists in this OPEN TYPE, simply do not add it to expression open_type_choice. It slightly modifies previous commit : dcc822a090ce3ee0fa204963c4be0db23034890c. --- libasn1compiler/asn1c_C.c | 14 +++++------ libasn1parser/asn1p_expr.h | 6 ++--- .../156-union-ios-OK.asn1.-Pgen-PER | 24 +++++-------------- 3 files changed, 14 insertions(+), 30 deletions(-) diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c index 53831f918..fb7b5adec 100644 --- a/libasn1compiler/asn1c_C.c +++ b/libasn1compiler/asn1c_C.c @@ -1067,9 +1067,10 @@ asn1c_lang_C_OpenType(arg_t *arg, asn1c_ioc_table_and_objset_t *opt_ioc, if(!cell->value) continue; + if(asn1p_lookup_child(open_type_choice, cell->value->Identifier)) + continue; + asn1p_expr_t *m = asn1p_expr_clone(cell->value, 0); - if (asn1p_lookup_child(open_type_choice, m->Identifier)) - m->_mark |= TM_SKIPinUNION; asn1p_expr_add(open_type_choice, m); } @@ -1282,14 +1283,11 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { } } - if(!(expr->_mark & TM_SKIPinUNION)) - OUT("%s", asn1c_type_name(arg, arg->expr, tnfmt)); + OUT("%s", asn1c_type_name(arg, arg->expr, tnfmt)); if(!expr->_anonymous_type) { - if(!(expr->_mark & TM_SKIPinUNION)) { - OUT("%s", (expr->marker.flags&EM_INDIRECT)?"\t*":"\t "); - OUT("%s", MKID_safe(expr)); - } + OUT("%s", (expr->marker.flags&EM_INDIRECT)?"\t*":"\t "); + OUT("%s", MKID_safe(expr)); if((expr->marker.flags & (EM_DEFAULT & ~EM_INDIRECT)) == (EM_DEFAULT & ~EM_INDIRECT)) OUT("\t/* DEFAULT %s */", diff --git a/libasn1parser/asn1p_expr.h b/libasn1parser/asn1p_expr.h index ba7063cb2..0628a8d24 100644 --- a/libasn1parser/asn1p_expr.h +++ b/libasn1parser/asn1p_expr.h @@ -250,10 +250,8 @@ typedef struct asn1p_expr_s { TM_RECURSION = (1<<0), /* Used to break recursion */ TM_BROKEN = (1<<1), /* A warning was already issued */ TM_PERFROMCT = (1<<2), /* PER FROM() constraint tables emitted */ - TM_NAMECLASH = (1<<3), /* Name clash found, need to add module name to resolve */ - TM_NAMEGIVEN = (1<<4), /* The expression has already yielded a name */ - TM_SKIPinUNION = (1<<5) /* Do not include this identifier in union again due to name duplication, - especially for OPENTYPE. */ + TM_NAMECLASH = (1<<3), /* Name clash found, need to add module name to resolve */ + TM_NAMEGIVEN = (1<<4) /* The expression has already yielded a name */ } _mark; /* diff --git a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER index b574e5643..9b4c1537e 100644 --- a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER @@ -78,7 +78,6 @@ typedef enum value_PR { value_PR_NOTHING, /* No components present */ value_PR_INTEGER, value_PR_BOOLEAN, - value_PR_BOOLEAN, value_PR_OCTET_STRING } value_PR; @@ -91,7 +90,6 @@ typedef struct SpecializedContent_42P0 { union SpecializedContent_42P0__value_u { long INTEGER; BOOLEAN_t BOOLEAN; - ; OCTET_STRING_t OCTET_STRING; } choice; @@ -227,15 +225,6 @@ static asn_TYPE_member_t asn_MBR_value_3[] = { 0, 0, /* No default value */ .name = "BOOLEAN" }, - { ATF_NOFLAGS, 0, offsetof(struct value, choice.BOOLEAN), - .tag = (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), - .tag_mode = 0, - .type = &asn_DEF_BOOLEAN, - .type_selector = 0, - { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 }, - 0, 0, /* No default value */ - .name = "BOOLEAN" - }, { ATF_NOFLAGS, 0, offsetof(struct value, choice.OCTET_STRING), .tag = (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), .tag_mode = 0, @@ -246,13 +235,12 @@ static asn_TYPE_member_t asn_MBR_value_3[] = { .name = "OCTET STRING" }, }; -static const unsigned asn_MAP_value_to_canonical_3[] = { 1, 2, 0, 3 }; -static const unsigned asn_MAP_value_from_canonical_3[] = { 2, 0, 1, 3 }; +static const unsigned asn_MAP_value_to_canonical_3[] = { 1, 0, 2 }; +static const unsigned asn_MAP_value_from_canonical_3[] = { 1, 0, 2 }; static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_3[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 1, 0, 1 }, /* BOOLEAN */ - { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 2, -1, 0 }, /* BOOLEAN */ + { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 1, 0, 0 }, /* BOOLEAN */ { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* INTEGER */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 } /* OCTET STRING */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 } /* OCTET STRING */ }; static asn_CHOICE_specifics_t asn_SPC_value_specs_3 = { sizeof(struct value), @@ -260,7 +248,7 @@ static asn_CHOICE_specifics_t asn_SPC_value_specs_3 = { offsetof(struct value, present), sizeof(((struct value *)0)->present), .tag2el = asn_MAP_value_tag2el_3, - .tag2el_count = 4, /* Count of tags in the map */ + .tag2el_count = 3, /* Count of tags in the map */ .to_canonical_order = asn_MAP_value_to_canonical_3, .from_canonical_order = asn_MAP_value_from_canonical_3, .first_extension = -1 /* Extensions start */ @@ -276,7 +264,7 @@ asn_TYPE_descriptor_t asn_DEF_value_3 = { 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, asn_MBR_value_3, - 4, /* Elements count */ + 3, /* Elements count */ &asn_SPC_value_specs_3 /* Additional specs */ }; From da78f97b8d59e8273b68cacaa4a37b3fe688afae Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Thu, 26 Oct 2017 19:05:37 +0800 Subject: [PATCH 03/17] Rewrite the solution in PR 227 Set the key.sequence to eclass's _type_unique_index and increment it in each object parsing call, then set the result back to _type_unique_index field. It can keep a class-wise counter for eash object instantiated. This new method not only solve name duplication when union two information object sets, but also avoid name duplication within multiple instances of this class. --- libasn1fix/asn1fix_cws.c | 4 +- libasn1parser/asn1p_class.c | 7 +- libasn1parser/asn1p_class.h | 2 +- ...58-multiple-parameterized-instance-OK.asn1 | 66 +++++++++++++++++++ ...-instance-OK.asn1.-Pgen-PERfcompound-names | 0 5 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1 create mode 100644 tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names diff --git a/libasn1fix/asn1fix_cws.c b/libasn1fix/asn1fix_cws.c index e54eaa703..414660c81 100644 --- a/libasn1fix/asn1fix_cws.c +++ b/libasn1fix/asn1fix_cws.c @@ -268,7 +268,7 @@ asn1f_parse_class_object(arg_t *arg) { .arg = arg, .expr = expr, .eclass = eclass, - .sequence = 0 + .sequence = eclass->_type_unique_index }; if(!expr->ioc_table) { @@ -295,6 +295,8 @@ asn1f_parse_class_object(arg_t *arg) { } } + eclass->_type_unique_index = key.sequence; + return 0; } diff --git a/libasn1parser/asn1p_class.c b/libasn1parser/asn1p_class.c index a025f369a..cbe9480e2 100644 --- a/libasn1parser/asn1p_class.c +++ b/libasn1parser/asn1p_class.c @@ -27,13 +27,11 @@ asn1p_ioc_table_add(asn1p_ioc_table_t *it, asn1p_ioc_row_t *row) { void asn1p_ioc_table_append(asn1p_ioc_table_t *it, asn1p_ioc_table_t *src) { - int base_idx; if(!src || !it) return; - base_idx = it->rows; for(size_t i = 0; i < src->rows; i++) { - asn1p_ioc_table_add(it, asn1p_ioc_row_clone(src->row[i], base_idx)); + asn1p_ioc_table_add(it, asn1p_ioc_row_clone(src->row[i])); } } @@ -106,7 +104,7 @@ asn1p_ioc_row_new(asn1p_expr_t *oclass) { } asn1p_ioc_row_t * -asn1p_ioc_row_clone(asn1p_ioc_row_t *src, int base_idx) { +asn1p_ioc_row_clone(asn1p_ioc_row_t *src) { asn1p_ioc_row_t *row; row = calloc(1, sizeof *row); @@ -124,7 +122,6 @@ asn1p_ioc_row_clone(asn1p_ioc_row_t *src, int base_idx) { row->column[i].value = 0; if(src->column[i].value) { row->column[i].value = asn1p_expr_clone(src->column[i].value, 0); - row->column[i].value->_type_unique_index += base_idx; } row->column[i].new_ref = 1; } diff --git a/libasn1parser/asn1p_class.h b/libasn1parser/asn1p_class.h index 7fb6f6f89..4c6efab8e 100644 --- a/libasn1parser/asn1p_class.h +++ b/libasn1parser/asn1p_class.h @@ -16,7 +16,7 @@ typedef struct asn1p_ioc_row_s { } asn1p_ioc_row_t; asn1p_ioc_row_t *asn1p_ioc_row_new(struct asn1p_expr_s *oclass); -asn1p_ioc_row_t *asn1p_ioc_row_clone(asn1p_ioc_row_t *src, int base_idx); +asn1p_ioc_row_t *asn1p_ioc_row_clone(asn1p_ioc_row_t *src); size_t asn1p_ioc_row_max_identifier_length(asn1p_ioc_row_t *); void asn1p_ioc_row_delete(asn1p_ioc_row_t *); diff --git a/tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1 b/tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1 new file mode 100644 index 000000000..4ecce1b16 --- /dev/null +++ b/tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1 @@ -0,0 +1,66 @@ + +-- OK: Everything is fine + +-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1) +-- .spelio.software.asn1c.test (9363.1.5.1) +-- .158 + +ModuleMultipleParameterizedInstance + { iso org(3) dod(6) internet(1) private(4) enterprise(1) + spelio(9363) software(1) asn1c(5) test(1) 158 } +DEFINITIONS ::= BEGIN + + MYID ::= CLASS { + &id INTEGER UNIQUE, + &Type + } WITH SYNTAX {&Type IDENTIFIED BY &id} + + TotalRegionExtension MYID ::= { + RegionalExtension1 | + RegionalExtension2 + } + + RegionalExtension1 MYID ::= { + {INTEGER IDENTIFIED BY 1} | + {BOOLEAN IDENTIFIED BY 2}, + ..., + {OCTET STRING IDENTIFIED BY 3} + } + + RegionalExtension2 MYID ::= { + {INTEGER IDENTIFIED BY 1}, + ..., + {BOOLEAN IDENTIFIED BY 2} | + {OCTET STRING IDENTIFIED BY 3} + } + + RegionalExtension3 MYID ::= { + {OCTET STRING IDENTIFIED BY 1} | + {OCTET STRING IDENTIFIED BY 4}, + ... + } + + RegionalExtension4 MYID ::= { + {INTEGER IDENTIFIED BY 5}, + ..., + {OCTET STRING (5) IDENTIFIED BY 6} + } + + Message1 ::= SEQUENCE { + content SpecializedContent {{TotalRegionExtension}} + } + + Message2 ::= SEQUENCE { + content SpecializedContent {{RegionalExtension3}} + } + + Message3 ::= SEQUENCE { + content SpecializedContent {{RegionalExtension4}} + } + + SpecializedContent {MYID : Set} ::= SEQUENCE { + id MYID.&id({Set}), + value MYID.&Type({Set}{@id}) + } + +END diff --git a/tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names b/tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names new file mode 100644 index 000000000..e69de29bb From 4b6c1ecab8be0900c78c528df896a85bb644b561 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Thu, 26 Oct 2017 19:12:56 +0800 Subject: [PATCH 04/17] Fix the problem when built-in types are used to instantiate an object Solve the problem that 'TYPE OCTECT STRING' fails to generate corresponding item. ClassObj S1AP-PROTOCOL-IES ::= { { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}| ... } --- libasn1compiler/asn1c_ioc.c | 3 +++ .../144-ios-parameterization-OK.asn1.-P | 6 +++--- .../146-ios-parameterization-per-OK.asn1.-Pgen-PER | 6 +++--- .../156-union-ios-OK.asn1.-Pgen-PER | 10 +++++----- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/libasn1compiler/asn1c_ioc.c b/libasn1compiler/asn1c_ioc.c index 9a5e25316..fec078ab3 100644 --- a/libasn1compiler/asn1c_ioc.c +++ b/libasn1compiler/asn1c_ioc.c @@ -225,6 +225,9 @@ emit_ioc_cell(arg_t *arg, struct asn1p_ioc_cell_s *cell) { } else if(cell->value->meta_type == AMT_TYPEREF) { GEN_INCLUDE(asn1c_type_name(arg, cell->value, TNF_INCLUDE)); OUT("aioc__type, &asn_DEF_%s", MKID(cell->value)); + } else if(cell->value->meta_type == AMT_TYPE) { + GEN_INCLUDE(asn1c_type_name(arg, cell->value, TNF_INCLUDE)); + OUT("aioc__type, &asn_DEF_%s", asn1c_type_name(arg, cell->value, TNF_SAFE)); } else { return -1; } diff --git a/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P b/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P index 89a669992..23b35276b 100644 --- a/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P @@ -66,8 +66,8 @@ asn_TYPE_descriptor_t asn_DEF_Message = { #include #include #include -#include #include +#include #include #include @@ -110,9 +110,9 @@ static const long asn_VAL_1_1 = 1; static const long asn_VAL_2_2 = 2; static const asn_ioc_cell_t asn_IOS_RegionalExtension_1_rows[] = { { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_1_1 }, - { "&Type", , + { "&Type", aioc__type, &asn_DEF_NativeInteger }, { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_2_2 }, - { "&Type", + { "&Type", aioc__type, &asn_DEF_BOOLEAN } }; static const asn_ioc_set_t asn_IOS_RegionalExtension_1[] = { 2, 2, asn_IOS_RegionalExtension_1_rows diff --git a/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER index 5e59610d5..e73249a82 100644 --- a/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER @@ -66,8 +66,8 @@ asn_TYPE_descriptor_t asn_DEF_Message = { #include #include #include -#include #include +#include #include #include @@ -110,9 +110,9 @@ static const long asn_VAL_1_1 = 1; static const long asn_VAL_2_2 = 2; static const asn_ioc_cell_t asn_IOS_RegionalExtension_1_rows[] = { { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_1_1 }, - { "&Type", , + { "&Type", aioc__type, &asn_DEF_NativeInteger }, { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_2_2 }, - { "&Type", + { "&Type", aioc__type, &asn_DEF_BOOLEAN } }; static const asn_ioc_set_t asn_IOS_RegionalExtension_1[] = { 2, 2, asn_IOS_RegionalExtension_1_rows diff --git a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER index 9b4c1537e..e9fb1f8eb 100644 --- a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER @@ -66,9 +66,9 @@ asn_TYPE_descriptor_t asn_DEF_Message = { #include #include #include -#include #include #include +#include #include #include @@ -115,13 +115,13 @@ static const long asn_VAL_3_2 = 2; static const long asn_VAL_4_3 = 3; static const asn_ioc_cell_t asn_IOS_TotalRegionExtension_1_rows[] = { { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_1_1 }, - { "&Type", , + { "&Type", aioc__type, &asn_DEF_NativeInteger }, { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_2_2 }, - { "&Type", , + { "&Type", aioc__type, &asn_DEF_BOOLEAN }, { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_3_2 }, - { "&Type", , + { "&Type", aioc__type, &asn_DEF_BOOLEAN }, { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_4_3 }, - { "&Type", + { "&Type", aioc__type, &asn_DEF_OCTET_STRING } }; static const asn_ioc_set_t asn_IOS_TotalRegionExtension_1[] = { 4, 2, asn_IOS_TotalRegionExtension_1_rows From 47d8ef47587bd8256422613341309f74ebdd5f9d Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Thu, 26 Oct 2017 20:23:41 +0800 Subject: [PATCH 05/17] Fix the problem when only one object in object set will generate empty row For example, E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, ... } generate : static const asn_ioc_cell_t asn_IOS_E_RABToBeSetupItemCtxtSUReqIEs_1_rows[] = { }; --- libasn1fix/asn1fix_cws.c | 8 ++ ...tion-more-than-two-level-OK.asn1.-Pgen-PER | 86 +++++++++++++++++-- .../156-union-ios-OK.asn1.-Pgen-PER | 16 ++-- 3 files changed, 97 insertions(+), 13 deletions(-) diff --git a/libasn1fix/asn1fix_cws.c b/libasn1fix/asn1fix_cws.c index 414660c81..62bb883bd 100644 --- a/libasn1fix/asn1fix_cws.c +++ b/libasn1fix/asn1fix_cws.c @@ -198,6 +198,14 @@ _asn1f_foreach_unparsed(arg_t *arg, const asn1p_constraint_t *ct, case ACT_CA_CSV: /* , */ break; case ACT_EL_VALUE: + if(ct->value->type == ATV_UNPARSED) { + if(process + && process(ct->value->value.string.buf + 1, + ct->value->value.string.size - 2, key) + != 0) { + return -1; + } + } return 0; } diff --git a/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER index 1a5121f63..ab4a7ca55 100644 --- a/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER @@ -551,6 +551,8 @@ asn_TYPE_descriptor_t asn_DEF_SinglePacket_48P0 = { #include "Color.h" #include #include +#include +#include "Valid.h" #include #include #include @@ -559,7 +561,7 @@ asn_TYPE_descriptor_t asn_DEF_SinglePacket_48P0 = { typedef enum value_PR { value_PR_NOTHING, /* No components present */ - + value_PR_OCTET_STRING } value_PR; /*** <<< TYPE-DECLS [Packet] >>> ***/ @@ -570,6 +572,7 @@ typedef struct Packet_51P0 { struct value { value_PR present; union Packet_51P0__value_u { + OCTET_STRING_t OCTET_STRING; } choice; /* Context for parsing across buffer boundaries */ @@ -588,11 +591,17 @@ extern asn_TYPE_member_t asn_MBR_Packet_51P0_1[3]; /*** <<< IOC-TABLES [Packet] >>> ***/ +static const long asn_VAL_1_id_TYPE1 = 1; +static const long asn_VAL_1_blue = 2; +static const long asn_VAL_1_crc_ok = 1; static const asn_ioc_cell_t asn_IOS_ClassItem_1_rows[] = { - + { "&id", aioc__value, &asn_DEF_PacketId, &asn_VAL_1_id_TYPE1 }, + { "&color", aioc__value, &asn_DEF_Color, &asn_VAL_1_blue }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&valid", aioc__value, &asn_DEF_Valid, &asn_VAL_1_crc_ok } }; static const asn_ioc_set_t asn_IOS_ClassItem_1[] = { - 0, 0, asn_IOS_ClassItem_1_rows + 1, 4, asn_IOS_ClassItem_1_rows }; /*** <<< CODE [Packet] >>> ***/ @@ -622,6 +631,29 @@ memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } } +static asn_type_selector_result_t +select_Packet_51P0_color_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ClassItem_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &color */ + size_t row; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Packet_51P0, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = row + 1; + break; + } + } + + return result; +} + static int memb_color_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { @@ -641,6 +673,29 @@ memb_color_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } +static asn_type_selector_result_t +select_Packet_51P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ClassItem_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Packet_51P0, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = row + 1; + break; + } + } + + return result; +} + static int memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { @@ -681,13 +736,27 @@ static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { /*** <<< STAT-DEFS [Packet] >>> ***/ +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct value, choice.OCTET_STRING), + .tag = (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + .tag_mode = 0, + .type = &asn_DEF_OCTET_STRING, + .type_selector = 0, + { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 }, + 0, 0, /* No default value */ + .name = "OCTET STRING" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* OCTET STRING */ +}; static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { sizeof(struct value), offsetof(struct value, _asn_ctx), offsetof(struct value, present), sizeof(((struct value *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ + .tag2el = asn_MAP_value_tag2el_4, + .tag2el_count = 1, /* Count of tags in the map */ 0, 0, .first_extension = -1 /* Extensions start */ }; @@ -701,7 +770,8 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ + asn_MBR_value_4, + 1, /* Elements count */ &asn_SPC_value_specs_4 /* Additional specs */ }; @@ -719,7 +789,7 @@ asn_TYPE_member_t asn_MBR_Packet_51P0_1[] = { .tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), .tag_mode = 0, .type = &asn_DEF_Color, - .type_selector = 0, + .type_selector = select_Packet_51P0_color_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_color_constr_3, .general_constraints = memb_color_constraint_1 }, 0, 0, /* No default value */ .name = "color" @@ -728,7 +798,7 @@ asn_TYPE_member_t asn_MBR_Packet_51P0_1[] = { .tag = -1 /* Ambiguous tag (ANY?) */, .tag_mode = 0, .type = &asn_DEF_value_4, - .type_selector = 0, + .type_selector = select_Packet_51P0_value_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_value_constr_4, .general_constraints = memb_value_constraint_1 }, 0, 0, /* No default value */ .name = "value" diff --git a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER index e9fb1f8eb..525541f63 100644 --- a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER @@ -111,20 +111,26 @@ extern asn_TYPE_member_t asn_MBR_SpecializedContent_42P0_1[2]; static const long asn_VAL_1_1 = 1; static const long asn_VAL_2_2 = 2; -static const long asn_VAL_3_2 = 2; -static const long asn_VAL_4_3 = 3; +static const long asn_VAL_3_3 = 3; +static const long asn_VAL_4_1 = 1; +static const long asn_VAL_5_2 = 2; +static const long asn_VAL_6_3 = 3; static const asn_ioc_cell_t asn_IOS_TotalRegionExtension_1_rows[] = { { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_1_1 }, { "&Type", aioc__type, &asn_DEF_NativeInteger }, { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_2_2 }, { "&Type", aioc__type, &asn_DEF_BOOLEAN }, - { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_3_2 }, + { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_3_3 }, + { "&Type", aioc__type, &asn_DEF_OCTET_STRING }, + { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_4_1 }, + { "&Type", aioc__type, &asn_DEF_NativeInteger }, + { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_5_2 }, { "&Type", aioc__type, &asn_DEF_BOOLEAN }, - { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_4_3 }, + { "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_6_3 }, { "&Type", aioc__type, &asn_DEF_OCTET_STRING } }; static const asn_ioc_set_t asn_IOS_TotalRegionExtension_1[] = { - 4, 2, asn_IOS_TotalRegionExtension_1_rows + 6, 2, asn_IOS_TotalRegionExtension_1_rows }; /*** <<< CODE [SpecializedContent] >>> ***/ From 1949e868072a6adc3a709c7a724a6837d00d17db Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Tue, 31 Oct 2017 20:51:33 +0800 Subject: [PATCH 06/17] Use a straightforward way to add tailing semicolon --- libasn1compiler/asn1c_C.c | 16 +++-- libasn1compiler/asn1c_out.h | 2 - libasn1compiler/asn1compiler.c | 3 - .../106-param-constr-OK.asn1.-P | 4 +- .../110-param-3-OK.asn1.-Pfcompound-names | 4 +- .../119-per-strings-OK.asn1.-Pgen-PER | 60 +++++++++---------- .../126-per-extensions-OK.asn1.-Pgen-PER | 6 +- .../136-oer-long-OK.asn1.-Pgen-OER | 4 +- .../43-recursion-OK.asn1.-Pfwide-types | 6 +- .../50-constraint-OK.asn1.-Pfwide-types | 8 +-- .../50-constraint-OK.asn1.-Pgen-PER | 8 +-- .../60-any-OK.asn1.-Pfwide-types | 2 +- .../65-multi-tag-OK.asn1.-Pfnative-types | 2 +- .../65-multi-tag-OK.asn1.-Pfwide-types | 2 +- .../70-xer-test-OK.asn1.-Pfwide-types | 16 ++--- .../73-circular-OK.asn1.-Pfwide-types | 6 +- .../84-param-tags-OK.asn1.-Pfwide-types | 4 +- ...-circular-loops-OK.asn1.-Pfindirect-choice | 12 ++-- .../92-circular-loops-OK.asn1.-Pfwide-types | 12 ++-- .../94-set-optionals-OK.asn1.-P | 6 +- 20 files changed, 92 insertions(+), 91 deletions(-) diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c index fb7b5adec..d63c43445 100644 --- a/libasn1compiler/asn1c_C.c +++ b/libasn1compiler/asn1c_C.c @@ -372,7 +372,6 @@ asn1c_lang_C_type_SEQUENCE(arg_t *arg) { } INDENT(-1); tmp_arg.embed--; - if(v->expr_type != A1TC_EXTENSIBLE) OUT(";\n"); } else { EMBED_WITH_IOCT(v, ioc_tao); } @@ -391,6 +390,7 @@ asn1c_lang_C_type_SEQUENCE(arg_t *arg) { } else { OUT("} %s%s", (expr->marker.flags & EM_INDIRECT)?"*":"", c_name(arg).short_name); + if(!expr->_anonymous_type) OUT(";\n"); } return asn1c_lang_C_type_SEQUENCE_def(arg, ioc_tao.ioct ? &ioc_tao : 0); @@ -633,6 +633,7 @@ asn1c_lang_C_type_SET(arg_t *arg) { } else { OUT("} %s%s", (expr->marker.flags & EM_INDIRECT)?"*":"", c_name(arg).short_name); + if(!expr->_anonymous_type) OUT(";\n"); } return asn1c_lang_C_type_SET_def(arg); @@ -861,6 +862,7 @@ asn1c_lang_C_type_SEx_OF(arg_t *arg) { } else { OUT("} %s%s", (expr->marker.flags & EM_INDIRECT)?"*":"", c_name(arg).short_name); + if(!expr->_anonymous_type) OUT(";\n"); } /* @@ -957,7 +959,8 @@ asn1c_lang_C_type_CHOICE(arg_t *arg) { OUT("typedef %s {\n", c_name(arg).presence_enum); INDENTED( int skipComma = 1; - OUT("%s,\t/* No components present */\n", c_presence_name(arg, 0)); + OUT("%s", c_presence_name(arg, 0)); + OUT("%s\t/* No components present */\n", !TQ_FIRST(&(expr->members)) ? "" : ","); TQ_FOR(v, &(expr->members), next) { if(skipComma) skipComma = 0; else if (v->expr_type == A1TC_EXTENSIBLE && !TQ_NEXT(v, next)) OUT("\n"); @@ -1015,6 +1018,7 @@ asn1c_lang_C_type_CHOICE(arg_t *arg) { OUT("} %s%s", (expr->marker.flags & EM_INDIRECT)?"*":"", c_name(arg).short_name); } + if(!expr->_anonymous_type) OUT(";\n"); return asn1c_lang_C_type_CHOICE_def(arg); } @@ -1287,7 +1291,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { if(!expr->_anonymous_type) { OUT("%s", (expr->marker.flags&EM_INDIRECT)?"\t*":"\t "); - OUT("%s", MKID_safe(expr)); + OUT("%s;", MKID_safe(expr)); if((expr->marker.flags & (EM_DEFAULT & ~EM_INDIRECT)) == (EM_DEFAULT & ~EM_INDIRECT)) OUT("\t/* DEFAULT %s */", @@ -1296,6 +1300,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { else if((expr->marker.flags & EM_OPTIONAL) == EM_OPTIONAL) OUT("\t/* OPTIONAL */"); + OUT("\n"); } } else { @@ -1305,9 +1310,10 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { OUT("typedef %s\t", asn1c_type_name(arg, arg->expr, TNF_CTYPE)); - OUT("%s%s_t", + OUT("%s%s_t%s", (expr->marker.flags & EM_INDIRECT)?"*":" ", - MKID(expr)); + MKID(expr), + expr->_anonymous_type ? "":";\n"); } if((expr->expr_type == ASN_BASIC_ENUMERATED) diff --git a/libasn1compiler/asn1c_out.h b/libasn1compiler/asn1c_out.h index 41077dfb3..2d9baed42 100644 --- a/libasn1compiler/asn1c_out.h +++ b/libasn1compiler/asn1c_out.h @@ -65,7 +65,6 @@ int asn1c_compiled_output(arg_t *arg, const char *file, int lineno, INDENTED(arg_t _tmp = *arg; _tmp.expr = ev; \ _tmp.default_cb(&_tmp, NULL);); \ arg->embed--; \ - if(ev->expr_type != A1TC_EXTENSIBLE) OUT(";\n"); \ assert(arg->target->target == OT_TYPE_DECLS \ || arg->target->target == OT_FWD_DEFS); \ } while(0) @@ -76,7 +75,6 @@ int asn1c_compiled_output(arg_t *arg, const char *file, int lineno, INDENTED(arg_t _tmp = *arg; _tmp.expr = ev; \ _tmp.default_cb(&_tmp, ((ioc).ioct ? &ioc : 0));); \ arg->embed--; \ - if(ev->expr_type != A1TC_EXTENSIBLE) OUT(";\n"); \ assert(arg->target->target == OT_TYPE_DECLS \ || arg->target->target == OT_FWD_DEFS); \ } while(0) diff --git a/libasn1compiler/asn1compiler.c b/libasn1compiler/asn1compiler.c index f01b41321..2aabdb0d3 100644 --- a/libasn1compiler/asn1compiler.c +++ b/libasn1compiler/asn1compiler.c @@ -131,9 +131,6 @@ asn1c_compile_expr(arg_t *arg, const asn1c_ioc_table_and_objset_t *opt_ioc) { arg->expr = expr; /* Restore */ } else { ret = type_cb(arg); - if(arg->target->destination[OT_TYPE_DECLS] - .indent_level == 0) - OUT(";\n"); } } else { ret = -1; diff --git a/tests/tests-asn1c-compiler/106-param-constr-OK.asn1.-P b/tests/tests-asn1c-compiler/106-param-constr-OK.asn1.-P index 1ba216104..fe41bed69 100644 --- a/tests/tests-asn1c-compiler/106-param-constr-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/106-param-constr-OK.asn1.-P @@ -7,9 +7,9 @@ /*** <<< TYPE-DECLS [Narrow] >>> ***/ typedef struct Narrow_15P0 { - long *narrow1 /* DEFAULT 3 */; + long *narrow1; /* DEFAULT 3 */ long narrow2; - long *narrow3 /* OPTIONAL */; + long *narrow3; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/110-param-3-OK.asn1.-Pfcompound-names b/tests/tests-asn1c-compiler/110-param-3-OK.asn1.-Pfcompound-names index 90d94dbec..d3d1deb79 100644 --- a/tests/tests-asn1c-compiler/110-param-3-OK.asn1.-Pfcompound-names +++ b/tests/tests-asn1c-compiler/110-param-3-OK.asn1.-Pfcompound-names @@ -21,13 +21,13 @@ typedef enum Flag_15P1__field { /*** <<< TYPE-DECLS [Flag] >>> ***/ typedef struct Flag_15P0 { - long *field /* DEFAULT 5 */; + long *field; /* DEFAULT 5 */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } Flag_15P0_t; typedef struct Flag_15P1 { - long *field /* DEFAULT 5 */; + long *field; /* DEFAULT 5 */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/119-per-strings-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/119-per-strings-OK.asn1.-Pgen-PER index 8f91298c0..cf75f422d 100644 --- a/tests/tests-asn1c-compiler/119-per-strings-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/119-per-strings-OK.asn1.-Pgen-PER @@ -27,36 +27,36 @@ typedef struct PDU { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } *many; - IA5String_t *ia5 /* OPTIONAL */; - IA5String_t *ia5_c /* OPTIONAL */; - IA5String_t *ia5_ce /* OPTIONAL */; - IA5String_t *ia5_ir /* OPTIONAL */; - VisibleString_t *vs /* OPTIONAL */; - VisibleString_t *vs_c /* OPTIONAL */; - VisibleString_t *vs_ce /* OPTIONAL */; - VisibleString_t *vs_ir /* OPTIONAL */; - PrintableString_t *pr /* OPTIONAL */; - PrintableString_t *pr_c /* OPTIONAL */; - PrintableString_t *pr_ir /* OPTIONAL */; - NumericString_t *ns /* OPTIONAL */; - NumericString_t *ns_c /* OPTIONAL */; - NumericString_t *ns_ce /* OPTIONAL */; - NumericString_t *ns_ir /* OPTIONAL */; - UTF8String_t *ut_c /* OPTIONAL */; - UTF8String_t *ut_ce /* OPTIONAL */; - UTF8String_t *ut_ir /* OPTIONAL */; - BMPString_t *bm /* OPTIONAL */; - BMPString_t *bm_c /* OPTIONAL */; - BMPString_t *bm_cs /* OPTIONAL */; - BMPString_t *bm_ce /* OPTIONAL */; - BMPString_t *bm_ir /* OPTIONAL */; - UniversalString_t *us /* OPTIONAL */; - UniversalString_t *us_c /* OPTIONAL */; - UniversalString_t *us_cs /* OPTIONAL */; - UniversalString_t *us_ce /* OPTIONAL */; - UniversalString_t *us_ir /* OPTIONAL */; - double *real /* OPTIONAL */; - OBJECT_IDENTIFIER_t *oid /* OPTIONAL */; + IA5String_t *ia5; /* OPTIONAL */ + IA5String_t *ia5_c; /* OPTIONAL */ + IA5String_t *ia5_ce; /* OPTIONAL */ + IA5String_t *ia5_ir; /* OPTIONAL */ + VisibleString_t *vs; /* OPTIONAL */ + VisibleString_t *vs_c; /* OPTIONAL */ + VisibleString_t *vs_ce; /* OPTIONAL */ + VisibleString_t *vs_ir; /* OPTIONAL */ + PrintableString_t *pr; /* OPTIONAL */ + PrintableString_t *pr_c; /* OPTIONAL */ + PrintableString_t *pr_ir; /* OPTIONAL */ + NumericString_t *ns; /* OPTIONAL */ + NumericString_t *ns_c; /* OPTIONAL */ + NumericString_t *ns_ce; /* OPTIONAL */ + NumericString_t *ns_ir; /* OPTIONAL */ + UTF8String_t *ut_c; /* OPTIONAL */ + UTF8String_t *ut_ce; /* OPTIONAL */ + UTF8String_t *ut_ir; /* OPTIONAL */ + BMPString_t *bm; /* OPTIONAL */ + BMPString_t *bm_c; /* OPTIONAL */ + BMPString_t *bm_cs; /* OPTIONAL */ + BMPString_t *bm_ce; /* OPTIONAL */ + BMPString_t *bm_ir; /* OPTIONAL */ + UniversalString_t *us; /* OPTIONAL */ + UniversalString_t *us_c; /* OPTIONAL */ + UniversalString_t *us_cs; /* OPTIONAL */ + UniversalString_t *us_ce; /* OPTIONAL */ + UniversalString_t *us_ir; /* OPTIONAL */ + double *real; /* OPTIONAL */ + OBJECT_IDENTIFIER_t *oid; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/126-per-extensions-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/126-per-extensions-OK.asn1.-Pgen-PER index e5bf8c6e3..d48014536 100644 --- a/tests/tests-asn1c-compiler/126-per-extensions-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/126-per-extensions-OK.asn1.-Pgen-PER @@ -17,10 +17,10 @@ typedef struct PDU { * This type is extensible, * possible extensions are below. */ - IA5String_t *str_o /* OPTIONAL */; + IA5String_t *str_o; /* OPTIONAL */ IA5String_t *str_m; struct Singleton *singl; - struct PDU_2 *pdu_2 /* OPTIONAL */; + struct PDU_2 *pdu_2; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -118,7 +118,7 @@ asn_TYPE_descriptor_t asn_DEF_PDU = { /*** <<< TYPE-DECLS [Singleton] >>> ***/ typedef struct Singleton { - IA5String_t *opt_z /* DEFAULT z */; + IA5String_t *opt_z; /* DEFAULT z */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/136-oer-long-OK.asn1.-Pgen-OER b/tests/tests-asn1c-compiler/136-oer-long-OK.asn1.-Pgen-OER index e449bea8b..4c242fa0e 100644 --- a/tests/tests-asn1c-compiler/136-oer-long-OK.asn1.-Pgen-OER +++ b/tests/tests-asn1c-compiler/136-oer-long-OK.asn1.-Pgen-OER @@ -13,12 +13,12 @@ typedef struct T { long unsigned16stack; long unsigned16stack_ext; INTEGER_t unsigned33; - long *minmax /* OPTIONAL */; + long *minmax; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. */ - long *signed8 /* DEFAULT 3 */; + long *signed8; /* DEFAULT 3 */ long *signed16; long *signed16stack; long *signed16stack_ext; diff --git a/tests/tests-asn1c-compiler/43-recursion-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/43-recursion-OK.asn1.-Pfwide-types index bdf973b37..b3bc7e75b 100644 --- a/tests/tests-asn1c-compiler/43-recursion-OK.asn1.-Pfwide-types +++ b/tests/tests-asn1c-compiler/43-recursion-OK.asn1.-Pfwide-types @@ -27,7 +27,7 @@ typedef struct Test_structure_1 { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } t_member2; - struct Test_structure_1 *t_member3 /* OPTIONAL */; + struct Test_structure_1 *t_member3; /* OPTIONAL */ INTEGER_t t_member4; /* Context for parsing across buffer boundaries */ @@ -370,7 +370,7 @@ struct Test_structure_3; /*** <<< TYPE-DECLS [Test-structure-2] >>> ***/ typedef struct Test_structure_2 { - struct Test_structure_3 *m1 /* OPTIONAL */; + struct Test_structure_3 *m1; /* OPTIONAL */ /* Presence bitmask: ASN_SET_ISPRESENT(pTest_structure_2, Test_structure_2_PR_x) */ unsigned int _presence_map @@ -461,7 +461,7 @@ struct Test_structure_2; /*** <<< TYPE-DECLS [Test-structure-3] >>> ***/ typedef struct Test_structure_3 { - struct Test_structure_2 *m1 /* OPTIONAL */; + struct Test_structure_2 *m1; /* OPTIONAL */ /* Presence bitmask: ASN_SET_ISPRESENT(pTest_structure_3, Test_structure_3_PR_x) */ unsigned int _presence_map diff --git a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pfwide-types index a0aff4a33..32fbaeb61 100644 --- a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pfwide-types +++ b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pfwide-types @@ -1901,17 +1901,17 @@ typedef enum enum_c { /*** <<< TYPE-DECLS [Sequence] >>> ***/ typedef struct Sequence { - Int1_t *int1_c /* DEFAULT 3 */; + Int1_t *int1_c; /* DEFAULT 3 */ Int4_t int4; Int4_t int4_c; - BOOLEAN_t *Bool /* DEFAULT 1 */; + BOOLEAN_t *Bool; /* DEFAULT 1 */ ENUMERATED_t enum_c; - NULL_t *null /* OPTIONAL */; + NULL_t *null; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. */ - Int5_t *int5_c /* OPTIONAL */; + Int5_t *int5_c; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER index 50a674ee9..3f6669ed8 100644 --- a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER @@ -2126,17 +2126,17 @@ typedef enum enum_c { /*** <<< TYPE-DECLS [Sequence] >>> ***/ typedef struct Sequence { - Int1_t *int1_c /* DEFAULT 3 */; + Int1_t *int1_c; /* DEFAULT 3 */ Int4_t int4; Int4_t int4_c; - BOOLEAN_t *Bool /* DEFAULT 1 */; + BOOLEAN_t *Bool; /* DEFAULT 1 */ long enum_c; - NULL_t *null /* OPTIONAL */; + NULL_t *null; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. */ - Int5_t *int5_c /* OPTIONAL */; + Int5_t *int5_c; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/60-any-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/60-any-OK.asn1.-Pfwide-types index 5c21afa6d..ee7edab4e 100644 --- a/tests/tests-asn1c-compiler/60-any-OK.asn1.-Pfwide-types +++ b/tests/tests-asn1c-compiler/60-any-OK.asn1.-Pfwide-types @@ -82,7 +82,7 @@ asn_TYPE_descriptor_t asn_DEF_T1 = { typedef struct T2 { INTEGER_t i; - ANY_t *any /* OPTIONAL */; + ANY_t *any; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/65-multi-tag-OK.asn1.-Pfnative-types b/tests/tests-asn1c-compiler/65-multi-tag-OK.asn1.-Pfnative-types index aee1948e9..d0e5ae34b 100644 --- a/tests/tests-asn1c-compiler/65-multi-tag-OK.asn1.-Pfnative-types +++ b/tests/tests-asn1c-compiler/65-multi-tag-OK.asn1.-Pfnative-types @@ -371,7 +371,7 @@ asn_TYPE_descriptor_t asn_DEF_T = { typedef struct Ts { T2_t m1; - T3_t *m2 /* OPTIONAL */; + T3_t *m2; /* OPTIONAL */ T3_t m3; /* Context for parsing across buffer boundaries */ diff --git a/tests/tests-asn1c-compiler/65-multi-tag-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/65-multi-tag-OK.asn1.-Pfwide-types index a04cdda5a..31570c01d 100644 --- a/tests/tests-asn1c-compiler/65-multi-tag-OK.asn1.-Pfwide-types +++ b/tests/tests-asn1c-compiler/65-multi-tag-OK.asn1.-Pfwide-types @@ -371,7 +371,7 @@ asn_TYPE_descriptor_t asn_DEF_T = { typedef struct Ts { T2_t m1; - T3_t *m2 /* OPTIONAL */; + T3_t *m2; /* OPTIONAL */ T3_t m3; /* Context for parsing across buffer boundaries */ diff --git a/tests/tests-asn1c-compiler/70-xer-test-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/70-xer-test-OK.asn1.-Pfwide-types index 7879a7cba..8dc449a10 100644 --- a/tests/tests-asn1c-compiler/70-xer-test-OK.asn1.-Pfwide-types +++ b/tests/tests-asn1c-compiler/70-xer-test-OK.asn1.-Pfwide-types @@ -271,8 +271,8 @@ struct Sequence; typedef struct Sequence { INTEGER_t integer; - struct Sequence *sequence /* OPTIONAL */; - BIT_STRING_t *bits /* OPTIONAL */; + struct Sequence *sequence; /* OPTIONAL */ + BIT_STRING_t *bits; /* OPTIONAL */ UTF8String_t string; /* Context for parsing across buffer boundaries */ @@ -384,7 +384,7 @@ typedef enum Set_PR { typedef struct Set { RELATIVE_OID_t roid; - OCTET_STRING_t *opaque /* OPTIONAL */; + OCTET_STRING_t *opaque; /* OPTIONAL */ /* Presence bitmask: ASN_SET_ISPRESENT(pSet, Set_PR_x) */ unsigned int _presence_map @@ -484,7 +484,7 @@ typedef enum Enum { /*** <<< TYPE-DECLS [ExtensibleSet] >>> ***/ typedef struct ExtensibleSet { - UTF8String_t *string /* OPTIONAL */; + UTF8String_t *string; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -620,12 +620,12 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleSet = { /*** <<< TYPE-DECLS [ExtensibleSequence] >>> ***/ typedef struct ExtensibleSequence { - UTF8String_t *string /* OPTIONAL */; + UTF8String_t *string; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. */ - INTEGER_t *integer /* OPTIONAL */; + INTEGER_t *integer; /* OPTIONAL */ GeneralizedTime_t *gtime; /* Context for parsing across buffer boundaries */ @@ -711,12 +711,12 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleSequence = { /*** <<< TYPE-DECLS [ExtensibleSequence2] >>> ***/ typedef struct ExtensibleSequence2 { - UTF8String_t *string /* OPTIONAL */; + UTF8String_t *string; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. */ - INTEGER_t *integer /* OPTIONAL */; + INTEGER_t *integer; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/73-circular-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/73-circular-OK.asn1.-Pfwide-types index 592e869f5..c29bdff1c 100644 --- a/tests/tests-asn1c-compiler/73-circular-OK.asn1.-Pfwide-types +++ b/tests/tests-asn1c-compiler/73-circular-OK.asn1.-Pfwide-types @@ -181,8 +181,8 @@ typedef struct Epyt { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } stype; - struct Type *type /* OPTIONAL */; - struct Ypet *ypet /* OPTIONAL */; + struct Type *type; /* OPTIONAL */ + struct Ypet *ypet; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -330,7 +330,7 @@ struct Epyt; typedef struct Ypet { struct Epyt *epyt; - INTEGER_t *plain /* DEFAULT 7 */; + INTEGER_t *plain; /* DEFAULT 7 */ struct senums { A_SET_OF(EnumType_t) list; diff --git a/tests/tests-asn1c-compiler/84-param-tags-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/84-param-tags-OK.asn1.-Pfwide-types index d4e4aa70d..e1d57219e 100644 --- a/tests/tests-asn1c-compiler/84-param-tags-OK.asn1.-Pfwide-types +++ b/tests/tests-asn1c-compiler/84-param-tags-OK.asn1.-Pfwide-types @@ -8,13 +8,13 @@ /*** <<< TYPE-DECLS [TestType] >>> ***/ typedef struct TestType_16P0 { - long common /* DEFAULT 0 */; + long common; /* DEFAULT 0 */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } TestType_16P0_t; typedef struct TestType_16P1 { - BOOLEAN_t common /* DEFAULT 0 */; + BOOLEAN_t common; /* DEFAULT 0 */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/92-circular-loops-OK.asn1.-Pfindirect-choice b/tests/tests-asn1c-compiler/92-circular-loops-OK.asn1.-Pfindirect-choice index f41738079..bd88d83dd 100644 --- a/tests/tests-asn1c-compiler/92-circular-loops-OK.asn1.-Pfindirect-choice +++ b/tests/tests-asn1c-compiler/92-circular-loops-OK.asn1.-Pfindirect-choice @@ -587,7 +587,7 @@ typedef struct Member { long Int; struct Set *set; struct Sequence *seq; - struct Set *set2 /* OPTIONAL */; + struct Set *set2; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -752,13 +752,13 @@ struct Set; typedef struct Sequence { long a; - struct Sequence *seq /* OPTIONAL */; + struct Sequence *seq; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. */ long *b; - struct Set *set /* OPTIONAL */; + struct Set *set; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -910,7 +910,7 @@ struct Beta; typedef struct Alpha { struct Beta *a; struct b { - struct Beta *b /* OPTIONAL */; + struct Beta *b; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -1039,8 +1039,8 @@ struct Gamma; /*** <<< TYPE-DECLS [Beta] >>> ***/ typedef struct Beta { - struct Alpha *b /* OPTIONAL */; - struct Gamma *g /* OPTIONAL */; + struct Alpha *b; /* OPTIONAL */ + struct Gamma *g; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/92-circular-loops-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/92-circular-loops-OK.asn1.-Pfwide-types index dafb1766f..86eafc782 100644 --- a/tests/tests-asn1c-compiler/92-circular-loops-OK.asn1.-Pfwide-types +++ b/tests/tests-asn1c-compiler/92-circular-loops-OK.asn1.-Pfwide-types @@ -586,7 +586,7 @@ typedef struct Member { INTEGER_t Int; struct Set *set; struct Sequence *seq; - struct Set *set2 /* OPTIONAL */; + struct Set *set2; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -751,13 +751,13 @@ struct Set; typedef struct Sequence { INTEGER_t a; - struct Sequence *seq /* OPTIONAL */; + struct Sequence *seq; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. */ INTEGER_t *b; - struct Set *set /* OPTIONAL */; + struct Set *set; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -909,7 +909,7 @@ struct Beta; typedef struct Alpha { struct Beta *a; struct b { - struct Beta *b /* OPTIONAL */; + struct Beta *b; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -1038,8 +1038,8 @@ struct Gamma; /*** <<< TYPE-DECLS [Beta] >>> ***/ typedef struct Beta { - struct Alpha *b /* OPTIONAL */; - struct Gamma *g /* OPTIONAL */; + struct Alpha *b; /* OPTIONAL */ + struct Gamma *g; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/tests/tests-asn1c-compiler/94-set-optionals-OK.asn1.-P b/tests/tests-asn1c-compiler/94-set-optionals-OK.asn1.-P index adec1e26d..2ee17ef5a 100644 --- a/tests/tests-asn1c-compiler/94-set-optionals-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/94-set-optionals-OK.asn1.-P @@ -27,14 +27,14 @@ typedef enum TestSet_PR { typedef struct TestSet { VisibleString_t m0; - VisibleString_t *m1 /* OPTIONAL */; + VisibleString_t *m1; /* OPTIONAL */ VisibleString_t m2; VisibleString_t m3; - VisibleString_t *m4 /* OPTIONAL */; + VisibleString_t *m4; /* OPTIONAL */ VisibleString_t m5; VisibleString_t m6; VisibleString_t m7; - VisibleString_t *m8 /* OPTIONAL */; + VisibleString_t *m8; /* OPTIONAL */ VisibleString_t m9; /* * This type is extensible, From c7fa184cb62330ae09b105ec9c3e5d6bc5f6fdc6 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Thu, 2 Nov 2017 15:05:30 +0800 Subject: [PATCH 07/17] Add sample.source.S1AP --- examples/Makefile.am | 1 + examples/README | 3 + examples/sample.source.LTE-RRC/Makefile | 3692 +---------------- examples/sample.source.S1AP/Makefile | 106 + examples/sample.source.S1AP/README | 35 + examples/sample.source.S1AP/config.h | 10 + .../sample-DownlinkNASTransport.aper | Bin 0 -> 74 bytes .../sample-S1AP-InitialContextSetup.aper | Bin 0 -> 293 bytes .../sample-S1AP-InitialUEMessage.aper | Bin 0 -> 88 bytes .../sample-S1AP-InitialUEMessage2.aper | Bin 0 -> 155 bytes .../sample-S1AP-InitiatingMessage.aper | Bin 0 -> 78 bytes .../sample-S1AP-UplinkNASTransport.aper | Bin 0 -> 59 bytes 12 files changed, 212 insertions(+), 3635 deletions(-) create mode 100644 examples/sample.source.S1AP/Makefile create mode 100644 examples/sample.source.S1AP/README create mode 100644 examples/sample.source.S1AP/config.h create mode 100644 examples/sample.source.S1AP/sample-DownlinkNASTransport.aper create mode 100644 examples/sample.source.S1AP/sample-S1AP-InitialContextSetup.aper create mode 100644 examples/sample.source.S1AP/sample-S1AP-InitialUEMessage.aper create mode 100644 examples/sample.source.S1AP/sample-S1AP-InitialUEMessage2.aper create mode 100644 examples/sample.source.S1AP/sample-S1AP-InitiatingMessage.aper create mode 100644 examples/sample.source.S1AP/sample-S1AP-UplinkNASTransport.aper diff --git a/examples/Makefile.am b/examples/Makefile.am index fd861e7f8..db831a475 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -35,6 +35,7 @@ EXTRA_DIST = \ sample.source.MHEG5 \ sample.source.PKIX1 \ sample.source.RRC \ + sample.source.S1AP \ sample.source.TAP3 \ sample.source.ULP \ sample.makefile.regen diff --git a/examples/README b/examples/README index 49821c3dd..c86a8c9f4 100644 --- a/examples/README +++ b/examples/README @@ -36,6 +36,9 @@ This directory contains a few examples. Before trying to compile, read the README file in that directory. WARNING WARNING WARNING: WORK IN PROGRESS. Not supposed to work yet. +11. The ./sample.source.S1AP directory contain the 3GPP S1AP decoder for + S1AP version 14.4.0. Read the README file in that directory. + The crfc2asn1.pl script can be used to extract ASN.1 data from RFC texts. For instance, it is used to extract X.509, MEGACO, and LDAPv3 ASN.1 modules from the corresponding RFC texts (rfc3280.txt, rfc3525.txt, rfc4211.txt). diff --git a/examples/sample.source.LTE-RRC/Makefile b/examples/sample.source.LTE-RRC/Makefile index 7cd21d0e6..c61b6b571 100644 --- a/examples/sample.source.LTE-RRC/Makefile +++ b/examples/sample.source.LTE-RRC/Makefile @@ -1,3684 +1,106 @@ -ASN_MODULE_SRCS= \ - BCCH-BCH-Message.c \ - BCCH-BCH-MessageType.c \ - BCCH-BCH-Message-MBMS.c \ - BCCH-BCH-MessageType-MBMS-r14.c \ - BCCH-DL-SCH-Message.c \ - BCCH-DL-SCH-MessageType.c \ - BCCH-DL-SCH-Message-BR.c \ - BCCH-DL-SCH-MessageType-BR-r13.c \ - BCCH-DL-SCH-Message-MBMS.c \ - BCCH-DL-SCH-MessageType-MBMS-r14.c \ - MCCH-Message.c \ - MCCH-MessageType.c \ - PCCH-Message.c \ - PCCH-MessageType.c \ - DL-CCCH-Message.c \ - DL-CCCH-MessageType.c \ - DL-DCCH-Message.c \ - DL-DCCH-MessageType.c \ - UL-CCCH-Message.c \ - UL-CCCH-MessageType.c \ - UL-DCCH-Message.c \ - UL-DCCH-MessageType.c \ - SC-MCCH-Message-r13.c \ - SC-MCCH-MessageType-r13.c \ - CounterCheck.c \ - CounterCheck-r8-IEs.c \ - CounterCheck-v8a0-IEs.c \ - DRB-CountMSB-InfoList.c \ - DRB-CountMSB-Info.c \ - CounterCheckResponse.c \ - CounterCheckResponse-r8-IEs.c \ - CounterCheckResponse-v8a0-IEs.c \ - DRB-CountInfoList.c \ - DRB-CountInfo.c \ - CSFBParametersRequestCDMA2000.c \ - CSFBParametersRequestCDMA2000-r8-IEs.c \ - CSFBParametersRequestCDMA2000-v8a0-IEs.c \ - CSFBParametersResponseCDMA2000.c \ - CSFBParametersResponseCDMA2000-r8-IEs.c \ - CSFBParametersResponseCDMA2000-v8a0-IEs.c \ - DelayBudgetReport-r14.c \ - DelayBudgetReport-r14-IEs.c \ - DLInformationTransfer.c \ - DLInformationTransfer-r8-IEs.c \ - DLInformationTransfer-v8a0-IEs.c \ - HandoverFromEUTRAPreparationRequest.c \ - HandoverFromEUTRAPreparationRequest-r8-IEs.c \ - HandoverFromEUTRAPreparationRequest-v890-IEs.c \ - HandoverFromEUTRAPreparationRequest-v920-IEs.c \ - HandoverFromEUTRAPreparationRequest-v1020-IEs.c \ - InDeviceCoexIndication-r11.c \ - InDeviceCoexIndication-r11-IEs.c \ - InDeviceCoexIndication-v11d0-IEs.c \ - InDeviceCoexIndication-v1310-IEs.c \ - AffectedCarrierFreqList-r11.c \ - AffectedCarrierFreqList-v1310.c \ - AffectedCarrierFreq-r11.c \ - AffectedCarrierFreq-v1310.c \ - AffectedCarrierFreqCombList-r11.c \ - AffectedCarrierFreqCombList-r13.c \ - AffectedCarrierFreqComb-r11.c \ - AffectedCarrierFreqComb-r13.c \ - TDM-AssistanceInfo-r11.c \ - IDC-SubframePatternList-r11.c \ - IDC-SubframePattern-r11.c \ - VictimSystemType-r11.c \ - InterFreqRSTDMeasurementIndication-r10.c \ - InterFreqRSTDMeasurementIndication-r10-IEs.c \ - RSTD-InterFreqInfoList-r10.c \ - RSTD-InterFreqInfo-r10.c \ - LoggedMeasurementConfiguration-r10.c \ - LoggedMeasurementConfiguration-r10-IEs.c \ - LoggedMeasurementConfiguration-v1080-IEs.c \ - LoggedMeasurementConfiguration-v1130-IEs.c \ - LoggedMeasurementConfiguration-v1250-IEs.c \ - TargetMBSFN-AreaList-r12.c \ - TargetMBSFN-Area-r12.c \ - MasterInformationBlock.c \ - MasterInformationBlock-MBMS-r14.c \ - MBMSCountingRequest-r10.c \ - CountingRequestList-r10.c \ - CountingRequestInfo-r10.c \ - MBMSCountingResponse-r10.c \ - MBMSCountingResponse-r10-IEs.c \ - CountingResponseList-r10.c \ - CountingResponseInfo-r10.c \ - MBMSInterestIndication-r11.c \ - MBMSInterestIndication-r11-IEs.c \ - MBMSInterestIndication-v1310-IEs.c \ - MBSFNAreaConfiguration-r9.c \ - MBSFNAreaConfiguration-v930-IEs.c \ - MBSFNAreaConfiguration-v1250-IEs.c \ - CommonSF-AllocPatternList-r9.c \ - MeasurementReport.c \ - MeasurementReport-r8-IEs.c \ - MeasurementReport-v8a0-IEs.c \ - MobilityFromEUTRACommand.c \ - MobilityFromEUTRACommand-r8-IEs.c \ - MobilityFromEUTRACommand-v8a0-IEs.c \ - MobilityFromEUTRACommand-v8d0-IEs.c \ - MobilityFromEUTRACommand-r9-IEs.c \ - MobilityFromEUTRACommand-v930-IEs.c \ - MobilityFromEUTRACommand-v960-IEs.c \ - Handover.c \ - CellChangeOrder.c \ - SI-OrPSI-GERAN.c \ - E-CSFB-r9.c \ - Paging.c \ - Paging-v890-IEs.c \ - Paging-v920-IEs.c \ - Paging-v1130-IEs.c \ - Paging-v1310-IEs.c \ - PagingRecordList.c \ - PagingRecord.c \ - PagingUE-Identity.c \ - IMSI.c \ - IMSI-Digit.c \ - ProximityIndication-r9.c \ - ProximityIndication-r9-IEs.c \ - ProximityIndication-v930-IEs.c \ - RNReconfiguration-r10.c \ - RNReconfiguration-r10-IEs.c \ - RN-SystemInfo-r10.c \ - RNReconfigurationComplete-r10.c \ - RNReconfigurationComplete-r10-IEs.c \ - RRCConnectionReconfiguration.c \ - RRCConnectionReconfiguration-r8-IEs.c \ - RRCConnectionReconfiguration-v890-IEs.c \ - RRCConnectionReconfiguration-v8m0-IEs.c \ - RRCConnectionReconfiguration-v10i0-IEs.c \ - RRCConnectionReconfiguration-v920-IEs.c \ - RRCConnectionReconfiguration-v1020-IEs.c \ - RRCConnectionReconfiguration-v1130-IEs.c \ - RRCConnectionReconfiguration-v1250-IEs.c \ - RRCConnectionReconfiguration-v1310-IEs.c \ - RRCConnectionReconfiguration-v14x0-IEs.c \ - SL-SyncTxControl-r12.c \ - PSCellToAddMod-r12.c \ - PowerCoordinationInfo-r12.c \ - SCellToAddModList-r10.c \ - SCellToAddModListExt-r13.c \ - SCellToAddModListExt-v14xy.c \ - SCellToAddMod-r10.c \ - SCellToAddModExt-r13.c \ - SCellToAddModExt-v14xy.c \ - SCellToReleaseList-r10.c \ - SCellToReleaseListExt-r13.c \ - SCG-Configuration-r12.c \ - SCG-ConfigPartSCG-r12.c \ - SecurityConfigHO.c \ - RRCConnectionReconfigurationComplete.c \ - RRCConnectionReconfigurationComplete-r8-IEs.c \ - RRCConnectionReconfigurationComplete-v8a0-IEs.c \ - RRCConnectionReconfigurationComplete-v1020-IEs.c \ - RRCConnectionReconfigurationComplete-v1130-IEs.c \ - RRCConnectionReconfigurationComplete-v1250-IEs.c \ - RRCConnectionReconfigurationComplete-v14xy-IEs.c \ - RRCConnectionReestablishment.c \ - RRCConnectionReestablishment-r8-IEs.c \ - RRCConnectionReestablishment-v8a0-IEs.c \ - RRCConnectionReestablishmentComplete.c \ - RRCConnectionReestablishmentComplete-r8-IEs.c \ - RRCConnectionReestablishmentComplete-v920-IEs.c \ - RRCConnectionReestablishmentComplete-v8a0-IEs.c \ - RRCConnectionReestablishmentComplete-v1020-IEs.c \ - RRCConnectionReestablishmentComplete-v1130-IEs.c \ - RRCConnectionReestablishmentComplete-v1250-IEs.c \ - RRCConnectionReestablishmentReject.c \ - RRCConnectionReestablishmentReject-r8-IEs.c \ - RRCConnectionReestablishmentReject-v8a0-IEs.c \ - RRCConnectionReestablishmentRequest.c \ - RRCConnectionReestablishmentRequest-r8-IEs.c \ - ReestabUE-Identity.c \ - ReestablishmentCause.c \ - RRCConnectionReject.c \ - RRCConnectionReject-r8-IEs.c \ - RRCConnectionReject-v8a0-IEs.c \ - RRCConnectionReject-v1020-IEs.c \ - RRCConnectionReject-v1130-IEs.c \ - RRCConnectionReject-v1320-IEs.c \ - RRCConnectionRelease.c \ - RRCConnectionRelease-r8-IEs.c \ - RRCConnectionRelease-v890-IEs.c \ - RRCConnectionRelease-v9e0-IEs.c \ - RRCConnectionRelease-v920-IEs.c \ - RRCConnectionRelease-v1020-IEs.c \ - RRCConnectionRelease-v1320-IEs.c \ - ReleaseCause.c \ - RedirectedCarrierInfo.c \ - RedirectedCarrierInfo-v9e0.c \ - CarrierFreqListUTRA-TDD-r10.c \ - IdleModeMobilityControlInfo.c \ - IdleModeMobilityControlInfo-v9e0.c \ - FreqPriorityListEUTRA.c \ - FreqPriorityListExtEUTRA-r12.c \ - FreqPriorityListEUTRA-v1310.c \ - FreqPriorityListExtEUTRA-v1310.c \ - FreqPriorityEUTRA.c \ - FreqPriorityEUTRA-v9e0.c \ - FreqPriorityEUTRA-r12.c \ - FreqPriorityEUTRA-v1310.c \ - FreqsPriorityListGERAN.c \ - FreqsPriorityGERAN.c \ - FreqPriorityListUTRA-FDD.c \ - FreqPriorityUTRA-FDD.c \ - FreqPriorityListUTRA-TDD.c \ - FreqPriorityUTRA-TDD.c \ - BandClassPriorityListHRPD.c \ - BandClassPriorityHRPD.c \ - BandClassPriorityList1XRTT.c \ - BandClassPriority1XRTT.c \ - CellInfoListGERAN-r9.c \ - CellInfoGERAN-r9.c \ - CellInfoListUTRA-FDD-r9.c \ - CellInfoUTRA-FDD-r9.c \ - CellInfoListUTRA-TDD-r9.c \ - CellInfoUTRA-TDD-r9.c \ - CellInfoListUTRA-TDD-r10.c \ - CellInfoUTRA-TDD-r10.c \ - RRCConnectionRequest.c \ - RRCConnectionRequest-r8-IEs.c \ - InitialUE-Identity.c \ - EstablishmentCause.c \ - RRCConnectionResume-r13.c \ - RRCConnectionResume-r13-IEs.c \ - RRCConnectionResumeComplete-r13.c \ - RRCConnectionResumeComplete-r13-IEs.c \ - RRCConnectionResumeRequest-r13.c \ - RRCConnectionResumeRequest-r13-IEs.c \ - ResumeCause.c \ - RRCConnectionSetup.c \ - RRCConnectionSetup-r8-IEs.c \ - RRCConnectionSetup-v8a0-IEs.c \ - RRCConnectionSetupComplete.c \ - RRCConnectionSetupComplete-r8-IEs.c \ - RRCConnectionSetupComplete-v8a0-IEs.c \ - RRCConnectionSetupComplete-v1020-IEs.c \ - RRCConnectionSetupComplete-v1130-IEs.c \ - RRCConnectionSetupComplete-v1250-IEs.c \ - RRCConnectionSetupComplete-v1320-IEs.c \ - RRCConnectionSetupComplete-v1330-IEs.c \ - RRCConnectionSetupComplete-v14xy-IEs.c \ - RegisteredMME.c \ - SCGFailureInformation-r12.c \ - SCGFailureInformation-r12-IEs.c \ - SCGFailureInformation-v1310-IEs.c \ - SCGFailureInformation-v12d0-IEs.c \ - FailureReportSCG-r12.c \ - FailureReportSCG-v12d0.c \ - SCPTMConfiguration-r13.c \ - SCPTMConfiguration-v1340.c \ - SCPTMConfiguration-BR-r14.c \ - SecurityModeCommand.c \ - SecurityModeCommand-r8-IEs.c \ - SecurityModeCommand-v8a0-IEs.c \ - SecurityConfigSMC.c \ - SecurityModeComplete.c \ - SecurityModeComplete-r8-IEs.c \ - SecurityModeComplete-v8a0-IEs.c \ - SecurityModeFailure.c \ - SecurityModeFailure-r8-IEs.c \ - SecurityModeFailure-v8a0-IEs.c \ - SidelinkUEInformation-r12.c \ - SidelinkUEInformation-r12-IEs.c \ - SidelinkUEInformation-v1310-IEs.c \ - SidelinkUEInformation-v14x0-IEs.c \ - SL-CommTxResourceReq-r12.c \ - V2X-CommTxResourceReq-r14.c \ - SL-DiscTxResourceReqPerFreqList-r13.c \ - SL-DiscTxResourceReq-r13.c \ - SL-DestinationInfoList-r12.c \ - SL-DestinationIdentity-r12.c \ - SL-DiscSysInfoReportFreqList-r13.c \ - SL-V2X-CommFreqList-r14.c \ - SL-TypeTxSyncList-r14.c \ - SystemInformation-BR-r13.c \ - SystemInformation-MBMS-r14.c \ - SystemInformation.c \ - SystemInformation-r8-IEs.c \ - SystemInformation-v8a0-IEs.c \ - SystemInformationBlockType1-BR-r13.c \ - SystemInformationBlockType1.c \ - SystemInformationBlockType1-v890-IEs.c \ - SystemInformationBlockType1-v8h0-IEs.c \ - SystemInformationBlockType1-v9e0-IEs.c \ - SystemInformationBlockType1-v10j0-IEs.c \ - SystemInformationBlockType1-v920-IEs.c \ - SystemInformationBlockType1-v1130-IEs.c \ - SystemInformationBlockType1-v1250-IEs.c \ - SystemInformationBlockType1-v1310-IEs.c \ - SystemInformationBlockType1-v1320-IEs.c \ - SystemInformationBlockType1-v1350-IEs.c \ - SystemInformationBlockType1-v14xy-IEs.c \ - PLMN-IdentityList.c \ - PLMN-IdentityInfo.c \ - SchedulingInfoList.c \ - SchedulingInfo.c \ - SchedulingInfoList-BR-r13.c \ - SchedulingInfo-BR-r13.c \ - SIB-MappingInfo.c \ - SIB-Type.c \ - SystemInfoValueTagList-r13.c \ - SystemInfoValueTagSI-r13.c \ - CellSelectionInfo-v920.c \ - CellSelectionInfo-v1130.c \ - CellSelectionInfo-v1250.c \ - SystemInformationBlockType1-MBMS-r14.c \ - PLMN-IdentityList-MBMS-r14.c \ - PLMN-IdentityInfo-MBMS-r14.c \ - SchedulingInfoList-MBMS-r14.c \ - SchedulingInfo-MBMS-r14.c \ - SIB-MappingInfo-MBMS-r14.c \ - SIB-Type-MBMS-r14.c \ - NonMBSFN-SubframeConfig-r14.c \ - UEAssistanceInformation-r11.c \ - UEAssistanceInformation-r11-IEs.c \ - UEAssistanceInformation-v14xy-IEs.c \ - BW-Preference-r14.c \ - SPS-AssistanceInformation-r14.c \ - TrafficPatternInfoListSL-r14.c \ - TrafficPatternInfoListUL-r14.c \ - TrafficPatternInfo-r14.c \ - UECapabilityEnquiry.c \ - UECapabilityEnquiry-r8-IEs.c \ - UECapabilityEnquiry-v8a0-IEs.c \ - UECapabilityEnquiry-v1180-IEs.c \ - UECapabilityEnquiry-v1310-IEs.c \ - UECapabilityEnquiry-v14xy-IEs.c \ - UE-CapabilityRequest.c \ - UECapabilityInformation.c \ - UECapabilityInformation-r8-IEs.c \ - UECapabilityInformation-v8a0-IEs.c \ - UECapabilityInformation-v1250-IEs.c \ - UEInformationRequest-r9.c \ - UEInformationRequest-r9-IEs.c \ - UEInformationRequest-v930-IEs.c \ - UEInformationRequest-v1020-IEs.c \ - UEInformationRequest-v1130-IEs.c \ - UEInformationRequest-v1250-IEs.c \ - UEInformationResponse-r9.c \ - UEInformationResponse-r9-IEs.c \ - UEInformationResponse-v9e0-IEs.c \ - UEInformationResponse-v930-IEs.c \ - UEInformationResponse-v1020-IEs.c \ - UEInformationResponse-v1130-IEs.c \ - UEInformationResponse-v1250-IEs.c \ - RLF-Report-r9.c \ - RLF-Report-v9e0.c \ - MeasResultList2EUTRA-r9.c \ - MeasResultList2EUTRA-v9e0.c \ - MeasResultList2EUTRA-v1250.c \ - MeasResult2EUTRA-r9.c \ - MeasResult2EUTRA-v9e0.c \ - MeasResult2EUTRA-v1250.c \ - MeasResultList2UTRA-r9.c \ - MeasResult2UTRA-r9.c \ - MeasResultList2CDMA2000-r9.c \ - MeasResult2CDMA2000-r9.c \ - LogMeasReport-r10.c \ - LogMeasInfoList-r10.c \ - LogMeasInfo-r10.c \ - MeasResultListMBSFN-r12.c \ - MeasResultMBSFN-r12.c \ - DataBLER-MCH-ResultList-r12.c \ - DataBLER-MCH-Result-r12.c \ - BLER-Result-r12.c \ - BLER-Range-r12.c \ - MeasResultList2GERAN-r10.c \ - ConnEstFailReport-r11.c \ - NumberOfPreamblesSent-r11.c \ - TimeSinceFailure-r11.c \ - MobilityHistoryReport-r12.c \ - ULHandoverPreparationTransfer.c \ - ULHandoverPreparationTransfer-r8-IEs.c \ - ULHandoverPreparationTransfer-v8a0-IEs.c \ - ULInformationTransfer.c \ - ULInformationTransfer-r8-IEs.c \ - ULInformationTransfer-v8a0-IEs.c \ - WLANConnectionStatusReport-r13.c \ - WLANConnectionStatusReport-r13-IEs.c \ - WLANConnectionStatusReport-v14x0-IEs.c \ - SystemInformationBlockType2.c \ - SystemInformationBlockType2-v8h0-IEs.c \ - SystemInformationBlockType2-v9e0-IEs.c \ - AC-BarringConfig.c \ - MBSFN-SubframeConfigList.c \ - MBSFN-SubframeConfigList-v14xy.c \ - AC-BarringPerPLMN-List-r12.c \ - AC-BarringPerPLMN-r12.c \ - ACDC-BarringForCommon-r13.c \ - ACDC-BarringPerPLMN-List-r13.c \ - ACDC-BarringPerPLMN-r13.c \ - BarringPerACDC-CategoryList-r13.c \ - BarringPerACDC-Category-r13.c \ - UDT-Restricting-r13.c \ - UDT-RestrictingPerPLMN-List-r13.c \ - UDT-RestrictingPerPLMN-r13.c \ - CIOT-EPS-OptimisationInfo-r13.c \ - CIOT-OptimisationPLMN-r13.c \ - SystemInformationBlockType3.c \ - RedistributionServingInfo-r13.c \ - CellReselectionServingFreqInfo-v1310.c \ - SystemInformationBlockType3-v10j0-IEs.c \ - SystemInformationBlockType4.c \ - IntraFreqNeighCellList.c \ - IntraFreqNeighCellInfo.c \ - IntraFreqBlackCellList.c \ - SystemInformationBlockType5.c \ - SystemInformationBlockType5-v8h0-IEs.c \ - SystemInformationBlockType5-v9e0-IEs.c \ - SystemInformationBlockType5-v10j0-IEs.c \ - InterFreqCarrierFreqList.c \ - InterFreqCarrierFreqList-v1250.c \ - InterFreqCarrierFreqList-v1310.c \ - InterFreqCarrierFreqList-v1350.c \ - InterFreqCarrierFreqListExt-r12.c \ - InterFreqCarrierFreqListExt-v1280.c \ - InterFreqCarrierFreqListExt-v1310.c \ - InterFreqCarrierFreqListExt-v1350.c \ - InterFreqCarrierFreqInfo.c \ - InterFreqCarrierFreqInfo-v8h0.c \ - InterFreqCarrierFreqInfo-v9e0.c \ - InterFreqCarrierFreqInfo-v10j0.c \ - InterFreqCarrierFreqInfo-v1250.c \ - InterFreqCarrierFreqInfo-r12.c \ - InterFreqCarrierFreqInfo-v1310.c \ - InterFreqCarrierFreqInfo-v1350.c \ - InterFreqNeighCellList.c \ - InterFreqNeighCellInfo.c \ - InterFreqBlackCellList.c \ - RedistributionInterFreqInfo-r13.c \ - RedistributionNeighCellList-r13.c \ - RedistributionNeighCell-r13.c \ - RedistributionFactor-r13.c \ - SystemInformationBlockType6.c \ - SystemInformationBlockType6-v8h0-IEs.c \ - CarrierFreqInfoUTRA-v1250.c \ - CarrierFreqListUTRA-FDD.c \ - CarrierFreqUTRA-FDD.c \ - CarrierFreqInfoUTRA-FDD-v8h0.c \ - CarrierFreqListUTRA-FDD-Ext-r12.c \ - CarrierFreqUTRA-FDD-Ext-r12.c \ - CarrierFreqListUTRA-TDD.c \ - CarrierFreqUTRA-TDD.c \ - CarrierFreqListUTRA-TDD-Ext-r12.c \ - CarrierFreqUTRA-TDD-r12.c \ - FreqBandIndicator-UTRA-FDD.c \ - SystemInformationBlockType7.c \ - CarrierFreqsInfoListGERAN.c \ - CarrierFreqsInfoGERAN.c \ - SystemInformationBlockType8.c \ - CellReselectionParametersCDMA2000.c \ - CellReselectionParametersCDMA2000-r11.c \ - CellReselectionParametersCDMA2000-v920.c \ - NeighCellListCDMA2000.c \ - NeighCellCDMA2000.c \ - NeighCellCDMA2000-r11.c \ - NeighCellsPerBandclassListCDMA2000.c \ - NeighCellsPerBandclassCDMA2000.c \ - NeighCellsPerBandclassCDMA2000-r11.c \ - NeighCellListCDMA2000-v920.c \ - NeighCellCDMA2000-v920.c \ - NeighCellsPerBandclassListCDMA2000-v920.c \ - NeighCellsPerBandclassCDMA2000-v920.c \ - PhysCellIdListCDMA2000.c \ - PhysCellIdListCDMA2000-v920.c \ - BandClassListCDMA2000.c \ - BandClassInfoCDMA2000.c \ - AC-BarringConfig1XRTT-r9.c \ - SIB8-PerPLMN-List-r11.c \ - SIB8-PerPLMN-r11.c \ - ParametersCDMA2000-r11.c \ - SystemInformationBlockType9.c \ - SystemInformationBlockType10.c \ - SystemInformationBlockType11.c \ - SystemInformationBlockType12-r9.c \ - SystemInformationBlockType13-r9.c \ - SystemInformationBlockType14-r11.c \ - EAB-ConfigPLMN-r11.c \ - EAB-Config-r11.c \ - SystemInformationBlockType15-r11.c \ - MBMS-SAI-List-r11.c \ - MBMS-SAI-r11.c \ - MBMS-SAI-InterFreqList-r11.c \ - MBMS-SAI-InterFreqList-v1140.c \ - MBMS-SAI-InterFreq-r11.c \ - MBMS-SAI-InterFreq-v1140.c \ - MBMS-InterFreqCarrierTypeList-r14.c \ - MBMS-CarrierType-r14.c \ - FEMBMS-CarrierFreq-r14.c \ - SystemInformationBlockType16-r11.c \ - SystemInformationBlockType17-r12.c \ - WLAN-OffloadInfoPerPLMN-r12.c \ - WLAN-Id-List-r12.c \ - WLAN-Identifiers-r12.c \ - SystemInformationBlockType18-r12.c \ - SystemInformationBlockType19-r12.c \ - SL-CarrierFreqInfoList-r12.c \ - SL-CarrierFreqInfoList-v1310.c \ - SL-CarrierFreqInfo-r12.c \ - SL-DiscConfigRelayUE-r13.c \ - SL-DiscConfigRemoteUE-r13.c \ - ReselectionInfoRelay-r13.c \ - SL-CarrierFreqInfo-v1310.c \ - PLMN-IdentityList4-r12.c \ - PLMN-IdentityInfo2-r12.c \ - SL-DiscTxResourcesInterFreq-r13.c \ - SL-DiscConfigOtherInterFreq-r13.c \ - SL-ResourcesInterFreq-r13.c \ - SystemInformationBlockType20-r13.c \ - MPDCCH-SC-MCCH-Config-r14.c \ - SC-MCCH-SchedulingInfo-r14.c \ - SystemInformationBlockType21-r14.c \ - SL-V2X-ConfigCommon-r14.c \ - AntennaInfoCommon.c \ - AntennaInfoDedicated.c \ - AntennaInfoDedicated-v920.c \ - AntennaInfoDedicated-r10.c \ - AntennaInfoDedicated-v10i0.c \ - AntennaInfoDedicated-v1250.c \ - AntennaInfoDedicated-v14xy.c \ - AntennaInfoUL-r10.c \ - CQI-ReportConfig.c \ - CQI-ReportConfig-v920.c \ - CQI-ReportConfig-r10.c \ - CQI-ReportConfig-v1130.c \ - CQI-ReportConfig-v1250.c \ - CQI-ReportConfig-v1310.c \ - CQI-ReportConfig-v1320.c \ - CQI-ReportConfigSCell-r10.c \ - CQI-ReportPeriodic.c \ - CQI-ReportPeriodic-r10.c \ - CQI-ReportPeriodic-v1130.c \ - CQI-ReportPeriodic-v1310.c \ - CQI-ReportPeriodic-v1320.c \ - CQI-ReportPeriodicProcExtToAddModList-r11.c \ - CQI-ReportPeriodicProcExtToReleaseList-r11.c \ - CQI-ReportPeriodicProcExt-r11.c \ - CQI-ReportAperiodic-r10.c \ - CQI-ReportAperiodic-v1250.c \ - CQI-ReportAperiodic-v1310.c \ - CQI-ReportAperiodicProc-r11.c \ - CQI-ReportAperiodicProc-v1310.c \ - CQI-ReportModeAperiodic.c \ - CQI-ReportBoth-r11.c \ - CQI-ReportBoth-v1250.c \ - CQI-ReportBoth-v1310.c \ - CSI-IM-ConfigToAddModList-r11.c \ - CSI-IM-ConfigToAddModListExt-r13.c \ - CSI-IM-ConfigToReleaseList-r11.c \ - CSI-IM-ConfigToReleaseListExt-r13.c \ - CSI-ProcessToAddModList-r11.c \ - CSI-ProcessToReleaseList-r11.c \ - CQI-ReportBothProc-r11.c \ - CRI-ReportConfig-r13.c \ - CRI-ConfigIndex-r13.c \ - CQI-ReportPeriodicProcExtId-r11.c \ - CrossCarrierSchedulingConfig-r10.c \ - CrossCarrierSchedulingConfig-r13.c \ - CrossCarrierSchedulingConfigLAA-UL-r14.c \ - CSI-IM-Config-r11.c \ - CSI-IM-ConfigExt-r12.c \ - CSI-IM-ConfigId-r11.c \ - CSI-IM-ConfigId-r12.c \ - CSI-IM-ConfigId-v1250.c \ - CSI-IM-ConfigId-v1310.c \ - CSI-IM-ConfigId-r13.c \ - CSI-Process-r11.c \ - CSI-ProcessId-r11.c \ - CSI-RS-Config-r10.c \ - CSI-RS-Config-v1250.c \ - CSI-RS-Config-v1310.c \ - CSI-RS-Config-v14xy.c \ - ZeroTxPowerCSI-RS-Conf-r12.c \ - ZeroTxPowerCSI-RS-r12.c \ - CSI-RS-ConfigEMIMO-r13.c \ - CSI-RS-ConfigEMIMO-v14xy.c \ - CSI-RS-ConfigEMIMO2-r14.c \ - CSI-RS-ConfigEMIMO-Hybrid-r14.c \ - CSI-RS-ConfigNonPrecoded-r13.c \ - CSI-RS-ConfigNonPrecoded-v14xy.c \ - CSI-RS-ConfigBeamformed-r13.c \ - CSI-RS-ConfigBeamformed-r14.c \ - CSI-RS-ConfigBeamformed-v14xy.c \ - CSI-RS-ConfigNZP-r11.c \ - CSI-RS-ConfigNZP-EMIMO-r13.c \ - CSI-RS-ConfigNZP-EMIMO-v14xy.c \ - NZP-ResourceConfig-r13.c \ - ResourceConfig-r13.c \ - NZP-TransmissionComb-r14.c \ - NZP-FrequencyDensity-r14.c \ - CSI-RS-ConfigNZPId-r11.c \ - CSI-RS-ConfigNZPId-v1310.c \ - CSI-RS-ConfigNZPId-r13.c \ - CSI-RS-ConfigZP-r11.c \ - CSI-RS-ConfigZP-Ap-r14.c \ - CSI-RS-ConfigZPId-r11.c \ - DataInactivityTimer-r14.c \ - DMRS-Config-r11.c \ - DMRS-Config-v1310.c \ - DRB-Identity.c \ - EPDCCH-Config-r11.c \ - EPDCCH-SetConfigToAddModList-r11.c \ - EPDCCH-SetConfigToReleaseList-r11.c \ - EPDCCH-SetConfig-r11.c \ - EPDCCH-SetConfigId-r11.c \ - EIMTA-MainConfig-r12.c \ - EIMTA-MainConfigServCell-r12.c \ - LogicalChannelConfig.c \ - LWA-Configuration-r13.c \ - LWA-Config-r13.c \ - LWIP-Configuration-r13.c \ - LWIP-Config-r13.c \ - MAC-MainConfig.c \ - MAC-MainConfigSCell-r11.c \ - DRX-Config.c \ - DRX-Config-v1130.c \ - DRX-Config-v1310.c \ - DRX-Config-r13.c \ - PeriodicBSR-Timer-r12.c \ - RetxBSR-Timer-r12.c \ - STAG-ToReleaseList-r11.c \ - STAG-ToAddModList-r11.c \ - STAG-ToAddMod-r11.c \ - STAG-Id-r11.c \ - P-C-AndCBSR-r11.c \ - P-C-AndCBSR-r13.c \ - P-C-AndCBSR-Pair-r13a.c \ - P-C-AndCBSR-Pair-r13.c \ - PDCCH-ConfigSCell-r13.c \ - PDCCH-ConfigLAA-r14.c \ - PDCCH-CandidateReductionValue-r13.c \ - PDCCH-CandidateReductionValue-r14.c \ - PDCCH-CandidateReductions-r13.c \ - PDCCH-CandidateReductionsLAA-UL-r14.c \ - PDCP-Config.c \ - PDSCH-ConfigCommon.c \ - PDSCH-ConfigCommon-v1310.c \ - PDSCH-ConfigDedicated.c \ - PDSCH-ConfigDedicated-v1130.c \ - PDSCH-ConfigDedicated-v1280.c \ - PDSCH-ConfigDedicated-v1310.c \ - PDSCH-ConfigDedicated-v14xy.c \ - RE-MappingQCLConfigToAddModList-r11.c \ - RE-MappingQCLConfigToReleaseList-r11.c \ - PDSCH-RE-MappingQCL-Config-r11.c \ - PDSCH-RE-MappingQCL-ConfigId-r11.c \ - PerCC-ListGapIndication-r14.c \ - PerCC-GapIndication-r14.c \ - PHICH-Config.c \ - PhysicalConfigDedicated.c \ - PhysicalConfigDedicatedSCell-r10.c \ - LAA-SCellConfiguration-r13.c \ - LAA-SCellConfiguration-v14xy.c \ - LBT-Config-r14.c \ - CSI-RS-ConfigNZPToAddModList-r11.c \ - CSI-RS-ConfigNZPToAddModListExt-r13.c \ - CSI-RS-ConfigNZPToReleaseList-r11.c \ - CSI-RS-ConfigNZPToReleaseListExt-r13.c \ - CSI-RS-ConfigZPToAddModList-r11.c \ - CSI-RS-ConfigZPToReleaseList-r11.c \ - SoundingRS-AperiodicSet-r14.c \ - SoundingRS-AperiodicSetUpPTsExt-r14.c \ - P-Max.c \ - PRACH-ConfigSIB.c \ - PRACH-ConfigSIB-v1310.c \ - PRACH-Config.c \ - PRACH-Config-v1310.c \ - PRACH-Config-v14xy.c \ - PRACH-ConfigSCell-r10.c \ - PRACH-ConfigInfo.c \ - PRACH-ParametersListCE-r13.c \ - PRACH-ParametersCE-r13.c \ - RSRP-ThresholdsPrachInfoList-r13.c \ - PresenceAntennaPort1.c \ - PUCCH-ConfigCommon.c \ - PUCCH-ConfigCommon-v1310.c \ - PUCCH-ConfigCommon-v14xy.c \ - PUCCH-ConfigDedicated.c \ - PUCCH-ConfigDedicated-v1020.c \ - PUCCH-ConfigDedicated-v1130.c \ - PUCCH-ConfigDedicated-v1250.c \ - PUCCH-ConfigDedicated-r13.c \ - PUCCH-ConfigDedicated-v14xy.c \ - Format4-resource-r13.c \ - Format5-resource-r13.c \ - N1PUCCH-AN-CS-r10.c \ - N1PUCCH-AN-InfoList-r13.c \ - PUSCH-ConfigCommon.c \ - PUSCH-ConfigCommon-v1270.c \ - PUSCH-ConfigCommon-v1310.c \ - PUSCH-ConfigDedicated.c \ - PUSCH-ConfigDedicated-v1020.c \ - PUSCH-ConfigDedicated-v1130.c \ - PUSCH-ConfigDedicated-v1250.c \ - PUSCH-ConfigDedicated-r13.c \ - PUSCH-ConfigDedicated-v14xy.c \ - PUSCH-ConfigDedicatedSCell-r10.c \ - TDD-PUSCH-UpPTS-r14.c \ - PUSCH-ConfigDedicatedScell-v14xy.c \ - Enable256QAM-r14.c \ - PUSCH-EnhancementsConf-r14.c \ - UL-ReferenceSignalsPUSCH.c \ - RACH-ConfigCommon.c \ - RACH-ConfigCommon-v1250.c \ - RACH-ConfigCommonSCell-r11.c \ - RACH-CE-LevelInfoList-r13.c \ - RACH-CE-LevelInfo-r13.c \ - PowerRampingParameters.c \ - PreambleTransMax.c \ - RACH-ConfigDedicated.c \ - RadioResourceConfigCommonSIB.c \ - RadioResourceConfigCommon.c \ - RadioResourceConfigCommonPSCell-r12.c \ - RadioResourceConfigCommonSCell-r10.c \ - BCCH-Config.c \ - BCCH-Config-v1310.c \ - FreqHoppingParameters-r13.c \ - PCCH-Config.c \ - PCCH-Config-v1310.c \ - UL-CyclicPrefixLength.c \ - HighSpeedConfig-r14.c \ - HighSpeedConfigSCell-r14.c \ - RadioResourceConfigDedicated.c \ - RadioResourceConfigDedicatedPSCell-r12.c \ - RadioResourceConfigDedicatedSCG-r12.c \ - RadioResourceConfigDedicatedSCell-r10.c \ - SRB-ToAddModList.c \ - SRB-ToAddMod.c \ - DRB-ToAddModList.c \ - DRB-ToAddModListSCG-r12.c \ - DRB-ToAddMod.c \ - DRB-ToAddModSCG-r12.c \ - DRB-ToReleaseList.c \ - MeasSubframePatternPCell-r10.c \ - NeighCellsCRS-Info-r11.c \ - CRS-AssistanceInfoList-r11.c \ - CRS-AssistanceInfo-r11.c \ - NeighCellsCRS-Info-r13.c \ - CRS-AssistanceInfoList-r13.c \ - CRS-AssistanceInfo-r13.c \ - NAICS-AssistanceInfo-r12.c \ - NeighCellsToReleaseList-r12.c \ - NeighCellsToAddModList-r12.c \ - NeighCellsInfo-r12.c \ - P-a.c \ - RCLWI-Configuration-r13.c \ - RCLWI-Config-r13.c \ - RLC-Config.c \ - RLC-Config-v1250.c \ - RLC-Config-v1310.c \ - RLC-Config-v14xy.c \ - UL-AM-RLC.c \ - DL-AM-RLC.c \ - UL-UM-RLC.c \ - DL-UM-RLC.c \ - SN-FieldLength.c \ - T-PollRetransmit.c \ - PollPDU.c \ - PollPDU-v1310.c \ - PollByte.c \ - PollByte-r14.c \ - T-Reordering.c \ - T-StatusProhibit.c \ - RLF-TimersAndConstants-r9.c \ - RLF-TimersAndConstants-r13.c \ - RLF-TimersAndConstantsSCG-r12.c \ - RN-SubframeConfig-r10.c \ - SchedulingRequestConfig.c \ - SchedulingRequestConfig-v1020.c \ - SchedulingRequestConfigSCell-r13.c \ - SoundingRS-UL-ConfigCommon.c \ - SoundingRS-UL-ConfigDedicated.c \ - SoundingRS-UL-ConfigDedicated-v1020.c \ - SoundingRS-UL-ConfigDedicated-v1310.c \ - SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.c \ - SoundingRS-UL-ConfigDedicatedAperiodic-r10.c \ - SoundingRS-UL-ConfigDedicatedAperiodic-v1310.c \ - SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.c \ - SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.c \ - SRS-ConfigAp-r10.c \ - SRS-ConfigAp-v1310.c \ - SRS-ConfigAp-r13.c \ - SRS-AntennaPort.c \ - SPS-Config.c \ - SPS-Config-v14xy.c \ - SPS-ConfigUL-ToAddModList-r14.c \ - SPS-ConfigUL-ToReleaseList-r14.c \ - SPS-ConfigSL-ToAddModList-r14.c \ - SPS-ConfigSL-ToReleaseList-r14.c \ - SPS-ConfigDL.c \ - SPS-ConfigUL.c \ - SPS-ConfigSL-r14.c \ - SPS-ConfigIndex-r14.c \ - N1PUCCH-AN-PersistentList.c \ - SRS-TPC-PDCCH-Config-r14.c \ - SRS-CC-SetIndex-r14.c \ - TDD-Config.c \ - TDD-Config-v1130.c \ - TDD-Config-v14xy.c \ - TDD-ConfigSL-r12.c \ - TimeAlignmentTimer.c \ - TPC-PDCCH-Config.c \ - TPC-PDCCH-ConfigSCell-r13.c \ - TPC-Index.c \ - TunnelConfigLWIP-r13.c \ - IKE-Identity-r13.c \ - IP-Address-r13.c \ - UplinkPowerControlCommon.c \ - UplinkPowerControlCommon-v1020.c \ - UplinkPowerControlCommon-v1310.c \ - UplinkPowerControlCommonPSCell-r12.c \ - UplinkPowerControlCommonSCell-r10.c \ - UplinkPowerControlCommonSCell-v1130.c \ - UplinkPowerControlCommonSCell-v1310.c \ - UplinkPowerControlCommonPUSCH-LessCell-v14xy.c \ - UplinkPowerControlDedicated.c \ - UplinkPowerControlDedicated-v1020.c \ - UplinkPowerControlDedicated-v1130.c \ - UplinkPowerControlDedicated-v1250.c \ - UplinkPUSCH-LessPowerControlDedicated-v14xy.c \ - UplinkPowerControlDedicatedSCell-r10.c \ - UplinkPowerControlDedicatedSCell-v1310.c \ - Alpha-r12.c \ - DeltaFList-PUCCH.c \ - DeltaTxD-OffsetListPUCCH-r10.c \ - DeltaTxD-OffsetListPUCCH-v1130.c \ - WLAN-Id-List-r13.c \ - WLAN-MobilityConfig-r13.c \ - NextHopChainingCount.c \ - SecurityAlgorithmConfig.c \ - CipheringAlgorithm-r12.c \ - ShortMAC-I.c \ - AdditionalSpectrumEmission.c \ - ARFCN-ValueCDMA2000.c \ - ARFCN-ValueEUTRA.c \ - ARFCN-ValueEUTRA-v9e0.c \ - ARFCN-ValueEUTRA-r9.c \ - ARFCN-ValueGERAN.c \ - ARFCN-ValueUTRA.c \ - BandclassCDMA2000.c \ - BandIndicatorGERAN.c \ - CarrierFreqCDMA2000.c \ - CarrierFreqGERAN.c \ - CarrierFreqsGERAN.c \ - ExplicitListOfARFCNs.c \ - CarrierFreqListMBMS-r11.c \ - CDMA2000-Type.c \ - CellIdentity.c \ - CellIndexList.c \ - CellIndex.c \ - CellReselectionPriority.c \ - CellSelectionInfoCE-r13.c \ - CellSelectionInfoCE1-r13.c \ - CellReselectionSubPriority-r13.c \ - CSFB-RegistrationParam1XRTT.c \ - CSFB-RegistrationParam1XRTT-v920.c \ - CellGlobalIdEUTRA.c \ - CellGlobalIdUTRA.c \ - CellGlobalIdGERAN.c \ - CellGlobalIdCDMA2000.c \ - CellSelectionInfoNFreq-r13.c \ - CSG-Identity.c \ - FreqBandIndicator.c \ - FreqBandIndicator-v9e0.c \ - FreqBandIndicator-r11.c \ - MobilityControlInfo.c \ - MobilityControlInfo-eLWA-r14.c \ - MobilityControlInfoSCG-r12.c \ - MobilityControlInfoV2X-r14.c \ - CarrierBandwidthEUTRA.c \ - CarrierFreqEUTRA.c \ - CarrierFreqEUTRA-v9e0.c \ - RACH-Skip-r14.c \ - MobilityParametersCDMA2000.c \ - MobilityStateParameters.c \ - MultiBandInfoList.c \ - MultiBandInfoList-v9e0.c \ - MultiBandInfoList-v10j0.c \ - MultiBandInfoList-r11.c \ - MultiBandInfo-v9e0.c \ - NS-PmaxList-r10.c \ - NS-PmaxValue-r10.c \ - PhysCellId.c \ - PhysCellIdRange.c \ - PhysCellIdRangeUTRA-FDDList-r9.c \ - PhysCellIdRangeUTRA-FDD-r9.c \ - PhysCellIdCDMA2000.c \ - PhysCellIdGERAN.c \ - PhysCellIdUTRA-FDD.c \ - PhysCellIdUTRA-TDD.c \ - PLMN-Identity.c \ - MCC.c \ - MNC.c \ - MCC-MNC-Digit.c \ - PLMN-IdentityList3-r11.c \ - PreRegistrationInfoHRPD.c \ - SecondaryPreRegistrationZoneIdListHRPD.c \ - PreRegistrationZoneIdHRPD.c \ - Q-QualMin-r9.c \ - Q-RxLevMin.c \ - Q-OffsetRange.c \ - Q-OffsetRangeInterRAT.c \ - ReselectionThreshold.c \ - ReselectionThresholdQ-r9.c \ - SCellIndex-r10.c \ - SCellIndex-r13.c \ - ServCellIndex-r10.c \ - ServCellIndex-r13.c \ - SpeedStateScaleFactors.c \ - SystemInfoListGERAN.c \ - SystemTimeInfoCDMA2000.c \ - TrackingAreaCode.c \ - T-Reselection.c \ - T-ReselectionEUTRA-CE-r13.c \ - AllowedMeasBandwidth.c \ - CSI-RSRP-Range-r12.c \ - Hysteresis.c \ - LocationInfo-r10.c \ - MBSFN-RSRQ-Range-r12.c \ - MeasConfig.c \ - MeasIdToRemoveList.c \ - MeasIdToRemoveListExt-r12.c \ - MeasObjectToRemoveList.c \ - MeasObjectToRemoveListExt-r13.c \ - ReportConfigToRemoveList.c \ - MeasDS-Config-r12.c \ - MeasCSI-RS-ToRemoveList-r12.c \ - MeasCSI-RS-ToAddModList-r12.c \ - MeasCSI-RS-Id-r12.c \ - MeasCSI-RS-Config-r12.c \ - MeasGapConfig.c \ - MeasGapConfig-r14.c \ - PerCC-MeasGapConfig-r14.c \ - MeasId.c \ - MeasId-v1250.c \ - MeasIdToAddModList.c \ - MeasIdToAddModList-v1310.c \ - MeasIdToAddModListExt-r12.c \ - MeasIdToAddModListExt-v1310.c \ - MeasIdToAddMod.c \ - MeasIdToAddModExt-r12.c \ - MeasIdToAddMod-v1310.c \ - MeasObjectCDMA2000.c \ - CellsToAddModListCDMA2000.c \ - CellsToAddModCDMA2000.c \ - MeasObjectEUTRA.c \ - MeasObjectEUTRA-v9e0.c \ - CellsToAddModList.c \ - CellsToAddMod.c \ - BlackCellsToAddModList.c \ - BlackCellsToAddMod.c \ - MeasCycleSCell-r10.c \ - MeasSubframePatternConfigNeigh-r10.c \ - MeasSubframeCellList-r10.c \ - AltTTT-CellsToAddModList-r12.c \ - AltTTT-CellsToAddMod-r12.c \ - WhiteCellsToAddModList-r13.c \ - WhiteCellsToAddMod-r13.c \ - RMTC-Config-r13.c \ - MeasObjectGERAN.c \ - MeasObjectId.c \ - MeasObjectId-v1310.c \ - MeasObjectId-r13.c \ - MeasObjectSL-r14.c \ - Tx-ResourcePoolMeasList-r14.c \ - MeasObjectToAddModList.c \ - MeasObjectToAddModListExt-r13.c \ - MeasObjectToAddModList-v9e0.c \ - MeasObjectToAddMod.c \ - MeasObjectToAddModExt-r13.c \ - MeasObjectToAddMod-v9e0.c \ - MeasObjectUTRA.c \ - CellsToAddModListUTRA-FDD.c \ - CellsToAddModUTRA-FDD.c \ - CellsToAddModListUTRA-TDD.c \ - CellsToAddModUTRA-TDD.c \ - CSG-AllowedReportingCells-r9.c \ - MeasObjectWLAN-r13.c \ - WLAN-BandIndicator-r13.c \ - MeasResults.c \ - MeasResultListEUTRA.c \ - MeasResultEUTRA.c \ - MeasResultServFreqList-r10.c \ - MeasResultServFreqListExt-r13.c \ - MeasResultServFreq-r10.c \ - MeasResultServFreq-r13.c \ - MeasResultCSI-RS-List-r12.c \ - MeasResultCSI-RS-r12.c \ - MeasResultListUTRA.c \ - MeasResultUTRA.c \ - MeasResultListGERAN.c \ - MeasResultGERAN.c \ - MeasResultsCDMA2000.c \ - MeasResultListCDMA2000.c \ - MeasResultCDMA2000.c \ - MeasResultListWLAN-r13.c \ - MeasResultListWLAN-r14.c \ - MeasResultWLAN-r13.c \ - MeasResultListCBR-r14.c \ - MeasResultCBR-r14.c \ - MeasResultForECID-r9.c \ - PLMN-IdentityList2.c \ - AdditionalSI-Info-r9.c \ - MeasResultForRSSI-r13.c \ - UL-PDCP-DelayResultList-r13.c \ - UL-PDCP-DelayResult-r13.c \ - MeasResultSSTD-r13.c \ - MeasScaleFactor-r12.c \ - QuantityConfig.c \ - QuantityConfigEUTRA.c \ - QuantityConfigEUTRA-v1250.c \ - QuantityConfigEUTRA-v1310.c \ - QuantityConfigUTRA.c \ - QuantityConfigUTRA-v1020.c \ - QuantityConfigGERAN.c \ - QuantityConfigCDMA2000.c \ - QuantityConfigWLAN-r13.c \ - ReportConfigEUTRA.c \ - RSRQ-RangeConfig-r12.c \ - ThresholdEUTRA.c \ - ThresholdEUTRA-v1250.c \ - MeasRSSI-ReportConfig-r13.c \ - ReportConfigId.c \ - ReportConfigInterRAT.c \ - ThresholdUTRA.c \ - ThresholdGERAN.c \ - ThresholdCDMA2000.c \ - ReportQuantityWLAN-r13.c \ - ReportConfigToAddModList.c \ - ReportConfigToAddMod.c \ - ReportInterval.c \ - RSRP-Range.c \ - RSRP-RangeSL-r12.c \ - RSRP-RangeSL2-r12.c \ - RSRP-RangeSL3-r12.c \ - RSRP-RangeSL4-r13.c \ - RSRQ-Range.c \ - RSRQ-Range-v1250.c \ - RSRQ-Range-r13.c \ - RSRQ-Type-r12.c \ - RS-SINR-Range-r13.c \ - RSSI-Range-r13.c \ - TimeToTrigger.c \ - UL-DelayConfig-r13.c \ - WLAN-CarrierInfo-r13.c \ - WLAN-ChannelList-r13.c \ - WLAN-Channel-r13.c \ - WLAN-RSSI-Range-r13.c \ - WLAN-Status-r13.c \ - WLAN-Status-v14x0.c \ - WLAN-SuspendConfig-r14.c \ - AbsoluteTimeInfo-r10.c \ - AreaConfiguration-r10.c \ - AreaConfiguration-v1130.c \ - CellGlobalIdList-r10.c \ - TrackingAreaCodeList-r10.c \ - TrackingAreaCodeList-v1130.c \ - BandCombinationList-r14.c \ - BandCombination-r14.c \ - BandIndication-r14.c \ - C-RNTI.c \ - DedicatedInfoCDMA2000.c \ - DedicatedInfoNAS.c \ - FilterCoefficient.c \ - LoggingDuration-r10.c \ - LoggingInterval-r10.c \ - MeasSubframePattern-r10.c \ - MMEC.c \ - NeighCellConfig.c \ - OtherConfig-r9.c \ - DelayBudgetReportingConfig-r14.c \ - IDC-Config-r11.c \ - ObtainLocationConfig-r11.c \ - PowerPrefIndicationConfig-r11.c \ - BW-Config-r14.c \ - ReportProximityConfig-r9.c \ - RAND-CDMA2000.c \ - RAT-Type.c \ - ResumeIdentity-r13.c \ - RRC-TransactionIdentifier.c \ - S-TMSI.c \ - TraceReference-r10.c \ - UE-CapabilityRAT-ContainerList.c \ - UE-CapabilityRAT-Container.c \ - UE-EUTRA-Capability.c \ - UE-EUTRA-Capability-v9a0-IEs.c \ - UE-EUTRA-Capability-v9c0-IEs.c \ - UE-EUTRA-Capability-v9d0-IEs.c \ - UE-EUTRA-Capability-v9e0-IEs.c \ - UE-EUTRA-Capability-v9h0-IEs.c \ - UE-EUTRA-Capability-v10c0-IEs.c \ - UE-EUTRA-Capability-v10f0-IEs.c \ - UE-EUTRA-Capability-v10i0-IEs.c \ - UE-EUTRA-Capability-v10j0-IEs.c \ - UE-EUTRA-Capability-v11d0-IEs.c \ - UE-EUTRA-Capability-v11x0-IEs.c \ - UE-EUTRA-Capability-v12b0-IEs.c \ - UE-EUTRA-Capability-v920-IEs.c \ - UE-EUTRA-Capability-v940-IEs.c \ - UE-EUTRA-Capability-v1020-IEs.c \ - UE-EUTRA-Capability-v1060-IEs.c \ - UE-EUTRA-Capability-v1090-IEs.c \ - UE-EUTRA-Capability-v1130-IEs.c \ - UE-EUTRA-Capability-v1170-IEs.c \ - UE-EUTRA-Capability-v1180-IEs.c \ - UE-EUTRA-Capability-v11a0-IEs.c \ - UE-EUTRA-Capability-v1250-IEs.c \ - UE-EUTRA-Capability-v1260-IEs.c \ - UE-EUTRA-Capability-v1270-IEs.c \ - UE-EUTRA-Capability-v1280-IEs.c \ - UE-EUTRA-Capability-v1310-IEs.c \ - UE-EUTRA-Capability-v1320-IEs.c \ - UE-EUTRA-Capability-v1330-IEs.c \ - UE-EUTRA-Capability-v1340-IEs.c \ - UE-EUTRA-Capability-v1350-IEs.c \ - UE-EUTRA-Capability-v14xy-IEs.c \ - UE-EUTRA-CapabilityAddXDD-Mode-r9.c \ - UE-EUTRA-CapabilityAddXDD-Mode-v1060.c \ - UE-EUTRA-CapabilityAddXDD-Mode-v1130.c \ - UE-EUTRA-CapabilityAddXDD-Mode-v1180.c \ - UE-EUTRA-CapabilityAddXDD-Mode-v1250.c \ - UE-EUTRA-CapabilityAddXDD-Mode-v1310.c \ - UE-EUTRA-CapabilityAddXDD-Mode-v1320.c \ - AccessStratumRelease.c \ - MobilityParameters-r14.c \ - DC-Parameters-r12.c \ - DC-Parameters-v1310.c \ - MAC-Parameters-r12.c \ - MAC-Parameters-v1310.c \ - MAC-Parameters-v14xy.c \ - RLC-Parameters-r12.c \ - RLC-Parameters-v1310.c \ - RLC-Parameters-v14xy.c \ - PDCP-Parameters.c \ - PDCP-Parameters-v1130.c \ - PDCP-Parameters-v1310.c \ - PhyLayerParameters.c \ - PhyLayerParameters-v920.c \ - PhyLayerParameters-v9d0.c \ - PhyLayerParameters-v1020.c \ - PhyLayerParameters-v1130.c \ - PhyLayerParameters-v1170.c \ - PhyLayerParameters-v1250.c \ - PhyLayerParameters-v1280.c \ - PhyLayerParameters-v1310.c \ - PhyLayerParameters-v1320.c \ - PhyLayerParameters-v1330.c \ - PhyLayerParameters-v14xy.c \ - MIMO-UE-Parameters-r13.c \ - MIMO-UE-Parameters-v14xy.c \ - MIMO-UE-ParametersPerTM-r13.c \ - MIMO-UE-ParametersPerTM-v14xy.c \ - MIMO-CA-ParametersPerBoBC-r13.c \ - MIMO-CA-ParametersPerBoBC-v14xy.c \ - MIMO-CA-ParametersPerBoBCPerTM-r13.c \ - MIMO-CA-ParametersPerBoBCPerTM-v14xy.c \ - MIMO-NonPrecodedCapabilities-r13.c \ - MIMO-UE-BeamformedCapabilities-r13.c \ - MIMO-BeamformedCapabilityList-r13.c \ - MIMO-BeamformedCapabilities-r13.c \ - NonContiguousUL-RA-WithinCC-List-r10.c \ - NonContiguousUL-RA-WithinCC-r10.c \ - RF-Parameters.c \ - RF-Parameters-v9e0.c \ - RF-Parameters-v1020.c \ - RF-Parameters-v1060.c \ - RF-Parameters-v1090.c \ - RF-Parameters-v10f0.c \ - RF-Parameters-v10i0.c \ - RF-Parameters-v10j0.c \ - RF-Parameters-v1130.c \ - RF-Parameters-v1180.c \ - RF-Parameters-v11d0.c \ - RF-Parameters-v1250.c \ - RF-Parameters-v1270.c \ - RF-Parameters-v1310.c \ - RF-Parameters-v1320.c \ - RF-Parameters-v12b0.c \ - RF-Parameters-v14xy.c \ - SupportedBandCombination-r10.c \ - SupportedBandCombinationExt-r10.c \ - SupportedBandCombination-v1090.c \ - SupportedBandCombination-v10i0.c \ - SupportedBandCombination-v1130.c \ - SupportedBandCombination-v1250.c \ - SupportedBandCombination-v1270.c \ - SupportedBandCombination-v1320.c \ - SupportedBandCombination-v14xy.c \ - SupportedBandCombinationAdd-r11.c \ - SupportedBandCombinationAdd-v11d0.c \ - SupportedBandCombinationAdd-v1250.c \ - SupportedBandCombinationAdd-v1270.c \ - SupportedBandCombinationAdd-v1320.c \ - SupportedBandCombinationAdd-v14xy.c \ - SupportedBandCombinationReduced-r13.c \ - SupportedBandCombinationReduced-v1320.c \ - SupportedBandCombinationReduced-v14xy.c \ - BandCombinationParameters-r10.c \ - BandCombinationParametersExt-r10.c \ - BandCombinationParameters-v1090.c \ - BandCombinationParameters-v10i0.c \ - BandCombinationParameters-v1130.c \ - BandCombinationParameters-r11.c \ - BandCombinationParameters-v1250.c \ - BandCombinationParameters-v1270.c \ - BandCombinationParameters-r13.c \ - BandCombinationParameters-v1320.c \ - BandCombinationParameters-v14xy.c \ - SupportedBandwidthCombinationSet-r10.c \ - BandParameters-r10.c \ - BandParameters-v1090.c \ - BandParameters-v10i0.c \ - BandParameters-v1130.c \ - BandParameters-r11.c \ - BandParameters-v1270.c \ - BandParameters-r13.c \ - BandParameters-v1320.c \ - BandParameters-v14xy.c \ - UL-256QAM-perCC-Info-r14.c \ - BandParametersUL-r10.c \ - BandParametersUL-r13.c \ - CA-MIMO-ParametersUL-r10.c \ - BandParametersDL-r10.c \ - BandParametersDL-r13.c \ - CA-MIMO-ParametersDL-r10.c \ - CA-MIMO-ParametersDL-v10i0.c \ - CA-MIMO-ParametersDL-v1270.c \ - CA-MIMO-ParametersDL-r13.c \ - IntraBandContiguousCC-Info-r12.c \ - CA-BandwidthClass-r10.c \ - MIMO-CapabilityUL-r10.c \ - MIMO-CapabilityDL-r10.c \ - SupportedBandListEUTRA.c \ - SupportedBandListEUTRA-v9e0.c \ - SupportedBandListEUTRA-v1250.c \ - SupportedBandListEUTRA-v1310.c \ - SupportedBandListEUTRA-v1320.c \ - SupportedBandEUTRA.c \ - SupportedBandEUTRA-v9e0.c \ - SupportedBandEUTRA-v1250.c \ - SupportedBandEUTRA-v1310.c \ - SupportedBandEUTRA-v1320.c \ - MeasParameters.c \ - MeasParameters-v1020.c \ - MeasParameters-v1130.c \ - MeasParameters-v11a0.c \ - MeasParameters-v1250.c \ - MeasParameters-v1310.c \ - MeasParameters-v14xy.c \ - BandListEUTRA.c \ - BandCombinationListEUTRA-r10.c \ - BandInfoEUTRA.c \ - InterFreqBandList.c \ - InterFreqBandInfo.c \ - InterRAT-BandList.c \ - InterRAT-BandInfo.c \ - IRAT-ParametersUTRA-FDD.c \ - IRAT-ParametersUTRA-v920.c \ - IRAT-ParametersUTRA-v9c0.c \ - IRAT-ParametersUTRA-v9h0.c \ - SupportedBandListUTRA-FDD.c \ - SupportedBandUTRA-FDD.c \ - IRAT-ParametersUTRA-TDD128.c \ - SupportedBandListUTRA-TDD128.c \ - SupportedBandUTRA-TDD128.c \ - IRAT-ParametersUTRA-TDD384.c \ - SupportedBandListUTRA-TDD384.c \ - SupportedBandUTRA-TDD384.c \ - IRAT-ParametersUTRA-TDD768.c \ - SupportedBandListUTRA-TDD768.c \ - SupportedBandUTRA-TDD768.c \ - IRAT-ParametersUTRA-TDD-v1020.c \ - IRAT-ParametersGERAN.c \ - IRAT-ParametersGERAN-v920.c \ - SupportedBandListGERAN.c \ - SupportedBandGERAN.c \ - IRAT-ParametersCDMA2000-HRPD.c \ - SupportedBandListHRPD.c \ - IRAT-ParametersCDMA2000-1XRTT.c \ - IRAT-ParametersCDMA2000-1XRTT-v920.c \ - IRAT-ParametersCDMA2000-1XRTT-v1020.c \ - IRAT-ParametersCDMA2000-v1130.c \ - SupportedBandList1XRTT.c \ - IRAT-ParametersWLAN-r13.c \ - CSG-ProximityIndicationParameters-r9.c \ - NeighCellSI-AcquisitionParameters-r9.c \ - SON-Parameters-r9.c \ - UE-BasedNetwPerfMeasParameters-r10.c \ - UE-BasedNetwPerfMeasParameters-v1250.c \ - OTDOA-PositioningCapabilities-r10.c \ - Other-Parameters-r11.c \ - Other-Parameters-v11d0.c \ - Other-Parameters-v14xy.c \ - MBMS-Parameters-r11.c \ - MBMS-Parameters-v1250.c \ - SCPTM-Parameters-r13.c \ - CE-Parameters-r13.c \ - CE-Parameters-v1320.c \ - CE-Parameters-v1350.c \ - LAA-Parameters-r13.c \ - LAA-Parameters-v14xy.c \ - WLAN-IW-Parameters-r12.c \ - LWA-Parameters-r13.c \ - LWA-Parameters-v14xy.c \ - WLAN-IW-Parameters-v1310.c \ - LWIP-Parameters-r13.c \ - LWIP-Parameters-v14xy.c \ - NAICS-Capability-List-r12.c \ - NAICS-Capability-Entry-r12.c \ - SL-Parameters-r12.c \ - SL-Parameters-v1310.c \ - SupportedBandInfoList-r12.c \ - SupportedBandInfo-r12.c \ - FreqBandIndicatorListEUTRA-r12.c \ - MMTEL-Parameters-r14.c \ - RetuningTimeBandPairList-r14.c \ - RetuningTimeParameters-r14.c \ - UE-RadioPagingInfo-r12.c \ - UE-TimersAndConstants.c \ - VisitedCellInfoList-r12.c \ - VisitedCellInfo-r12.c \ - WLAN-OffloadConfig-r12.c \ - WLAN-backhaulRate-r12.c \ - MBMS-NotificationConfig-r9.c \ - MBMS-NotificationConfig-v14xy.c \ - MBMS-ServiceList-r13.c \ - MBMS-ServiceInfo-r13.c \ - MBSFN-AreaId-r12.c \ - MBSFN-AreaInfoList-r9.c \ - MBSFN-AreaInfo-r9.c \ - MBSFN-SubframeConfig.c \ - MBSFN-SubframeConfig-v14xy.c \ - PMCH-InfoList-r9.c \ - PMCH-InfoListExt-r12.c \ - PMCH-Info-r9.c \ - PMCH-InfoExt-r12.c \ - MBMS-SessionInfoList-r9.c \ - MBMS-SessionInfo-r9.c \ - PMCH-Config-r9.c \ - PMCH-Config-r12.c \ - TMGI-r9.c \ - SC-MTCH-InfoList-r13.c \ - SC-MTCH-Info-r13.c \ - MBMSSessionInfo-r13.c \ - SC-MTCH-SchedulingInfo-r13.c \ - SC-MTCH-InfoList-BR-r14.c \ - SC-MTCH-Info-BR-r14.c \ - SC-MTCH-SchedulingInfo-BR-r14.c \ - SCPTM-NeighbourCellList-r13.c \ - PCI-ARFCN-r13.c \ - SL-CBR-MeasConfig-r14.c \ - SL-ThresS-RSSI-CBR-r14.c \ - SL-CBR-PSSCH-TxConfigList-r14.c \ - SL-CBR-PSSCH-TxConfig-r14.c \ - SL-PPPP-PSSCH-TxConfig-r14.c \ - SL-CBR-Range-r14.c \ - SL-CBR-r14.c \ - SL-CommConfig-r12.c \ - LogicalChGroupInfoList-r13.c \ - SL-CommTxPoolToAddModList-r12.c \ - SL-CommTxPoolToAddModListExt-r13.c \ - SL-CommTxPoolToAddMod-r12.c \ - SL-CommTxPoolToAddModExt-r13.c \ - MAC-MainConfigSL-r12.c \ - SL-CommTxPoolList-r12.c \ - SL-CommTxPoolListExt-r13.c \ - SL-CommTxPoolListV2X-r14.c \ - SL-CommRxPoolList-r12.c \ - SL-CommRxPoolListV2X-r14.c \ - SL-CommResourcePool-r12.c \ - SL-CommResourcePoolV2X-r14.c \ - SL-TRPT-Subset-r12.c \ - SL-V2X-TxPoolReportIdentity-r14.c \ - SL-CommTxPoolSensingConfig-r14.c \ - SL-CP-Len-r12.c \ - SL-DiscConfig-r12.c \ - SL-DiscSysInfoToReportFreqList-r13.c \ - SL-DiscTxInfoInterFreqListAdd-r13.c \ - SL-DiscTxResourceInfoPerFreq-r13.c \ - SL-DiscTxResource-r13.c \ - SL-DiscTxPoolToAddModList-r12.c \ - SL-DiscTxPoolToAddMod-r12.c \ - SL-DiscTxConfigScheduled-r13.c \ - SL-DiscTxPoolDedicated-r13.c \ - SL-TF-IndexPairList-r12.c \ - SL-TF-IndexPair-r12.c \ - SL-TF-IndexPairList-r12b.c \ - SL-TF-IndexPair-r12b.c \ - SL-DiscTxRefCarrierDedicated-r13.c \ - SL-DiscTxPoolList-r12.c \ - SL-DiscRxPoolList-r12.c \ - SL-DiscResourcePool-r12.c \ - PhysCellIdList-r13.c \ - SL-PoolSelectionConfig-r12.c \ - SL-DiscSysInfoReport-r13.c \ - SL-DiscTxPowerInfoList-r12.c \ - SL-DiscTxPowerInfo-r12.c \ - SL-GapConfig-r13.c \ - SL-GapPatternList-r13.c \ - SL-GapPattern-r13.c \ - SL-GapRequest-r13.c \ - SL-GapFreqInfo-r13.c \ - SL-HoppingConfigComm-r12.c \ - SL-HoppingConfigDisc-r12.c \ - SL-InterFreqInfoListV2X-r14.c \ - SL-InterFreqInfoV2X-r14.c \ - SL-V2X-UE-SelectionConfigList-r14.c \ - SL-V2X-InterFreqUE-SelectionConfig-r14.c \ - SL-OffsetIndicator-r12.c \ - SL-OffsetIndicatorSync-r12.c \ - SL-OffsetIndicatorSync-v14xy.c \ - SL-OffsetIndicatorSync-r14.c \ - SL-P2X-ResourceSelectionConfig-r14.c \ - SL-P2X-SensingConfig-r14.c \ - SL-PeriodComm-r12.c \ - SL-PriorityList-r13.c \ - SL-Priority-r13.c \ - SL-PSSCH-TxConfigList-r14.c \ - SL-PSSCH-TxConfig-r14.c \ - SL-PSSCH-TxParameters-r14.c \ - SL-RestrictResourceReservationPeriodList-r14.c \ - SL-RestrictResourceReservationPeriod-r14.c \ - SLSSID-r12.c \ - SL-SyncAllowed-r14.c \ - SL-SyncConfigList-r12.c \ - SL-SyncConfigListV2X-r14.c \ - SL-SyncConfig-r12.c \ - SL-SyncConfigListNFreq-r13.c \ - SL-SyncConfigListNFreqV2X-r14.c \ - SL-SyncConfigNFreq-r13.c \ - SL-TF-ResourceConfig-r12.c \ - SubframeBitmapSL-r12.c \ - SubframeBitmapSL-r14.c \ - SL-TxPower-r14.c \ - SL-TypeTxSync-r14.c \ - SL-ThresPSSCH-RSRP-List-r14.c \ - SL-ThresPSSCH-RSRP-r14.c \ - SL-TxParameters-r12.c \ - P0-SL-r12.c \ - SL-TxPoolIdentity-r12.c \ - SL-TxPoolIdentity-v1310.c \ - SL-V2X-TxPoolIdentity-r14.c \ - SL-TxPoolToReleaseList-r12.c \ - SL-TxPoolToReleaseListExt-r13.c \ - SL-V2X-ConfigDedicated-r14.c \ - SL-TxPoolToAddModListV2X-r14.c \ - SL-TxPoolToReleaseListV2X-r14.c \ - SL-ZoneConfig-r14.c \ - SBCCH-SL-BCH-Message.c \ - SBCCH-SL-BCH-MessageType.c \ - MasterInformationBlock-SL.c \ - BCCH-BCH-Message-NB.c \ - BCCH-BCH-MessageType-NB.c \ - BCCH-DL-SCH-Message-NB.c \ - BCCH-DL-SCH-MessageType-NB.c \ - PCCH-Message-NB.c \ - PCCH-MessageType-NB.c \ - DL-CCCH-Message-NB.c \ - DL-CCCH-MessageType-NB.c \ - DL-DCCH-Message-NB.c \ - DL-DCCH-MessageType-NB.c \ - UL-CCCH-Message-NB.c \ - UL-CCCH-MessageType-NB.c \ - SC-MCCH-Message-NB.c \ - SC-MCCH-MessageType-NB.c \ - UL-DCCH-Message-NB.c \ - UL-DCCH-MessageType-NB.c \ - DLInformationTransfer-NB.c \ - DLInformationTransfer-NB-r13-IEs.c \ - MasterInformationBlock-NB.c \ - ChannelRasterOffset-NB-r13.c \ - Guardband-NB-r13.c \ - Inband-SamePCI-NB-r13.c \ - Inband-DifferentPCI-NB-r13.c \ - Standalone-NB-r13.c \ - Paging-NB.c \ - PagingRecordList-NB-r13.c \ - PagingRecord-NB-r13.c \ - RRCConnectionReconfiguration-NB.c \ - RRCConnectionReconfiguration-NB-r13-IEs.c \ - RRCConnectionReconfigurationComplete-NB.c \ - RRCConnectionReconfigurationComplete-NB-r13-IEs.c \ - RRCConnectionReestablishment-NB.c \ - RRCConnectionReestablishment-NB-r13-IEs.c \ - RRCConnectionReestablishmentComplete-NB.c \ - RRCConnectionReestablishmentComplete-NB-r13-IEs.c \ - RRCConnectionReestablishmentRequest-NB.c \ - RRCConnectionReestablishmentRequest-NB-r13-IEs.c \ - ReestablishmentCause-NB-r13.c \ - RRCConnectionReject-NB.c \ - RRCConnectionReject-NB-r13-IEs.c \ - RRCConnectionRelease-NB.c \ - RRCConnectionRelease-NB-r13-IEs.c \ - RRCConnectionRelease-NB-v14xy-IEs.c \ - ReleaseCause-NB-r13.c \ - RedirectedCarrierInfo-NB-r13.c \ - RedirectedCarrierInfo-NB-v14xy.c \ - RRCConnectionRequest-NB.c \ - RRCConnectionRequest-NB-r13-IEs.c \ - RRCConnectionResume-NB.c \ - RRCConnectionResume-NB-r13-IEs.c \ - RRCConnectionResumeComplete-NB.c \ - RRCConnectionResumeComplete-NB-r13-IEs.c \ - RRCConnectionResumeRequest-NB.c \ - RRCConnectionResumeRequest-NB-r13-IEs.c \ - RRCConnectionSetup-NB.c \ - RRCConnectionSetup-NB-r13-IEs.c \ - RRCConnectionSetupComplete-NB.c \ - RRCConnectionSetupComplete-NB-r13-IEs.c \ - RRCConnectionSetupComplete-NB-v14xy-IEs.c \ - SCPTMConfiguration-NB-r14.c \ - SystemInformation-NB.c \ - SystemInformation-NB-r13-IEs.c \ - SystemInformationBlockType1-NB.c \ - SystemInformationBlockType1-NB-v1350.c \ - SystemInformationBlockType1-NB-v14xy.c \ - PLMN-IdentityList-NB-r13.c \ - PLMN-IdentityInfo-NB-r13.c \ - SchedulingInfoList-NB-r13.c \ - SchedulingInfoList-NB-v14xy.c \ - SchedulingInfo-NB-r13.c \ - SchedulingInfo-NB-v14xy.c \ - SystemInfoValueTagList-NB-r13.c \ - SIB-MappingInfo-NB-r13.c \ - SIB-Type-NB-r13.c \ - SIB-MappingInfo-NB-v14xy.c \ - SIB-Type-NB-v14xy.c \ - SIB-TypeExt-NB-r14.c \ - CellSelectionInfo-NB-v1350.c \ - CellSelectionInfo-NB-v14xy.c \ - UECapabilityEnquiry-NB.c \ - UECapabilityEnquiry-NB-r13-IEs.c \ - UECapabilityInformation-NB.c \ - UECapabilityInformation-NB-r13-IEs.c \ - ULInformationTransfer-NB.c \ - ULInformationTransfer-NB-r13-IEs.c \ - SystemInformationBlockType2-NB-r13.c \ - SystemInformationBlockType3-NB-r13.c \ - IntraFreqCellReselectionInfo-NB-v1350.c \ - IntraFreqCellReselectionInfo-NB-v14xy.c \ - SystemInformationBlockType4-NB-r13.c \ - SystemInformationBlockType5-NB-r13.c \ - InterFreqCarrierFreqList-NB-r13.c \ - InterFreqCarrierFreqInfo-NB-r13.c \ - InterFreqNeighCellList-NB-r13.c \ - InterFreqBlackCellList-NB-r13.c \ - SystemInformationBlockType14-NB-r13.c \ - AB-ConfigPLMN-NB-r13.c \ - AB-Config-NB-r13.c \ - SystemInformationBlockType15-NB-r14.c \ - MBMS-SAI-List-NB-r14.c \ - MBMS-SAI-InterFreqList-NB-r14.c \ - MBMS-SAI-InterFreq-NB-r14.c \ - SystemInformationBlockType16-NB-r13.c \ - SystemInformationBlockType20-NB-r14.c \ - NPDCCH-SC-MCCH-Config-NB-r14.c \ - SC-MCCH-SchedulingInfo-NB-r14.c \ - SystemInformationBlockType22-NB-r14.c \ - DL-CarrierConfigCommonList-NB-r14.c \ - UL-CarrierConfigCommonList-NB-r14.c \ - PCCH-MultiCarrierConfig-NB-r14.c \ - PCCH-ConfigList-NB-r14.c \ - PCCH-Config-NB-r14.c \ - PagingWeight-NB-r14.c \ - NPRACH-MultiCarrierConfig-NB-r14.c \ - NPRACH-ConfigList-NB-r14.c \ - NPRACH-ParametersList-NB-r14.c \ - NPRACH-Parameters-NB-r14.c \ - NPRACH-ProbabilityAnchorList-NB-r14.c \ - NPRACH-ProbabilityAnchor-NB-r14.c \ - CarrierConfigDedicated-NB-r13.c \ - DL-CarrierConfigDedicated-NB-r13.c \ - UL-CarrierConfigDedicated-NB-r13.c \ - CarrierFreq-NB-r13.c \ - DL-Bitmap-NB-r13.c \ - DL-CarrierConfigCommon-NB-r14.c \ - DL-GapConfig-NB-r13.c \ - LogicalChannelConfig-NB-r13.c \ - MAC-MainConfig-NB-r13.c \ - PeriodicBSR-Timer-NB-r13.c \ - RetxBSR-Timer-NB-r13.c \ - DRX-Config-NB-r13.c \ - NPDCCH-ConfigDedicated-NB-r13.c \ - NPDSCH-ConfigCommon-NB-r13.c \ - NPRACH-ConfigSIB-NB-r13.c \ - NPRACH-ConfigSIB-NB-v1330.c \ - NPRACH-ParametersList-NB-r13.c \ - NPRACH-ParametersList-NB-v1330.c \ - NPRACH-Parameters-NB-r13.c \ - NPRACH-Parameters-NB-v1330.c \ - RSRP-ThresholdsNPRACH-InfoList-NB-r13.c \ - NPUSCH-ConfigCommon-NB-r13.c \ - UL-ReferenceSignalsNPUSCH-NB-r13.c \ - NPUSCH-ConfigDedicated-NB-r13.c \ - ACK-NACK-NumRepetitions-NB-r13.c \ - PDCP-Config-NB-r13.c \ - PhysicalConfigDedicated-NB-r13.c \ - RACH-ConfigCommon-NB-r13.c \ - RACH-InfoList-NB-r13.c \ - RACH-Info-NB-r13.c \ - RadioResourceConfigCommonSIB-NB-r13.c \ - BCCH-Config-NB-r13.c \ - PCCH-Config-NB-r13.c \ - RadioResourceConfigDedicated-NB-r13.c \ - SRB-ToAddModList-NB-r13.c \ - SRB-ToAddMod-NB-r13.c \ - DRB-ToAddModList-NB-r13.c \ - DRB-ToAddMod-NB-r13.c \ - DRB-ToReleaseList-NB-r13.c \ - RLC-Config-NB-r13.c \ - RLC-Config-NB-v14xy.c \ - UL-AM-RLC-NB-r13.c \ - DL-AM-RLC-NB-r13.c \ - DL-UM-RLC-NB-r14.c \ - T-PollRetransmit-NB-r13.c \ - RLF-TimersAndConstants-NB-r13.c \ - UL-CarrierConfigCommon-NB-r14.c \ - UplinkPowerControlCommon-NB-r13.c \ - UplinkPowerControlDedicated-NB-r13.c \ - AdditionalBandInfoList-NB-r14.c \ - FreqBandIndicator-NB-r13.c \ - MultiBandInfoList-NB-r13.c \ - MultiBandInfo-NB-r13.c \ - NS-PmaxList-NB-r13.c \ - NS-PmaxValue-NB-r13.c \ - T-Reselection-NB-r13.c \ - EstablishmentCause-NB-r13.c \ - UE-Capability-NB-r13.c \ - UE-Capability-NB-v14xy-IEs.c \ - AccessStratumRelease-NB-r13.c \ - PDCP-Parameters-NB-r13.c \ - MAC-Parameters-NB-r14.c \ - PhyLayerParameters-NB-r13.c \ - PhyLayerParameters-NB-v14xy.c \ - RF-Parameters-NB-r13.c \ - RF-Parameters-NB-v14xy.c \ - SupportedBandList-NB-r13.c \ - SupportedBand-NB-r13.c \ - UE-RadioPagingInfo-NB-r13.c \ - UE-TimersAndConstants-NB-r13.c \ - SC-MTCH-InfoList-NB-r14.c \ - SC-MTCH-Info-NB-r14.c \ - SC-MTCH-SchedulingInfo-NB-r14.c \ - SCPTM-NeighbourCellList-NB-r14.c \ - PCI-ARFCN-NB-r14.c \ - VarConnEstFailReport-r11.c \ - VarLogMeasConfig-r10.c \ - VarLogMeasConfig-r11.c \ - VarLogMeasConfig-r12.c \ - VarLogMeasReport-r10.c \ - VarLogMeasReport-r11.c \ - LogMeasInfoList2-r10.c \ - VarMeasConfig.c \ - VarMeasReportList.c \ - VarMeasReportList-r12.c \ - VarMeasReport.c \ - CellsTriggeredList.c \ - CSI-RS-TriggeredList-r12.c \ - VarMobilityHistoryReport-r12.c \ - VarRLF-Report-r10.c \ - VarRLF-Report-r11.c \ - VarShortMAC-Input.c \ - VarShortResumeMAC-Input-r13.c \ - VarWLAN-MobilityConfig.c \ - VarWLAN-Status-r13.c \ - VarShortMAC-Input-NB-r13.c \ - VarShortResumeMAC-Input-NB-r13.c \ - SL-Preconfiguration-r12.c \ - SL-PreconfigGeneral-r12.c \ - SL-PreconfigSync-r12.c \ - SL-PreconfigV2X-Sync-r14.c \ - SL-V2X-SyncOffsetIndicators-r14.c \ - SL-PreconfigCommPoolList4-r12.c \ - SL-PreconfigCommRxPoolList-r13.c \ - SL-PreconfigCommTxPoolList-r13.c \ - SL-PreconfigCommPool-r12.c \ - SL-PreconfigDiscRxPoolList-r13.c \ - SL-PreconfigDiscTxPoolList-r13.c \ - SL-PreconfigDiscPool-r13.c \ - SL-PreconfigRelay-r13.c \ - SL-V2X-Preconfiguration-r14.c \ - SL-V2X-AnchorCarrierFreqList-r14.c \ - SL-V2X-PreconfigFreqList-r14.c \ - SL-V2X-PreconfigFreqInfo-r14.c \ - SL-PreconfigV2X-RxPoolList-r14.c \ - SL-PreconfigV2X-TxPoolList-r14.c \ - SL-V2X-PreconfigCommPool-r14.c \ - HandoverCommand.c \ - HandoverCommand-r8-IEs.c \ - HandoverPreparationInformation.c \ - HandoverPreparationInformation-r8-IEs.c \ - HandoverPreparationInformation-v920-IEs.c \ - HandoverPreparationInformation-v9d0-IEs.c \ - HandoverPreparationInformation-v9j0-IEs.c \ - HandoverPreparationInformation-v10j0-IEs.c \ - HandoverPreparationInformation-v9e0-IEs.c \ - HandoverPreparationInformation-v1130-IEs.c \ - HandoverPreparationInformation-v1250-IEs.c \ - HandoverPreparationInformation-v1320-IEs.c \ - HandoverPreparationInformation-v14x0-IEs.c \ - SCG-Config-r12.c \ - SCG-Config-r12-IEs.c \ - SCG-ConfigInfo-r12.c \ - SCG-ConfigInfo-r12-IEs.c \ - SCG-ConfigInfo-v1310-IEs.c \ - SCG-ConfigInfo-v1330-IEs.c \ - SCG-ConfigInfo-v14xy-IEs.c \ - DRB-InfoListSCG-r12.c \ - DRB-InfoSCG-r12.c \ - SCellToAddModListSCG-r12.c \ - SCellToAddModListSCG-Ext-r13.c \ - Cell-ToAddMod-r12.c \ - MeasResultServCellListSCG-r12.c \ - MeasResultServCellListSCG-Ext-r13.c \ - MeasResultServCellSCG-r12.c \ - MeasResultListRSSI-SCG-r13.c \ - MeasResultRSSI-SCG-r13.c \ - SCG-ConfigRestrictInfo-r12.c \ - UEPagingCoverageInformation.c \ - UEPagingCoverageInformation-r13-IEs.c \ - UERadioAccessCapabilityInformation.c \ - UERadioAccessCapabilityInformation-r8-IEs.c \ - UERadioPagingInformation.c \ - UERadioPagingInformation-r12-IEs.c \ - UERadioPagingInformation-v1310-IEs.c \ - AS-Config.c \ - AS-Config-v9e0.c \ - AS-Config-v10j0.c \ - AS-Config-v1250.c \ - AS-Config-v1320.c \ - AS-Config-v14x0.c \ - AS-Context.c \ - AS-Context-v1130.c \ - AS-Context-v1320.c \ - ReestablishmentInfo.c \ - AdditionalReestabInfoList.c \ - AdditionalReestabInfo.c \ - Key-eNodeB-Star.c \ - RRM-Config.c \ - CandidateCellInfoList-r10.c \ - CandidateCellInfo-r10.c \ - HandoverPreparationInformation-NB.c \ - HandoverPreparationInformation-NB-IEs.c \ - UEPagingCoverageInformation-NB.c \ - UEPagingCoverageInformation-NB-IEs.c \ - UERadioAccessCapabilityInformation-NB.c \ - UERadioAccessCapabilityInformation-NB-IEs.c \ - UERadioPagingInformation-NB.c \ - UERadioPagingInformation-NB-IEs.c \ - AS-Config-NB.c \ - AS-Context-NB.c \ - ReestablishmentInfo-NB.c \ - RRM-Config-NB.c +ASN_PROGRAM = rrc-dump +CFLAGS += -DHAVE_CONFIG_H -DJUNKTEST -D_DEFAULT_SOURCE +begin: DL-DCCH-Message.c maybe-wip-pause all -ASN_MODULE_HDRS= \ - BCCH-BCH-Message.h \ - BCCH-BCH-MessageType.h \ - BCCH-BCH-Message-MBMS.h \ - BCCH-BCH-MessageType-MBMS-r14.h \ - BCCH-DL-SCH-Message.h \ - BCCH-DL-SCH-MessageType.h \ - BCCH-DL-SCH-Message-BR.h \ - BCCH-DL-SCH-MessageType-BR-r13.h \ - BCCH-DL-SCH-Message-MBMS.h \ - BCCH-DL-SCH-MessageType-MBMS-r14.h \ - MCCH-Message.h \ - MCCH-MessageType.h \ - PCCH-Message.h \ - PCCH-MessageType.h \ - DL-CCCH-Message.h \ - DL-CCCH-MessageType.h \ - DL-DCCH-Message.h \ - DL-DCCH-MessageType.h \ - UL-CCCH-Message.h \ - UL-CCCH-MessageType.h \ - UL-DCCH-Message.h \ - UL-DCCH-MessageType.h \ - SC-MCCH-Message-r13.h \ - SC-MCCH-MessageType-r13.h \ - CounterCheck.h \ - CounterCheck-r8-IEs.h \ - CounterCheck-v8a0-IEs.h \ - DRB-CountMSB-InfoList.h \ - DRB-CountMSB-Info.h \ - CounterCheckResponse.h \ - CounterCheckResponse-r8-IEs.h \ - CounterCheckResponse-v8a0-IEs.h \ - DRB-CountInfoList.h \ - DRB-CountInfo.h \ - CSFBParametersRequestCDMA2000.h \ - CSFBParametersRequestCDMA2000-r8-IEs.h \ - CSFBParametersRequestCDMA2000-v8a0-IEs.h \ - CSFBParametersResponseCDMA2000.h \ - CSFBParametersResponseCDMA2000-r8-IEs.h \ - CSFBParametersResponseCDMA2000-v8a0-IEs.h \ - DelayBudgetReport-r14.h \ - DelayBudgetReport-r14-IEs.h \ - DLInformationTransfer.h \ - DLInformationTransfer-r8-IEs.h \ - DLInformationTransfer-v8a0-IEs.h \ - HandoverFromEUTRAPreparationRequest.h \ - HandoverFromEUTRAPreparationRequest-r8-IEs.h \ - HandoverFromEUTRAPreparationRequest-v890-IEs.h \ - HandoverFromEUTRAPreparationRequest-v920-IEs.h \ - HandoverFromEUTRAPreparationRequest-v1020-IEs.h \ - InDeviceCoexIndication-r11.h \ - InDeviceCoexIndication-r11-IEs.h \ - InDeviceCoexIndication-v11d0-IEs.h \ - InDeviceCoexIndication-v1310-IEs.h \ - AffectedCarrierFreqList-r11.h \ - AffectedCarrierFreqList-v1310.h \ - AffectedCarrierFreq-r11.h \ - AffectedCarrierFreq-v1310.h \ - AffectedCarrierFreqCombList-r11.h \ - AffectedCarrierFreqCombList-r13.h \ - AffectedCarrierFreqComb-r11.h \ - AffectedCarrierFreqComb-r13.h \ - TDM-AssistanceInfo-r11.h \ - IDC-SubframePatternList-r11.h \ - IDC-SubframePattern-r11.h \ - VictimSystemType-r11.h \ - InterFreqRSTDMeasurementIndication-r10.h \ - InterFreqRSTDMeasurementIndication-r10-IEs.h \ - RSTD-InterFreqInfoList-r10.h \ - RSTD-InterFreqInfo-r10.h \ - LoggedMeasurementConfiguration-r10.h \ - LoggedMeasurementConfiguration-r10-IEs.h \ - LoggedMeasurementConfiguration-v1080-IEs.h \ - LoggedMeasurementConfiguration-v1130-IEs.h \ - LoggedMeasurementConfiguration-v1250-IEs.h \ - TargetMBSFN-AreaList-r12.h \ - TargetMBSFN-Area-r12.h \ - MasterInformationBlock.h \ - MasterInformationBlock-MBMS-r14.h \ - MBMSCountingRequest-r10.h \ - CountingRequestList-r10.h \ - CountingRequestInfo-r10.h \ - MBMSCountingResponse-r10.h \ - MBMSCountingResponse-r10-IEs.h \ - CountingResponseList-r10.h \ - CountingResponseInfo-r10.h \ - MBMSInterestIndication-r11.h \ - MBMSInterestIndication-r11-IEs.h \ - MBMSInterestIndication-v1310-IEs.h \ - MBSFNAreaConfiguration-r9.h \ - MBSFNAreaConfiguration-v930-IEs.h \ - MBSFNAreaConfiguration-v1250-IEs.h \ - CommonSF-AllocPatternList-r9.h \ - MeasurementReport.h \ - MeasurementReport-r8-IEs.h \ - MeasurementReport-v8a0-IEs.h \ - MobilityFromEUTRACommand.h \ - MobilityFromEUTRACommand-r8-IEs.h \ - MobilityFromEUTRACommand-v8a0-IEs.h \ - MobilityFromEUTRACommand-v8d0-IEs.h \ - MobilityFromEUTRACommand-r9-IEs.h \ - MobilityFromEUTRACommand-v930-IEs.h \ - MobilityFromEUTRACommand-v960-IEs.h \ - Handover.h \ - CellChangeOrder.h \ - SI-OrPSI-GERAN.h \ - E-CSFB-r9.h \ - Paging.h \ - Paging-v890-IEs.h \ - Paging-v920-IEs.h \ - Paging-v1130-IEs.h \ - Paging-v1310-IEs.h \ - PagingRecordList.h \ - PagingRecord.h \ - PagingUE-Identity.h \ - IMSI.h \ - IMSI-Digit.h \ - ProximityIndication-r9.h \ - ProximityIndication-r9-IEs.h \ - ProximityIndication-v930-IEs.h \ - RNReconfiguration-r10.h \ - RNReconfiguration-r10-IEs.h \ - RN-SystemInfo-r10.h \ - RNReconfigurationComplete-r10.h \ - RNReconfigurationComplete-r10-IEs.h \ - RRCConnectionReconfiguration.h \ - RRCConnectionReconfiguration-r8-IEs.h \ - RRCConnectionReconfiguration-v890-IEs.h \ - RRCConnectionReconfiguration-v8m0-IEs.h \ - RRCConnectionReconfiguration-v10i0-IEs.h \ - RRCConnectionReconfiguration-v920-IEs.h \ - RRCConnectionReconfiguration-v1020-IEs.h \ - RRCConnectionReconfiguration-v1130-IEs.h \ - RRCConnectionReconfiguration-v1250-IEs.h \ - RRCConnectionReconfiguration-v1310-IEs.h \ - RRCConnectionReconfiguration-v14x0-IEs.h \ - SL-SyncTxControl-r12.h \ - PSCellToAddMod-r12.h \ - PowerCoordinationInfo-r12.h \ - SCellToAddModList-r10.h \ - SCellToAddModListExt-r13.h \ - SCellToAddModListExt-v14xy.h \ - SCellToAddMod-r10.h \ - SCellToAddModExt-r13.h \ - SCellToAddModExt-v14xy.h \ - SCellToReleaseList-r10.h \ - SCellToReleaseListExt-r13.h \ - SCG-Configuration-r12.h \ - SCG-ConfigPartSCG-r12.h \ - SecurityConfigHO.h \ - RRCConnectionReconfigurationComplete.h \ - RRCConnectionReconfigurationComplete-r8-IEs.h \ - RRCConnectionReconfigurationComplete-v8a0-IEs.h \ - RRCConnectionReconfigurationComplete-v1020-IEs.h \ - RRCConnectionReconfigurationComplete-v1130-IEs.h \ - RRCConnectionReconfigurationComplete-v1250-IEs.h \ - RRCConnectionReconfigurationComplete-v14xy-IEs.h \ - RRCConnectionReestablishment.h \ - RRCConnectionReestablishment-r8-IEs.h \ - RRCConnectionReestablishment-v8a0-IEs.h \ - RRCConnectionReestablishmentComplete.h \ - RRCConnectionReestablishmentComplete-r8-IEs.h \ - RRCConnectionReestablishmentComplete-v920-IEs.h \ - RRCConnectionReestablishmentComplete-v8a0-IEs.h \ - RRCConnectionReestablishmentComplete-v1020-IEs.h \ - RRCConnectionReestablishmentComplete-v1130-IEs.h \ - RRCConnectionReestablishmentComplete-v1250-IEs.h \ - RRCConnectionReestablishmentReject.h \ - RRCConnectionReestablishmentReject-r8-IEs.h \ - RRCConnectionReestablishmentReject-v8a0-IEs.h \ - RRCConnectionReestablishmentRequest.h \ - RRCConnectionReestablishmentRequest-r8-IEs.h \ - ReestabUE-Identity.h \ - ReestablishmentCause.h \ - RRCConnectionReject.h \ - RRCConnectionReject-r8-IEs.h \ - RRCConnectionReject-v8a0-IEs.h \ - RRCConnectionReject-v1020-IEs.h \ - RRCConnectionReject-v1130-IEs.h \ - RRCConnectionReject-v1320-IEs.h \ - RRCConnectionRelease.h \ - RRCConnectionRelease-r8-IEs.h \ - RRCConnectionRelease-v890-IEs.h \ - RRCConnectionRelease-v9e0-IEs.h \ - RRCConnectionRelease-v920-IEs.h \ - RRCConnectionRelease-v1020-IEs.h \ - RRCConnectionRelease-v1320-IEs.h \ - ReleaseCause.h \ - RedirectedCarrierInfo.h \ - RedirectedCarrierInfo-v9e0.h \ - CarrierFreqListUTRA-TDD-r10.h \ - IdleModeMobilityControlInfo.h \ - IdleModeMobilityControlInfo-v9e0.h \ - FreqPriorityListEUTRA.h \ - FreqPriorityListExtEUTRA-r12.h \ - FreqPriorityListEUTRA-v1310.h \ - FreqPriorityListExtEUTRA-v1310.h \ - FreqPriorityEUTRA.h \ - FreqPriorityEUTRA-v9e0.h \ - FreqPriorityEUTRA-r12.h \ - FreqPriorityEUTRA-v1310.h \ - FreqsPriorityListGERAN.h \ - FreqsPriorityGERAN.h \ - FreqPriorityListUTRA-FDD.h \ - FreqPriorityUTRA-FDD.h \ - FreqPriorityListUTRA-TDD.h \ - FreqPriorityUTRA-TDD.h \ - BandClassPriorityListHRPD.h \ - BandClassPriorityHRPD.h \ - BandClassPriorityList1XRTT.h \ - BandClassPriority1XRTT.h \ - CellInfoListGERAN-r9.h \ - CellInfoGERAN-r9.h \ - CellInfoListUTRA-FDD-r9.h \ - CellInfoUTRA-FDD-r9.h \ - CellInfoListUTRA-TDD-r9.h \ - CellInfoUTRA-TDD-r9.h \ - CellInfoListUTRA-TDD-r10.h \ - CellInfoUTRA-TDD-r10.h \ - RRCConnectionRequest.h \ - RRCConnectionRequest-r8-IEs.h \ - InitialUE-Identity.h \ - EstablishmentCause.h \ - RRCConnectionResume-r13.h \ - RRCConnectionResume-r13-IEs.h \ - RRCConnectionResumeComplete-r13.h \ - RRCConnectionResumeComplete-r13-IEs.h \ - RRCConnectionResumeRequest-r13.h \ - RRCConnectionResumeRequest-r13-IEs.h \ - ResumeCause.h \ - RRCConnectionSetup.h \ - RRCConnectionSetup-r8-IEs.h \ - RRCConnectionSetup-v8a0-IEs.h \ - RRCConnectionSetupComplete.h \ - RRCConnectionSetupComplete-r8-IEs.h \ - RRCConnectionSetupComplete-v8a0-IEs.h \ - RRCConnectionSetupComplete-v1020-IEs.h \ - RRCConnectionSetupComplete-v1130-IEs.h \ - RRCConnectionSetupComplete-v1250-IEs.h \ - RRCConnectionSetupComplete-v1320-IEs.h \ - RRCConnectionSetupComplete-v1330-IEs.h \ - RRCConnectionSetupComplete-v14xy-IEs.h \ - RegisteredMME.h \ - SCGFailureInformation-r12.h \ - SCGFailureInformation-r12-IEs.h \ - SCGFailureInformation-v1310-IEs.h \ - SCGFailureInformation-v12d0-IEs.h \ - FailureReportSCG-r12.h \ - FailureReportSCG-v12d0.h \ - SCPTMConfiguration-r13.h \ - SCPTMConfiguration-v1340.h \ - SCPTMConfiguration-BR-r14.h \ - SecurityModeCommand.h \ - SecurityModeCommand-r8-IEs.h \ - SecurityModeCommand-v8a0-IEs.h \ - SecurityConfigSMC.h \ - SecurityModeComplete.h \ - SecurityModeComplete-r8-IEs.h \ - SecurityModeComplete-v8a0-IEs.h \ - SecurityModeFailure.h \ - SecurityModeFailure-r8-IEs.h \ - SecurityModeFailure-v8a0-IEs.h \ - SidelinkUEInformation-r12.h \ - SidelinkUEInformation-r12-IEs.h \ - SidelinkUEInformation-v1310-IEs.h \ - SidelinkUEInformation-v14x0-IEs.h \ - SL-CommTxResourceReq-r12.h \ - V2X-CommTxResourceReq-r14.h \ - SL-DiscTxResourceReqPerFreqList-r13.h \ - SL-DiscTxResourceReq-r13.h \ - SL-DestinationInfoList-r12.h \ - SL-DestinationIdentity-r12.h \ - SL-DiscSysInfoReportFreqList-r13.h \ - SL-V2X-CommFreqList-r14.h \ - SL-TypeTxSyncList-r14.h \ - SystemInformation-BR-r13.h \ - SystemInformation-MBMS-r14.h \ - SystemInformation.h \ - SystemInformation-r8-IEs.h \ - SystemInformation-v8a0-IEs.h \ - SystemInformationBlockType1-BR-r13.h \ - SystemInformationBlockType1.h \ - SystemInformationBlockType1-v890-IEs.h \ - SystemInformationBlockType1-v8h0-IEs.h \ - SystemInformationBlockType1-v9e0-IEs.h \ - SystemInformationBlockType1-v10j0-IEs.h \ - SystemInformationBlockType1-v920-IEs.h \ - SystemInformationBlockType1-v1130-IEs.h \ - SystemInformationBlockType1-v1250-IEs.h \ - SystemInformationBlockType1-v1310-IEs.h \ - SystemInformationBlockType1-v1320-IEs.h \ - SystemInformationBlockType1-v1350-IEs.h \ - SystemInformationBlockType1-v14xy-IEs.h \ - PLMN-IdentityList.h \ - PLMN-IdentityInfo.h \ - SchedulingInfoList.h \ - SchedulingInfo.h \ - SchedulingInfoList-BR-r13.h \ - SchedulingInfo-BR-r13.h \ - SIB-MappingInfo.h \ - SIB-Type.h \ - SystemInfoValueTagList-r13.h \ - SystemInfoValueTagSI-r13.h \ - CellSelectionInfo-v920.h \ - CellSelectionInfo-v1130.h \ - CellSelectionInfo-v1250.h \ - SystemInformationBlockType1-MBMS-r14.h \ - PLMN-IdentityList-MBMS-r14.h \ - PLMN-IdentityInfo-MBMS-r14.h \ - SchedulingInfoList-MBMS-r14.h \ - SchedulingInfo-MBMS-r14.h \ - SIB-MappingInfo-MBMS-r14.h \ - SIB-Type-MBMS-r14.h \ - NonMBSFN-SubframeConfig-r14.h \ - UEAssistanceInformation-r11.h \ - UEAssistanceInformation-r11-IEs.h \ - UEAssistanceInformation-v14xy-IEs.h \ - BW-Preference-r14.h \ - SPS-AssistanceInformation-r14.h \ - TrafficPatternInfoListSL-r14.h \ - TrafficPatternInfoListUL-r14.h \ - TrafficPatternInfo-r14.h \ - UECapabilityEnquiry.h \ - UECapabilityEnquiry-r8-IEs.h \ - UECapabilityEnquiry-v8a0-IEs.h \ - UECapabilityEnquiry-v1180-IEs.h \ - UECapabilityEnquiry-v1310-IEs.h \ - UECapabilityEnquiry-v14xy-IEs.h \ - UE-CapabilityRequest.h \ - UECapabilityInformation.h \ - UECapabilityInformation-r8-IEs.h \ - UECapabilityInformation-v8a0-IEs.h \ - UECapabilityInformation-v1250-IEs.h \ - UEInformationRequest-r9.h \ - UEInformationRequest-r9-IEs.h \ - UEInformationRequest-v930-IEs.h \ - UEInformationRequest-v1020-IEs.h \ - UEInformationRequest-v1130-IEs.h \ - UEInformationRequest-v1250-IEs.h \ - UEInformationResponse-r9.h \ - UEInformationResponse-r9-IEs.h \ - UEInformationResponse-v9e0-IEs.h \ - UEInformationResponse-v930-IEs.h \ - UEInformationResponse-v1020-IEs.h \ - UEInformationResponse-v1130-IEs.h \ - UEInformationResponse-v1250-IEs.h \ - RLF-Report-r9.h \ - RLF-Report-v9e0.h \ - MeasResultList2EUTRA-r9.h \ - MeasResultList2EUTRA-v9e0.h \ - MeasResultList2EUTRA-v1250.h \ - MeasResult2EUTRA-r9.h \ - MeasResult2EUTRA-v9e0.h \ - MeasResult2EUTRA-v1250.h \ - MeasResultList2UTRA-r9.h \ - MeasResult2UTRA-r9.h \ - MeasResultList2CDMA2000-r9.h \ - MeasResult2CDMA2000-r9.h \ - LogMeasReport-r10.h \ - LogMeasInfoList-r10.h \ - LogMeasInfo-r10.h \ - MeasResultListMBSFN-r12.h \ - MeasResultMBSFN-r12.h \ - DataBLER-MCH-ResultList-r12.h \ - DataBLER-MCH-Result-r12.h \ - BLER-Result-r12.h \ - BLER-Range-r12.h \ - MeasResultList2GERAN-r10.h \ - ConnEstFailReport-r11.h \ - NumberOfPreamblesSent-r11.h \ - TimeSinceFailure-r11.h \ - MobilityHistoryReport-r12.h \ - ULHandoverPreparationTransfer.h \ - ULHandoverPreparationTransfer-r8-IEs.h \ - ULHandoverPreparationTransfer-v8a0-IEs.h \ - ULInformationTransfer.h \ - ULInformationTransfer-r8-IEs.h \ - ULInformationTransfer-v8a0-IEs.h \ - WLANConnectionStatusReport-r13.h \ - WLANConnectionStatusReport-r13-IEs.h \ - WLANConnectionStatusReport-v14x0-IEs.h \ - SystemInformationBlockType2.h \ - SystemInformationBlockType2-v8h0-IEs.h \ - SystemInformationBlockType2-v9e0-IEs.h \ - AC-BarringConfig.h \ - MBSFN-SubframeConfigList.h \ - MBSFN-SubframeConfigList-v14xy.h \ - AC-BarringPerPLMN-List-r12.h \ - AC-BarringPerPLMN-r12.h \ - ACDC-BarringForCommon-r13.h \ - ACDC-BarringPerPLMN-List-r13.h \ - ACDC-BarringPerPLMN-r13.h \ - BarringPerACDC-CategoryList-r13.h \ - BarringPerACDC-Category-r13.h \ - UDT-Restricting-r13.h \ - UDT-RestrictingPerPLMN-List-r13.h \ - UDT-RestrictingPerPLMN-r13.h \ - CIOT-EPS-OptimisationInfo-r13.h \ - CIOT-OptimisationPLMN-r13.h \ - SystemInformationBlockType3.h \ - RedistributionServingInfo-r13.h \ - CellReselectionServingFreqInfo-v1310.h \ - SystemInformationBlockType3-v10j0-IEs.h \ - SystemInformationBlockType4.h \ - IntraFreqNeighCellList.h \ - IntraFreqNeighCellInfo.h \ - IntraFreqBlackCellList.h \ - SystemInformationBlockType5.h \ - SystemInformationBlockType5-v8h0-IEs.h \ - SystemInformationBlockType5-v9e0-IEs.h \ - SystemInformationBlockType5-v10j0-IEs.h \ - InterFreqCarrierFreqList.h \ - InterFreqCarrierFreqList-v1250.h \ - InterFreqCarrierFreqList-v1310.h \ - InterFreqCarrierFreqList-v1350.h \ - InterFreqCarrierFreqListExt-r12.h \ - InterFreqCarrierFreqListExt-v1280.h \ - InterFreqCarrierFreqListExt-v1310.h \ - InterFreqCarrierFreqListExt-v1350.h \ - InterFreqCarrierFreqInfo.h \ - InterFreqCarrierFreqInfo-v8h0.h \ - InterFreqCarrierFreqInfo-v9e0.h \ - InterFreqCarrierFreqInfo-v10j0.h \ - InterFreqCarrierFreqInfo-v1250.h \ - InterFreqCarrierFreqInfo-r12.h \ - InterFreqCarrierFreqInfo-v1310.h \ - InterFreqCarrierFreqInfo-v1350.h \ - InterFreqNeighCellList.h \ - InterFreqNeighCellInfo.h \ - InterFreqBlackCellList.h \ - RedistributionInterFreqInfo-r13.h \ - RedistributionNeighCellList-r13.h \ - RedistributionNeighCell-r13.h \ - RedistributionFactor-r13.h \ - SystemInformationBlockType6.h \ - SystemInformationBlockType6-v8h0-IEs.h \ - CarrierFreqInfoUTRA-v1250.h \ - CarrierFreqListUTRA-FDD.h \ - CarrierFreqUTRA-FDD.h \ - CarrierFreqInfoUTRA-FDD-v8h0.h \ - CarrierFreqListUTRA-FDD-Ext-r12.h \ - CarrierFreqUTRA-FDD-Ext-r12.h \ - CarrierFreqListUTRA-TDD.h \ - CarrierFreqUTRA-TDD.h \ - CarrierFreqListUTRA-TDD-Ext-r12.h \ - CarrierFreqUTRA-TDD-r12.h \ - FreqBandIndicator-UTRA-FDD.h \ - SystemInformationBlockType7.h \ - CarrierFreqsInfoListGERAN.h \ - CarrierFreqsInfoGERAN.h \ - SystemInformationBlockType8.h \ - CellReselectionParametersCDMA2000.h \ - CellReselectionParametersCDMA2000-r11.h \ - CellReselectionParametersCDMA2000-v920.h \ - NeighCellListCDMA2000.h \ - NeighCellCDMA2000.h \ - NeighCellCDMA2000-r11.h \ - NeighCellsPerBandclassListCDMA2000.h \ - NeighCellsPerBandclassCDMA2000.h \ - NeighCellsPerBandclassCDMA2000-r11.h \ - NeighCellListCDMA2000-v920.h \ - NeighCellCDMA2000-v920.h \ - NeighCellsPerBandclassListCDMA2000-v920.h \ - NeighCellsPerBandclassCDMA2000-v920.h \ - PhysCellIdListCDMA2000.h \ - PhysCellIdListCDMA2000-v920.h \ - BandClassListCDMA2000.h \ - BandClassInfoCDMA2000.h \ - AC-BarringConfig1XRTT-r9.h \ - SIB8-PerPLMN-List-r11.h \ - SIB8-PerPLMN-r11.h \ - ParametersCDMA2000-r11.h \ - SystemInformationBlockType9.h \ - SystemInformationBlockType10.h \ - SystemInformationBlockType11.h \ - SystemInformationBlockType12-r9.h \ - SystemInformationBlockType13-r9.h \ - SystemInformationBlockType14-r11.h \ - EAB-ConfigPLMN-r11.h \ - EAB-Config-r11.h \ - SystemInformationBlockType15-r11.h \ - MBMS-SAI-List-r11.h \ - MBMS-SAI-r11.h \ - MBMS-SAI-InterFreqList-r11.h \ - MBMS-SAI-InterFreqList-v1140.h \ - MBMS-SAI-InterFreq-r11.h \ - MBMS-SAI-InterFreq-v1140.h \ - MBMS-InterFreqCarrierTypeList-r14.h \ - MBMS-CarrierType-r14.h \ - FEMBMS-CarrierFreq-r14.h \ - SystemInformationBlockType16-r11.h \ - SystemInformationBlockType17-r12.h \ - WLAN-OffloadInfoPerPLMN-r12.h \ - WLAN-Id-List-r12.h \ - WLAN-Identifiers-r12.h \ - SystemInformationBlockType18-r12.h \ - SystemInformationBlockType19-r12.h \ - SL-CarrierFreqInfoList-r12.h \ - SL-CarrierFreqInfoList-v1310.h \ - SL-CarrierFreqInfo-r12.h \ - SL-DiscConfigRelayUE-r13.h \ - SL-DiscConfigRemoteUE-r13.h \ - ReselectionInfoRelay-r13.h \ - SL-CarrierFreqInfo-v1310.h \ - PLMN-IdentityList4-r12.h \ - PLMN-IdentityInfo2-r12.h \ - SL-DiscTxResourcesInterFreq-r13.h \ - SL-DiscConfigOtherInterFreq-r13.h \ - SL-ResourcesInterFreq-r13.h \ - SystemInformationBlockType20-r13.h \ - MPDCCH-SC-MCCH-Config-r14.h \ - SC-MCCH-SchedulingInfo-r14.h \ - SystemInformationBlockType21-r14.h \ - SL-V2X-ConfigCommon-r14.h \ - AntennaInfoCommon.h \ - AntennaInfoDedicated.h \ - AntennaInfoDedicated-v920.h \ - AntennaInfoDedicated-r10.h \ - AntennaInfoDedicated-v10i0.h \ - AntennaInfoDedicated-v1250.h \ - AntennaInfoDedicated-v14xy.h \ - AntennaInfoUL-r10.h \ - CQI-ReportConfig.h \ - CQI-ReportConfig-v920.h \ - CQI-ReportConfig-r10.h \ - CQI-ReportConfig-v1130.h \ - CQI-ReportConfig-v1250.h \ - CQI-ReportConfig-v1310.h \ - CQI-ReportConfig-v1320.h \ - CQI-ReportConfigSCell-r10.h \ - CQI-ReportPeriodic.h \ - CQI-ReportPeriodic-r10.h \ - CQI-ReportPeriodic-v1130.h \ - CQI-ReportPeriodic-v1310.h \ - CQI-ReportPeriodic-v1320.h \ - CQI-ReportPeriodicProcExtToAddModList-r11.h \ - CQI-ReportPeriodicProcExtToReleaseList-r11.h \ - CQI-ReportPeriodicProcExt-r11.h \ - CQI-ReportAperiodic-r10.h \ - CQI-ReportAperiodic-v1250.h \ - CQI-ReportAperiodic-v1310.h \ - CQI-ReportAperiodicProc-r11.h \ - CQI-ReportAperiodicProc-v1310.h \ - CQI-ReportModeAperiodic.h \ - CQI-ReportBoth-r11.h \ - CQI-ReportBoth-v1250.h \ - CQI-ReportBoth-v1310.h \ - CSI-IM-ConfigToAddModList-r11.h \ - CSI-IM-ConfigToAddModListExt-r13.h \ - CSI-IM-ConfigToReleaseList-r11.h \ - CSI-IM-ConfigToReleaseListExt-r13.h \ - CSI-ProcessToAddModList-r11.h \ - CSI-ProcessToReleaseList-r11.h \ - CQI-ReportBothProc-r11.h \ - CRI-ReportConfig-r13.h \ - CRI-ConfigIndex-r13.h \ - CQI-ReportPeriodicProcExtId-r11.h \ - CrossCarrierSchedulingConfig-r10.h \ - CrossCarrierSchedulingConfig-r13.h \ - CrossCarrierSchedulingConfigLAA-UL-r14.h \ - CSI-IM-Config-r11.h \ - CSI-IM-ConfigExt-r12.h \ - CSI-IM-ConfigId-r11.h \ - CSI-IM-ConfigId-r12.h \ - CSI-IM-ConfigId-v1250.h \ - CSI-IM-ConfigId-v1310.h \ - CSI-IM-ConfigId-r13.h \ - CSI-Process-r11.h \ - CSI-ProcessId-r11.h \ - CSI-RS-Config-r10.h \ - CSI-RS-Config-v1250.h \ - CSI-RS-Config-v1310.h \ - CSI-RS-Config-v14xy.h \ - ZeroTxPowerCSI-RS-Conf-r12.h \ - ZeroTxPowerCSI-RS-r12.h \ - CSI-RS-ConfigEMIMO-r13.h \ - CSI-RS-ConfigEMIMO-v14xy.h \ - CSI-RS-ConfigEMIMO2-r14.h \ - CSI-RS-ConfigEMIMO-Hybrid-r14.h \ - CSI-RS-ConfigNonPrecoded-r13.h \ - CSI-RS-ConfigNonPrecoded-v14xy.h \ - CSI-RS-ConfigBeamformed-r13.h \ - CSI-RS-ConfigBeamformed-r14.h \ - CSI-RS-ConfigBeamformed-v14xy.h \ - CSI-RS-ConfigNZP-r11.h \ - CSI-RS-ConfigNZP-EMIMO-r13.h \ - CSI-RS-ConfigNZP-EMIMO-v14xy.h \ - NZP-ResourceConfig-r13.h \ - ResourceConfig-r13.h \ - NZP-TransmissionComb-r14.h \ - NZP-FrequencyDensity-r14.h \ - CSI-RS-ConfigNZPId-r11.h \ - CSI-RS-ConfigNZPId-v1310.h \ - CSI-RS-ConfigNZPId-r13.h \ - CSI-RS-ConfigZP-r11.h \ - CSI-RS-ConfigZP-Ap-r14.h \ - CSI-RS-ConfigZPId-r11.h \ - DataInactivityTimer-r14.h \ - DMRS-Config-r11.h \ - DMRS-Config-v1310.h \ - DRB-Identity.h \ - EPDCCH-Config-r11.h \ - EPDCCH-SetConfigToAddModList-r11.h \ - EPDCCH-SetConfigToReleaseList-r11.h \ - EPDCCH-SetConfig-r11.h \ - EPDCCH-SetConfigId-r11.h \ - EIMTA-MainConfig-r12.h \ - EIMTA-MainConfigServCell-r12.h \ - LogicalChannelConfig.h \ - LWA-Configuration-r13.h \ - LWA-Config-r13.h \ - LWIP-Configuration-r13.h \ - LWIP-Config-r13.h \ - MAC-MainConfig.h \ - MAC-MainConfigSCell-r11.h \ - DRX-Config.h \ - DRX-Config-v1130.h \ - DRX-Config-v1310.h \ - DRX-Config-r13.h \ - PeriodicBSR-Timer-r12.h \ - RetxBSR-Timer-r12.h \ - STAG-ToReleaseList-r11.h \ - STAG-ToAddModList-r11.h \ - STAG-ToAddMod-r11.h \ - STAG-Id-r11.h \ - P-C-AndCBSR-r11.h \ - P-C-AndCBSR-r13.h \ - P-C-AndCBSR-Pair-r13a.h \ - P-C-AndCBSR-Pair-r13.h \ - PDCCH-ConfigSCell-r13.h \ - PDCCH-ConfigLAA-r14.h \ - PDCCH-CandidateReductionValue-r13.h \ - PDCCH-CandidateReductionValue-r14.h \ - PDCCH-CandidateReductions-r13.h \ - PDCCH-CandidateReductionsLAA-UL-r14.h \ - PDCP-Config.h \ - PDSCH-ConfigCommon.h \ - PDSCH-ConfigCommon-v1310.h \ - PDSCH-ConfigDedicated.h \ - PDSCH-ConfigDedicated-v1130.h \ - PDSCH-ConfigDedicated-v1280.h \ - PDSCH-ConfigDedicated-v1310.h \ - PDSCH-ConfigDedicated-v14xy.h \ - RE-MappingQCLConfigToAddModList-r11.h \ - RE-MappingQCLConfigToReleaseList-r11.h \ - PDSCH-RE-MappingQCL-Config-r11.h \ - PDSCH-RE-MappingQCL-ConfigId-r11.h \ - PerCC-ListGapIndication-r14.h \ - PerCC-GapIndication-r14.h \ - PHICH-Config.h \ - PhysicalConfigDedicated.h \ - PhysicalConfigDedicatedSCell-r10.h \ - LAA-SCellConfiguration-r13.h \ - LAA-SCellConfiguration-v14xy.h \ - LBT-Config-r14.h \ - CSI-RS-ConfigNZPToAddModList-r11.h \ - CSI-RS-ConfigNZPToAddModListExt-r13.h \ - CSI-RS-ConfigNZPToReleaseList-r11.h \ - CSI-RS-ConfigNZPToReleaseListExt-r13.h \ - CSI-RS-ConfigZPToAddModList-r11.h \ - CSI-RS-ConfigZPToReleaseList-r11.h \ - SoundingRS-AperiodicSet-r14.h \ - SoundingRS-AperiodicSetUpPTsExt-r14.h \ - P-Max.h \ - PRACH-ConfigSIB.h \ - PRACH-ConfigSIB-v1310.h \ - PRACH-Config.h \ - PRACH-Config-v1310.h \ - PRACH-Config-v14xy.h \ - PRACH-ConfigSCell-r10.h \ - PRACH-ConfigInfo.h \ - PRACH-ParametersListCE-r13.h \ - PRACH-ParametersCE-r13.h \ - RSRP-ThresholdsPrachInfoList-r13.h \ - PresenceAntennaPort1.h \ - PUCCH-ConfigCommon.h \ - PUCCH-ConfigCommon-v1310.h \ - PUCCH-ConfigCommon-v14xy.h \ - PUCCH-ConfigDedicated.h \ - PUCCH-ConfigDedicated-v1020.h \ - PUCCH-ConfigDedicated-v1130.h \ - PUCCH-ConfigDedicated-v1250.h \ - PUCCH-ConfigDedicated-r13.h \ - PUCCH-ConfigDedicated-v14xy.h \ - Format4-resource-r13.h \ - Format5-resource-r13.h \ - N1PUCCH-AN-CS-r10.h \ - N1PUCCH-AN-InfoList-r13.h \ - PUSCH-ConfigCommon.h \ - PUSCH-ConfigCommon-v1270.h \ - PUSCH-ConfigCommon-v1310.h \ - PUSCH-ConfigDedicated.h \ - PUSCH-ConfigDedicated-v1020.h \ - PUSCH-ConfigDedicated-v1130.h \ - PUSCH-ConfigDedicated-v1250.h \ - PUSCH-ConfigDedicated-r13.h \ - PUSCH-ConfigDedicated-v14xy.h \ - PUSCH-ConfigDedicatedSCell-r10.h \ - TDD-PUSCH-UpPTS-r14.h \ - PUSCH-ConfigDedicatedScell-v14xy.h \ - Enable256QAM-r14.h \ - PUSCH-EnhancementsConf-r14.h \ - UL-ReferenceSignalsPUSCH.h \ - RACH-ConfigCommon.h \ - RACH-ConfigCommon-v1250.h \ - RACH-ConfigCommonSCell-r11.h \ - RACH-CE-LevelInfoList-r13.h \ - RACH-CE-LevelInfo-r13.h \ - PowerRampingParameters.h \ - PreambleTransMax.h \ - RACH-ConfigDedicated.h \ - RadioResourceConfigCommonSIB.h \ - RadioResourceConfigCommon.h \ - RadioResourceConfigCommonPSCell-r12.h \ - RadioResourceConfigCommonSCell-r10.h \ - BCCH-Config.h \ - BCCH-Config-v1310.h \ - FreqHoppingParameters-r13.h \ - PCCH-Config.h \ - PCCH-Config-v1310.h \ - UL-CyclicPrefixLength.h \ - HighSpeedConfig-r14.h \ - HighSpeedConfigSCell-r14.h \ - RadioResourceConfigDedicated.h \ - RadioResourceConfigDedicatedPSCell-r12.h \ - RadioResourceConfigDedicatedSCG-r12.h \ - RadioResourceConfigDedicatedSCell-r10.h \ - SRB-ToAddModList.h \ - SRB-ToAddMod.h \ - DRB-ToAddModList.h \ - DRB-ToAddModListSCG-r12.h \ - DRB-ToAddMod.h \ - DRB-ToAddModSCG-r12.h \ - DRB-ToReleaseList.h \ - MeasSubframePatternPCell-r10.h \ - NeighCellsCRS-Info-r11.h \ - CRS-AssistanceInfoList-r11.h \ - CRS-AssistanceInfo-r11.h \ - NeighCellsCRS-Info-r13.h \ - CRS-AssistanceInfoList-r13.h \ - CRS-AssistanceInfo-r13.h \ - NAICS-AssistanceInfo-r12.h \ - NeighCellsToReleaseList-r12.h \ - NeighCellsToAddModList-r12.h \ - NeighCellsInfo-r12.h \ - P-a.h \ - RCLWI-Configuration-r13.h \ - RCLWI-Config-r13.h \ - RLC-Config.h \ - RLC-Config-v1250.h \ - RLC-Config-v1310.h \ - RLC-Config-v14xy.h \ - UL-AM-RLC.h \ - DL-AM-RLC.h \ - UL-UM-RLC.h \ - DL-UM-RLC.h \ - SN-FieldLength.h \ - T-PollRetransmit.h \ - PollPDU.h \ - PollPDU-v1310.h \ - PollByte.h \ - PollByte-r14.h \ - T-Reordering.h \ - T-StatusProhibit.h \ - RLF-TimersAndConstants-r9.h \ - RLF-TimersAndConstants-r13.h \ - RLF-TimersAndConstantsSCG-r12.h \ - RN-SubframeConfig-r10.h \ - SchedulingRequestConfig.h \ - SchedulingRequestConfig-v1020.h \ - SchedulingRequestConfigSCell-r13.h \ - SoundingRS-UL-ConfigCommon.h \ - SoundingRS-UL-ConfigDedicated.h \ - SoundingRS-UL-ConfigDedicated-v1020.h \ - SoundingRS-UL-ConfigDedicated-v1310.h \ - SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.h \ - SoundingRS-UL-ConfigDedicatedAperiodic-r10.h \ - SoundingRS-UL-ConfigDedicatedAperiodic-v1310.h \ - SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.h \ - SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.h \ - SRS-ConfigAp-r10.h \ - SRS-ConfigAp-v1310.h \ - SRS-ConfigAp-r13.h \ - SRS-AntennaPort.h \ - SPS-Config.h \ - SPS-Config-v14xy.h \ - SPS-ConfigUL-ToAddModList-r14.h \ - SPS-ConfigUL-ToReleaseList-r14.h \ - SPS-ConfigSL-ToAddModList-r14.h \ - SPS-ConfigSL-ToReleaseList-r14.h \ - SPS-ConfigDL.h \ - SPS-ConfigUL.h \ - SPS-ConfigSL-r14.h \ - SPS-ConfigIndex-r14.h \ - N1PUCCH-AN-PersistentList.h \ - SRS-TPC-PDCCH-Config-r14.h \ - SRS-CC-SetIndex-r14.h \ - TDD-Config.h \ - TDD-Config-v1130.h \ - TDD-Config-v14xy.h \ - TDD-ConfigSL-r12.h \ - TimeAlignmentTimer.h \ - TPC-PDCCH-Config.h \ - TPC-PDCCH-ConfigSCell-r13.h \ - TPC-Index.h \ - TunnelConfigLWIP-r13.h \ - IKE-Identity-r13.h \ - IP-Address-r13.h \ - UplinkPowerControlCommon.h \ - UplinkPowerControlCommon-v1020.h \ - UplinkPowerControlCommon-v1310.h \ - UplinkPowerControlCommonPSCell-r12.h \ - UplinkPowerControlCommonSCell-r10.h \ - UplinkPowerControlCommonSCell-v1130.h \ - UplinkPowerControlCommonSCell-v1310.h \ - UplinkPowerControlCommonPUSCH-LessCell-v14xy.h \ - UplinkPowerControlDedicated.h \ - UplinkPowerControlDedicated-v1020.h \ - UplinkPowerControlDedicated-v1130.h \ - UplinkPowerControlDedicated-v1250.h \ - UplinkPUSCH-LessPowerControlDedicated-v14xy.h \ - UplinkPowerControlDedicatedSCell-r10.h \ - UplinkPowerControlDedicatedSCell-v1310.h \ - Alpha-r12.h \ - DeltaFList-PUCCH.h \ - DeltaTxD-OffsetListPUCCH-r10.h \ - DeltaTxD-OffsetListPUCCH-v1130.h \ - WLAN-Id-List-r13.h \ - WLAN-MobilityConfig-r13.h \ - NextHopChainingCount.h \ - SecurityAlgorithmConfig.h \ - CipheringAlgorithm-r12.h \ - ShortMAC-I.h \ - AdditionalSpectrumEmission.h \ - ARFCN-ValueCDMA2000.h \ - ARFCN-ValueEUTRA.h \ - ARFCN-ValueEUTRA-v9e0.h \ - ARFCN-ValueEUTRA-r9.h \ - ARFCN-ValueGERAN.h \ - ARFCN-ValueUTRA.h \ - BandclassCDMA2000.h \ - BandIndicatorGERAN.h \ - CarrierFreqCDMA2000.h \ - CarrierFreqGERAN.h \ - CarrierFreqsGERAN.h \ - ExplicitListOfARFCNs.h \ - CarrierFreqListMBMS-r11.h \ - CDMA2000-Type.h \ - CellIdentity.h \ - CellIndexList.h \ - CellIndex.h \ - CellReselectionPriority.h \ - CellSelectionInfoCE-r13.h \ - CellSelectionInfoCE1-r13.h \ - CellReselectionSubPriority-r13.h \ - CSFB-RegistrationParam1XRTT.h \ - CSFB-RegistrationParam1XRTT-v920.h \ - CellGlobalIdEUTRA.h \ - CellGlobalIdUTRA.h \ - CellGlobalIdGERAN.h \ - CellGlobalIdCDMA2000.h \ - CellSelectionInfoNFreq-r13.h \ - CSG-Identity.h \ - FreqBandIndicator.h \ - FreqBandIndicator-v9e0.h \ - FreqBandIndicator-r11.h \ - MobilityControlInfo.h \ - MobilityControlInfo-eLWA-r14.h \ - MobilityControlInfoSCG-r12.h \ - MobilityControlInfoV2X-r14.h \ - CarrierBandwidthEUTRA.h \ - CarrierFreqEUTRA.h \ - CarrierFreqEUTRA-v9e0.h \ - RACH-Skip-r14.h \ - MobilityParametersCDMA2000.h \ - MobilityStateParameters.h \ - MultiBandInfoList.h \ - MultiBandInfoList-v9e0.h \ - MultiBandInfoList-v10j0.h \ - MultiBandInfoList-r11.h \ - MultiBandInfo-v9e0.h \ - NS-PmaxList-r10.h \ - NS-PmaxValue-r10.h \ - PhysCellId.h \ - PhysCellIdRange.h \ - PhysCellIdRangeUTRA-FDDList-r9.h \ - PhysCellIdRangeUTRA-FDD-r9.h \ - PhysCellIdCDMA2000.h \ - PhysCellIdGERAN.h \ - PhysCellIdUTRA-FDD.h \ - PhysCellIdUTRA-TDD.h \ - PLMN-Identity.h \ - MCC.h \ - MNC.h \ - MCC-MNC-Digit.h \ - PLMN-IdentityList3-r11.h \ - PreRegistrationInfoHRPD.h \ - SecondaryPreRegistrationZoneIdListHRPD.h \ - PreRegistrationZoneIdHRPD.h \ - Q-QualMin-r9.h \ - Q-RxLevMin.h \ - Q-OffsetRange.h \ - Q-OffsetRangeInterRAT.h \ - ReselectionThreshold.h \ - ReselectionThresholdQ-r9.h \ - SCellIndex-r10.h \ - SCellIndex-r13.h \ - ServCellIndex-r10.h \ - ServCellIndex-r13.h \ - SpeedStateScaleFactors.h \ - SystemInfoListGERAN.h \ - SystemTimeInfoCDMA2000.h \ - TrackingAreaCode.h \ - T-Reselection.h \ - T-ReselectionEUTRA-CE-r13.h \ - AllowedMeasBandwidth.h \ - CSI-RSRP-Range-r12.h \ - Hysteresis.h \ - LocationInfo-r10.h \ - MBSFN-RSRQ-Range-r12.h \ - MeasConfig.h \ - MeasIdToRemoveList.h \ - MeasIdToRemoveListExt-r12.h \ - MeasObjectToRemoveList.h \ - MeasObjectToRemoveListExt-r13.h \ - ReportConfigToRemoveList.h \ - MeasDS-Config-r12.h \ - MeasCSI-RS-ToRemoveList-r12.h \ - MeasCSI-RS-ToAddModList-r12.h \ - MeasCSI-RS-Id-r12.h \ - MeasCSI-RS-Config-r12.h \ - MeasGapConfig.h \ - MeasGapConfig-r14.h \ - PerCC-MeasGapConfig-r14.h \ - MeasId.h \ - MeasId-v1250.h \ - MeasIdToAddModList.h \ - MeasIdToAddModList-v1310.h \ - MeasIdToAddModListExt-r12.h \ - MeasIdToAddModListExt-v1310.h \ - MeasIdToAddMod.h \ - MeasIdToAddModExt-r12.h \ - MeasIdToAddMod-v1310.h \ - MeasObjectCDMA2000.h \ - CellsToAddModListCDMA2000.h \ - CellsToAddModCDMA2000.h \ - MeasObjectEUTRA.h \ - MeasObjectEUTRA-v9e0.h \ - CellsToAddModList.h \ - CellsToAddMod.h \ - BlackCellsToAddModList.h \ - BlackCellsToAddMod.h \ - MeasCycleSCell-r10.h \ - MeasSubframePatternConfigNeigh-r10.h \ - MeasSubframeCellList-r10.h \ - AltTTT-CellsToAddModList-r12.h \ - AltTTT-CellsToAddMod-r12.h \ - WhiteCellsToAddModList-r13.h \ - WhiteCellsToAddMod-r13.h \ - RMTC-Config-r13.h \ - MeasObjectGERAN.h \ - MeasObjectId.h \ - MeasObjectId-v1310.h \ - MeasObjectId-r13.h \ - MeasObjectSL-r14.h \ - Tx-ResourcePoolMeasList-r14.h \ - MeasObjectToAddModList.h \ - MeasObjectToAddModListExt-r13.h \ - MeasObjectToAddModList-v9e0.h \ - MeasObjectToAddMod.h \ - MeasObjectToAddModExt-r13.h \ - MeasObjectToAddMod-v9e0.h \ - MeasObjectUTRA.h \ - CellsToAddModListUTRA-FDD.h \ - CellsToAddModUTRA-FDD.h \ - CellsToAddModListUTRA-TDD.h \ - CellsToAddModUTRA-TDD.h \ - CSG-AllowedReportingCells-r9.h \ - MeasObjectWLAN-r13.h \ - WLAN-BandIndicator-r13.h \ - MeasResults.h \ - MeasResultListEUTRA.h \ - MeasResultEUTRA.h \ - MeasResultServFreqList-r10.h \ - MeasResultServFreqListExt-r13.h \ - MeasResultServFreq-r10.h \ - MeasResultServFreq-r13.h \ - MeasResultCSI-RS-List-r12.h \ - MeasResultCSI-RS-r12.h \ - MeasResultListUTRA.h \ - MeasResultUTRA.h \ - MeasResultListGERAN.h \ - MeasResultGERAN.h \ - MeasResultsCDMA2000.h \ - MeasResultListCDMA2000.h \ - MeasResultCDMA2000.h \ - MeasResultListWLAN-r13.h \ - MeasResultListWLAN-r14.h \ - MeasResultWLAN-r13.h \ - MeasResultListCBR-r14.h \ - MeasResultCBR-r14.h \ - MeasResultForECID-r9.h \ - PLMN-IdentityList2.h \ - AdditionalSI-Info-r9.h \ - MeasResultForRSSI-r13.h \ - UL-PDCP-DelayResultList-r13.h \ - UL-PDCP-DelayResult-r13.h \ - MeasResultSSTD-r13.h \ - MeasScaleFactor-r12.h \ - QuantityConfig.h \ - QuantityConfigEUTRA.h \ - QuantityConfigEUTRA-v1250.h \ - QuantityConfigEUTRA-v1310.h \ - QuantityConfigUTRA.h \ - QuantityConfigUTRA-v1020.h \ - QuantityConfigGERAN.h \ - QuantityConfigCDMA2000.h \ - QuantityConfigWLAN-r13.h \ - ReportConfigEUTRA.h \ - RSRQ-RangeConfig-r12.h \ - ThresholdEUTRA.h \ - ThresholdEUTRA-v1250.h \ - MeasRSSI-ReportConfig-r13.h \ - ReportConfigId.h \ - ReportConfigInterRAT.h \ - ThresholdUTRA.h \ - ThresholdGERAN.h \ - ThresholdCDMA2000.h \ - ReportQuantityWLAN-r13.h \ - ReportConfigToAddModList.h \ - ReportConfigToAddMod.h \ - ReportInterval.h \ - RSRP-Range.h \ - RSRP-RangeSL-r12.h \ - RSRP-RangeSL2-r12.h \ - RSRP-RangeSL3-r12.h \ - RSRP-RangeSL4-r13.h \ - RSRQ-Range.h \ - RSRQ-Range-v1250.h \ - RSRQ-Range-r13.h \ - RSRQ-Type-r12.h \ - RS-SINR-Range-r13.h \ - RSSI-Range-r13.h \ - TimeToTrigger.h \ - UL-DelayConfig-r13.h \ - WLAN-CarrierInfo-r13.h \ - WLAN-ChannelList-r13.h \ - WLAN-Channel-r13.h \ - WLAN-RSSI-Range-r13.h \ - WLAN-Status-r13.h \ - WLAN-Status-v14x0.h \ - WLAN-SuspendConfig-r14.h \ - AbsoluteTimeInfo-r10.h \ - AreaConfiguration-r10.h \ - AreaConfiguration-v1130.h \ - CellGlobalIdList-r10.h \ - TrackingAreaCodeList-r10.h \ - TrackingAreaCodeList-v1130.h \ - BandCombinationList-r14.h \ - BandCombination-r14.h \ - BandIndication-r14.h \ - C-RNTI.h \ - DedicatedInfoCDMA2000.h \ - DedicatedInfoNAS.h \ - FilterCoefficient.h \ - LoggingDuration-r10.h \ - LoggingInterval-r10.h \ - MeasSubframePattern-r10.h \ - MMEC.h \ - NeighCellConfig.h \ - OtherConfig-r9.h \ - DelayBudgetReportingConfig-r14.h \ - IDC-Config-r11.h \ - ObtainLocationConfig-r11.h \ - PowerPrefIndicationConfig-r11.h \ - BW-Config-r14.h \ - ReportProximityConfig-r9.h \ - RAND-CDMA2000.h \ - RAT-Type.h \ - ResumeIdentity-r13.h \ - RRC-TransactionIdentifier.h \ - S-TMSI.h \ - TraceReference-r10.h \ - UE-CapabilityRAT-ContainerList.h \ - UE-CapabilityRAT-Container.h \ - UE-EUTRA-Capability.h \ - UE-EUTRA-Capability-v9a0-IEs.h \ - UE-EUTRA-Capability-v9c0-IEs.h \ - UE-EUTRA-Capability-v9d0-IEs.h \ - UE-EUTRA-Capability-v9e0-IEs.h \ - UE-EUTRA-Capability-v9h0-IEs.h \ - UE-EUTRA-Capability-v10c0-IEs.h \ - UE-EUTRA-Capability-v10f0-IEs.h \ - UE-EUTRA-Capability-v10i0-IEs.h \ - UE-EUTRA-Capability-v10j0-IEs.h \ - UE-EUTRA-Capability-v11d0-IEs.h \ - UE-EUTRA-Capability-v11x0-IEs.h \ - UE-EUTRA-Capability-v12b0-IEs.h \ - UE-EUTRA-Capability-v920-IEs.h \ - UE-EUTRA-Capability-v940-IEs.h \ - UE-EUTRA-Capability-v1020-IEs.h \ - UE-EUTRA-Capability-v1060-IEs.h \ - UE-EUTRA-Capability-v1090-IEs.h \ - UE-EUTRA-Capability-v1130-IEs.h \ - UE-EUTRA-Capability-v1170-IEs.h \ - UE-EUTRA-Capability-v1180-IEs.h \ - UE-EUTRA-Capability-v11a0-IEs.h \ - UE-EUTRA-Capability-v1250-IEs.h \ - UE-EUTRA-Capability-v1260-IEs.h \ - UE-EUTRA-Capability-v1270-IEs.h \ - UE-EUTRA-Capability-v1280-IEs.h \ - UE-EUTRA-Capability-v1310-IEs.h \ - UE-EUTRA-Capability-v1320-IEs.h \ - UE-EUTRA-Capability-v1330-IEs.h \ - UE-EUTRA-Capability-v1340-IEs.h \ - UE-EUTRA-Capability-v1350-IEs.h \ - UE-EUTRA-Capability-v14xy-IEs.h \ - UE-EUTRA-CapabilityAddXDD-Mode-r9.h \ - UE-EUTRA-CapabilityAddXDD-Mode-v1060.h \ - UE-EUTRA-CapabilityAddXDD-Mode-v1130.h \ - UE-EUTRA-CapabilityAddXDD-Mode-v1180.h \ - UE-EUTRA-CapabilityAddXDD-Mode-v1250.h \ - UE-EUTRA-CapabilityAddXDD-Mode-v1310.h \ - UE-EUTRA-CapabilityAddXDD-Mode-v1320.h \ - AccessStratumRelease.h \ - MobilityParameters-r14.h \ - DC-Parameters-r12.h \ - DC-Parameters-v1310.h \ - MAC-Parameters-r12.h \ - MAC-Parameters-v1310.h \ - MAC-Parameters-v14xy.h \ - RLC-Parameters-r12.h \ - RLC-Parameters-v1310.h \ - RLC-Parameters-v14xy.h \ - PDCP-Parameters.h \ - PDCP-Parameters-v1130.h \ - PDCP-Parameters-v1310.h \ - PhyLayerParameters.h \ - PhyLayerParameters-v920.h \ - PhyLayerParameters-v9d0.h \ - PhyLayerParameters-v1020.h \ - PhyLayerParameters-v1130.h \ - PhyLayerParameters-v1170.h \ - PhyLayerParameters-v1250.h \ - PhyLayerParameters-v1280.h \ - PhyLayerParameters-v1310.h \ - PhyLayerParameters-v1320.h \ - PhyLayerParameters-v1330.h \ - PhyLayerParameters-v14xy.h \ - MIMO-UE-Parameters-r13.h \ - MIMO-UE-Parameters-v14xy.h \ - MIMO-UE-ParametersPerTM-r13.h \ - MIMO-UE-ParametersPerTM-v14xy.h \ - MIMO-CA-ParametersPerBoBC-r13.h \ - MIMO-CA-ParametersPerBoBC-v14xy.h \ - MIMO-CA-ParametersPerBoBCPerTM-r13.h \ - MIMO-CA-ParametersPerBoBCPerTM-v14xy.h \ - MIMO-NonPrecodedCapabilities-r13.h \ - MIMO-UE-BeamformedCapabilities-r13.h \ - MIMO-BeamformedCapabilityList-r13.h \ - MIMO-BeamformedCapabilities-r13.h \ - NonContiguousUL-RA-WithinCC-List-r10.h \ - NonContiguousUL-RA-WithinCC-r10.h \ - RF-Parameters.h \ - RF-Parameters-v9e0.h \ - RF-Parameters-v1020.h \ - RF-Parameters-v1060.h \ - RF-Parameters-v1090.h \ - RF-Parameters-v10f0.h \ - RF-Parameters-v10i0.h \ - RF-Parameters-v10j0.h \ - RF-Parameters-v1130.h \ - RF-Parameters-v1180.h \ - RF-Parameters-v11d0.h \ - RF-Parameters-v1250.h \ - RF-Parameters-v1270.h \ - RF-Parameters-v1310.h \ - RF-Parameters-v1320.h \ - RF-Parameters-v12b0.h \ - RF-Parameters-v14xy.h \ - SupportedBandCombination-r10.h \ - SupportedBandCombinationExt-r10.h \ - SupportedBandCombination-v1090.h \ - SupportedBandCombination-v10i0.h \ - SupportedBandCombination-v1130.h \ - SupportedBandCombination-v1250.h \ - SupportedBandCombination-v1270.h \ - SupportedBandCombination-v1320.h \ - SupportedBandCombination-v14xy.h \ - SupportedBandCombinationAdd-r11.h \ - SupportedBandCombinationAdd-v11d0.h \ - SupportedBandCombinationAdd-v1250.h \ - SupportedBandCombinationAdd-v1270.h \ - SupportedBandCombinationAdd-v1320.h \ - SupportedBandCombinationAdd-v14xy.h \ - SupportedBandCombinationReduced-r13.h \ - SupportedBandCombinationReduced-v1320.h \ - SupportedBandCombinationReduced-v14xy.h \ - BandCombinationParameters-r10.h \ - BandCombinationParametersExt-r10.h \ - BandCombinationParameters-v1090.h \ - BandCombinationParameters-v10i0.h \ - BandCombinationParameters-v1130.h \ - BandCombinationParameters-r11.h \ - BandCombinationParameters-v1250.h \ - BandCombinationParameters-v1270.h \ - BandCombinationParameters-r13.h \ - BandCombinationParameters-v1320.h \ - BandCombinationParameters-v14xy.h \ - SupportedBandwidthCombinationSet-r10.h \ - BandParameters-r10.h \ - BandParameters-v1090.h \ - BandParameters-v10i0.h \ - BandParameters-v1130.h \ - BandParameters-r11.h \ - BandParameters-v1270.h \ - BandParameters-r13.h \ - BandParameters-v1320.h \ - BandParameters-v14xy.h \ - UL-256QAM-perCC-Info-r14.h \ - BandParametersUL-r10.h \ - BandParametersUL-r13.h \ - CA-MIMO-ParametersUL-r10.h \ - BandParametersDL-r10.h \ - BandParametersDL-r13.h \ - CA-MIMO-ParametersDL-r10.h \ - CA-MIMO-ParametersDL-v10i0.h \ - CA-MIMO-ParametersDL-v1270.h \ - CA-MIMO-ParametersDL-r13.h \ - IntraBandContiguousCC-Info-r12.h \ - CA-BandwidthClass-r10.h \ - MIMO-CapabilityUL-r10.h \ - MIMO-CapabilityDL-r10.h \ - SupportedBandListEUTRA.h \ - SupportedBandListEUTRA-v9e0.h \ - SupportedBandListEUTRA-v1250.h \ - SupportedBandListEUTRA-v1310.h \ - SupportedBandListEUTRA-v1320.h \ - SupportedBandEUTRA.h \ - SupportedBandEUTRA-v9e0.h \ - SupportedBandEUTRA-v1250.h \ - SupportedBandEUTRA-v1310.h \ - SupportedBandEUTRA-v1320.h \ - MeasParameters.h \ - MeasParameters-v1020.h \ - MeasParameters-v1130.h \ - MeasParameters-v11a0.h \ - MeasParameters-v1250.h \ - MeasParameters-v1310.h \ - MeasParameters-v14xy.h \ - BandListEUTRA.h \ - BandCombinationListEUTRA-r10.h \ - BandInfoEUTRA.h \ - InterFreqBandList.h \ - InterFreqBandInfo.h \ - InterRAT-BandList.h \ - InterRAT-BandInfo.h \ - IRAT-ParametersUTRA-FDD.h \ - IRAT-ParametersUTRA-v920.h \ - IRAT-ParametersUTRA-v9c0.h \ - IRAT-ParametersUTRA-v9h0.h \ - SupportedBandListUTRA-FDD.h \ - SupportedBandUTRA-FDD.h \ - IRAT-ParametersUTRA-TDD128.h \ - SupportedBandListUTRA-TDD128.h \ - SupportedBandUTRA-TDD128.h \ - IRAT-ParametersUTRA-TDD384.h \ - SupportedBandListUTRA-TDD384.h \ - SupportedBandUTRA-TDD384.h \ - IRAT-ParametersUTRA-TDD768.h \ - SupportedBandListUTRA-TDD768.h \ - SupportedBandUTRA-TDD768.h \ - IRAT-ParametersUTRA-TDD-v1020.h \ - IRAT-ParametersGERAN.h \ - IRAT-ParametersGERAN-v920.h \ - SupportedBandListGERAN.h \ - SupportedBandGERAN.h \ - IRAT-ParametersCDMA2000-HRPD.h \ - SupportedBandListHRPD.h \ - IRAT-ParametersCDMA2000-1XRTT.h \ - IRAT-ParametersCDMA2000-1XRTT-v920.h \ - IRAT-ParametersCDMA2000-1XRTT-v1020.h \ - IRAT-ParametersCDMA2000-v1130.h \ - SupportedBandList1XRTT.h \ - IRAT-ParametersWLAN-r13.h \ - CSG-ProximityIndicationParameters-r9.h \ - NeighCellSI-AcquisitionParameters-r9.h \ - SON-Parameters-r9.h \ - UE-BasedNetwPerfMeasParameters-r10.h \ - UE-BasedNetwPerfMeasParameters-v1250.h \ - OTDOA-PositioningCapabilities-r10.h \ - Other-Parameters-r11.h \ - Other-Parameters-v11d0.h \ - Other-Parameters-v14xy.h \ - MBMS-Parameters-r11.h \ - MBMS-Parameters-v1250.h \ - SCPTM-Parameters-r13.h \ - CE-Parameters-r13.h \ - CE-Parameters-v1320.h \ - CE-Parameters-v1350.h \ - LAA-Parameters-r13.h \ - LAA-Parameters-v14xy.h \ - WLAN-IW-Parameters-r12.h \ - LWA-Parameters-r13.h \ - LWA-Parameters-v14xy.h \ - WLAN-IW-Parameters-v1310.h \ - LWIP-Parameters-r13.h \ - LWIP-Parameters-v14xy.h \ - NAICS-Capability-List-r12.h \ - NAICS-Capability-Entry-r12.h \ - SL-Parameters-r12.h \ - SL-Parameters-v1310.h \ - SupportedBandInfoList-r12.h \ - SupportedBandInfo-r12.h \ - FreqBandIndicatorListEUTRA-r12.h \ - MMTEL-Parameters-r14.h \ - RetuningTimeBandPairList-r14.h \ - RetuningTimeParameters-r14.h \ - UE-RadioPagingInfo-r12.h \ - UE-TimersAndConstants.h \ - VisitedCellInfoList-r12.h \ - VisitedCellInfo-r12.h \ - WLAN-OffloadConfig-r12.h \ - WLAN-backhaulRate-r12.h \ - MBMS-NotificationConfig-r9.h \ - MBMS-NotificationConfig-v14xy.h \ - MBMS-ServiceList-r13.h \ - MBMS-ServiceInfo-r13.h \ - MBSFN-AreaId-r12.h \ - MBSFN-AreaInfoList-r9.h \ - MBSFN-AreaInfo-r9.h \ - MBSFN-SubframeConfig.h \ - MBSFN-SubframeConfig-v14xy.h \ - PMCH-InfoList-r9.h \ - PMCH-InfoListExt-r12.h \ - PMCH-Info-r9.h \ - PMCH-InfoExt-r12.h \ - MBMS-SessionInfoList-r9.h \ - MBMS-SessionInfo-r9.h \ - PMCH-Config-r9.h \ - PMCH-Config-r12.h \ - TMGI-r9.h \ - SC-MTCH-InfoList-r13.h \ - SC-MTCH-Info-r13.h \ - MBMSSessionInfo-r13.h \ - SC-MTCH-SchedulingInfo-r13.h \ - SC-MTCH-InfoList-BR-r14.h \ - SC-MTCH-Info-BR-r14.h \ - SC-MTCH-SchedulingInfo-BR-r14.h \ - SCPTM-NeighbourCellList-r13.h \ - PCI-ARFCN-r13.h \ - SL-CBR-MeasConfig-r14.h \ - SL-ThresS-RSSI-CBR-r14.h \ - SL-CBR-PSSCH-TxConfigList-r14.h \ - SL-CBR-PSSCH-TxConfig-r14.h \ - SL-PPPP-PSSCH-TxConfig-r14.h \ - SL-CBR-Range-r14.h \ - SL-CBR-r14.h \ - SL-CommConfig-r12.h \ - LogicalChGroupInfoList-r13.h \ - SL-CommTxPoolToAddModList-r12.h \ - SL-CommTxPoolToAddModListExt-r13.h \ - SL-CommTxPoolToAddMod-r12.h \ - SL-CommTxPoolToAddModExt-r13.h \ - MAC-MainConfigSL-r12.h \ - SL-CommTxPoolList-r12.h \ - SL-CommTxPoolListExt-r13.h \ - SL-CommTxPoolListV2X-r14.h \ - SL-CommRxPoolList-r12.h \ - SL-CommRxPoolListV2X-r14.h \ - SL-CommResourcePool-r12.h \ - SL-CommResourcePoolV2X-r14.h \ - SL-TRPT-Subset-r12.h \ - SL-V2X-TxPoolReportIdentity-r14.h \ - SL-CommTxPoolSensingConfig-r14.h \ - SL-CP-Len-r12.h \ - SL-DiscConfig-r12.h \ - SL-DiscSysInfoToReportFreqList-r13.h \ - SL-DiscTxInfoInterFreqListAdd-r13.h \ - SL-DiscTxResourceInfoPerFreq-r13.h \ - SL-DiscTxResource-r13.h \ - SL-DiscTxPoolToAddModList-r12.h \ - SL-DiscTxPoolToAddMod-r12.h \ - SL-DiscTxConfigScheduled-r13.h \ - SL-DiscTxPoolDedicated-r13.h \ - SL-TF-IndexPairList-r12.h \ - SL-TF-IndexPair-r12.h \ - SL-TF-IndexPairList-r12b.h \ - SL-TF-IndexPair-r12b.h \ - SL-DiscTxRefCarrierDedicated-r13.h \ - SL-DiscTxPoolList-r12.h \ - SL-DiscRxPoolList-r12.h \ - SL-DiscResourcePool-r12.h \ - PhysCellIdList-r13.h \ - SL-PoolSelectionConfig-r12.h \ - SL-DiscSysInfoReport-r13.h \ - SL-DiscTxPowerInfoList-r12.h \ - SL-DiscTxPowerInfo-r12.h \ - SL-GapConfig-r13.h \ - SL-GapPatternList-r13.h \ - SL-GapPattern-r13.h \ - SL-GapRequest-r13.h \ - SL-GapFreqInfo-r13.h \ - SL-HoppingConfigComm-r12.h \ - SL-HoppingConfigDisc-r12.h \ - SL-InterFreqInfoListV2X-r14.h \ - SL-InterFreqInfoV2X-r14.h \ - SL-V2X-UE-SelectionConfigList-r14.h \ - SL-V2X-InterFreqUE-SelectionConfig-r14.h \ - SL-OffsetIndicator-r12.h \ - SL-OffsetIndicatorSync-r12.h \ - SL-OffsetIndicatorSync-v14xy.h \ - SL-OffsetIndicatorSync-r14.h \ - SL-P2X-ResourceSelectionConfig-r14.h \ - SL-P2X-SensingConfig-r14.h \ - SL-PeriodComm-r12.h \ - SL-PriorityList-r13.h \ - SL-Priority-r13.h \ - SL-PSSCH-TxConfigList-r14.h \ - SL-PSSCH-TxConfig-r14.h \ - SL-PSSCH-TxParameters-r14.h \ - SL-RestrictResourceReservationPeriodList-r14.h \ - SL-RestrictResourceReservationPeriod-r14.h \ - SLSSID-r12.h \ - SL-SyncAllowed-r14.h \ - SL-SyncConfigList-r12.h \ - SL-SyncConfigListV2X-r14.h \ - SL-SyncConfig-r12.h \ - SL-SyncConfigListNFreq-r13.h \ - SL-SyncConfigListNFreqV2X-r14.h \ - SL-SyncConfigNFreq-r13.h \ - SL-TF-ResourceConfig-r12.h \ - SubframeBitmapSL-r12.h \ - SubframeBitmapSL-r14.h \ - SL-TxPower-r14.h \ - SL-TypeTxSync-r14.h \ - SL-ThresPSSCH-RSRP-List-r14.h \ - SL-ThresPSSCH-RSRP-r14.h \ - SL-TxParameters-r12.h \ - P0-SL-r12.h \ - SL-TxPoolIdentity-r12.h \ - SL-TxPoolIdentity-v1310.h \ - SL-V2X-TxPoolIdentity-r14.h \ - SL-TxPoolToReleaseList-r12.h \ - SL-TxPoolToReleaseListExt-r13.h \ - SL-V2X-ConfigDedicated-r14.h \ - SL-TxPoolToAddModListV2X-r14.h \ - SL-TxPoolToReleaseListV2X-r14.h \ - SL-ZoneConfig-r14.h \ - SBCCH-SL-BCH-Message.h \ - SBCCH-SL-BCH-MessageType.h \ - MasterInformationBlock-SL.h \ - BCCH-BCH-Message-NB.h \ - BCCH-BCH-MessageType-NB.h \ - BCCH-DL-SCH-Message-NB.h \ - BCCH-DL-SCH-MessageType-NB.h \ - PCCH-Message-NB.h \ - PCCH-MessageType-NB.h \ - DL-CCCH-Message-NB.h \ - DL-CCCH-MessageType-NB.h \ - DL-DCCH-Message-NB.h \ - DL-DCCH-MessageType-NB.h \ - UL-CCCH-Message-NB.h \ - UL-CCCH-MessageType-NB.h \ - SC-MCCH-Message-NB.h \ - SC-MCCH-MessageType-NB.h \ - UL-DCCH-Message-NB.h \ - UL-DCCH-MessageType-NB.h \ - DLInformationTransfer-NB.h \ - DLInformationTransfer-NB-r13-IEs.h \ - MasterInformationBlock-NB.h \ - ChannelRasterOffset-NB-r13.h \ - Guardband-NB-r13.h \ - Inband-SamePCI-NB-r13.h \ - Inband-DifferentPCI-NB-r13.h \ - Standalone-NB-r13.h \ - Paging-NB.h \ - PagingRecordList-NB-r13.h \ - PagingRecord-NB-r13.h \ - RRCConnectionReconfiguration-NB.h \ - RRCConnectionReconfiguration-NB-r13-IEs.h \ - RRCConnectionReconfigurationComplete-NB.h \ - RRCConnectionReconfigurationComplete-NB-r13-IEs.h \ - RRCConnectionReestablishment-NB.h \ - RRCConnectionReestablishment-NB-r13-IEs.h \ - RRCConnectionReestablishmentComplete-NB.h \ - RRCConnectionReestablishmentComplete-NB-r13-IEs.h \ - RRCConnectionReestablishmentRequest-NB.h \ - RRCConnectionReestablishmentRequest-NB-r13-IEs.h \ - ReestablishmentCause-NB-r13.h \ - RRCConnectionReject-NB.h \ - RRCConnectionReject-NB-r13-IEs.h \ - RRCConnectionRelease-NB.h \ - RRCConnectionRelease-NB-r13-IEs.h \ - RRCConnectionRelease-NB-v14xy-IEs.h \ - ReleaseCause-NB-r13.h \ - RedirectedCarrierInfo-NB-r13.h \ - RedirectedCarrierInfo-NB-v14xy.h \ - RRCConnectionRequest-NB.h \ - RRCConnectionRequest-NB-r13-IEs.h \ - RRCConnectionResume-NB.h \ - RRCConnectionResume-NB-r13-IEs.h \ - RRCConnectionResumeComplete-NB.h \ - RRCConnectionResumeComplete-NB-r13-IEs.h \ - RRCConnectionResumeRequest-NB.h \ - RRCConnectionResumeRequest-NB-r13-IEs.h \ - RRCConnectionSetup-NB.h \ - RRCConnectionSetup-NB-r13-IEs.h \ - RRCConnectionSetupComplete-NB.h \ - RRCConnectionSetupComplete-NB-r13-IEs.h \ - RRCConnectionSetupComplete-NB-v14xy-IEs.h \ - SCPTMConfiguration-NB-r14.h \ - SystemInformation-NB.h \ - SystemInformation-NB-r13-IEs.h \ - SystemInformationBlockType1-NB.h \ - SystemInformationBlockType1-NB-v1350.h \ - SystemInformationBlockType1-NB-v14xy.h \ - PLMN-IdentityList-NB-r13.h \ - PLMN-IdentityInfo-NB-r13.h \ - SchedulingInfoList-NB-r13.h \ - SchedulingInfoList-NB-v14xy.h \ - SchedulingInfo-NB-r13.h \ - SchedulingInfo-NB-v14xy.h \ - SystemInfoValueTagList-NB-r13.h \ - SIB-MappingInfo-NB-r13.h \ - SIB-Type-NB-r13.h \ - SIB-MappingInfo-NB-v14xy.h \ - SIB-Type-NB-v14xy.h \ - SIB-TypeExt-NB-r14.h \ - CellSelectionInfo-NB-v1350.h \ - CellSelectionInfo-NB-v14xy.h \ - UECapabilityEnquiry-NB.h \ - UECapabilityEnquiry-NB-r13-IEs.h \ - UECapabilityInformation-NB.h \ - UECapabilityInformation-NB-r13-IEs.h \ - ULInformationTransfer-NB.h \ - ULInformationTransfer-NB-r13-IEs.h \ - SystemInformationBlockType2-NB-r13.h \ - SystemInformationBlockType3-NB-r13.h \ - IntraFreqCellReselectionInfo-NB-v1350.h \ - IntraFreqCellReselectionInfo-NB-v14xy.h \ - SystemInformationBlockType4-NB-r13.h \ - SystemInformationBlockType5-NB-r13.h \ - InterFreqCarrierFreqList-NB-r13.h \ - InterFreqCarrierFreqInfo-NB-r13.h \ - InterFreqNeighCellList-NB-r13.h \ - InterFreqBlackCellList-NB-r13.h \ - SystemInformationBlockType14-NB-r13.h \ - AB-ConfigPLMN-NB-r13.h \ - AB-Config-NB-r13.h \ - SystemInformationBlockType15-NB-r14.h \ - MBMS-SAI-List-NB-r14.h \ - MBMS-SAI-InterFreqList-NB-r14.h \ - MBMS-SAI-InterFreq-NB-r14.h \ - SystemInformationBlockType16-NB-r13.h \ - SystemInformationBlockType20-NB-r14.h \ - NPDCCH-SC-MCCH-Config-NB-r14.h \ - SC-MCCH-SchedulingInfo-NB-r14.h \ - SystemInformationBlockType22-NB-r14.h \ - DL-CarrierConfigCommonList-NB-r14.h \ - UL-CarrierConfigCommonList-NB-r14.h \ - PCCH-MultiCarrierConfig-NB-r14.h \ - PCCH-ConfigList-NB-r14.h \ - PCCH-Config-NB-r14.h \ - PagingWeight-NB-r14.h \ - NPRACH-MultiCarrierConfig-NB-r14.h \ - NPRACH-ConfigList-NB-r14.h \ - NPRACH-ParametersList-NB-r14.h \ - NPRACH-Parameters-NB-r14.h \ - NPRACH-ProbabilityAnchorList-NB-r14.h \ - NPRACH-ProbabilityAnchor-NB-r14.h \ - CarrierConfigDedicated-NB-r13.h \ - DL-CarrierConfigDedicated-NB-r13.h \ - UL-CarrierConfigDedicated-NB-r13.h \ - CarrierFreq-NB-r13.h \ - DL-Bitmap-NB-r13.h \ - DL-CarrierConfigCommon-NB-r14.h \ - DL-GapConfig-NB-r13.h \ - LogicalChannelConfig-NB-r13.h \ - MAC-MainConfig-NB-r13.h \ - PeriodicBSR-Timer-NB-r13.h \ - RetxBSR-Timer-NB-r13.h \ - DRX-Config-NB-r13.h \ - NPDCCH-ConfigDedicated-NB-r13.h \ - NPDSCH-ConfigCommon-NB-r13.h \ - NPRACH-ConfigSIB-NB-r13.h \ - NPRACH-ConfigSIB-NB-v1330.h \ - NPRACH-ParametersList-NB-r13.h \ - NPRACH-ParametersList-NB-v1330.h \ - NPRACH-Parameters-NB-r13.h \ - NPRACH-Parameters-NB-v1330.h \ - RSRP-ThresholdsNPRACH-InfoList-NB-r13.h \ - NPUSCH-ConfigCommon-NB-r13.h \ - UL-ReferenceSignalsNPUSCH-NB-r13.h \ - NPUSCH-ConfigDedicated-NB-r13.h \ - ACK-NACK-NumRepetitions-NB-r13.h \ - PDCP-Config-NB-r13.h \ - PhysicalConfigDedicated-NB-r13.h \ - RACH-ConfigCommon-NB-r13.h \ - RACH-InfoList-NB-r13.h \ - RACH-Info-NB-r13.h \ - RadioResourceConfigCommonSIB-NB-r13.h \ - BCCH-Config-NB-r13.h \ - PCCH-Config-NB-r13.h \ - RadioResourceConfigDedicated-NB-r13.h \ - SRB-ToAddModList-NB-r13.h \ - SRB-ToAddMod-NB-r13.h \ - DRB-ToAddModList-NB-r13.h \ - DRB-ToAddMod-NB-r13.h \ - DRB-ToReleaseList-NB-r13.h \ - RLC-Config-NB-r13.h \ - RLC-Config-NB-v14xy.h \ - UL-AM-RLC-NB-r13.h \ - DL-AM-RLC-NB-r13.h \ - DL-UM-RLC-NB-r14.h \ - T-PollRetransmit-NB-r13.h \ - RLF-TimersAndConstants-NB-r13.h \ - UL-CarrierConfigCommon-NB-r14.h \ - UplinkPowerControlCommon-NB-r13.h \ - UplinkPowerControlDedicated-NB-r13.h \ - AdditionalBandInfoList-NB-r14.h \ - FreqBandIndicator-NB-r13.h \ - MultiBandInfoList-NB-r13.h \ - MultiBandInfo-NB-r13.h \ - NS-PmaxList-NB-r13.h \ - NS-PmaxValue-NB-r13.h \ - T-Reselection-NB-r13.h \ - EstablishmentCause-NB-r13.h \ - UE-Capability-NB-r13.h \ - UE-Capability-NB-v14xy-IEs.h \ - AccessStratumRelease-NB-r13.h \ - PDCP-Parameters-NB-r13.h \ - MAC-Parameters-NB-r14.h \ - PhyLayerParameters-NB-r13.h \ - PhyLayerParameters-NB-v14xy.h \ - RF-Parameters-NB-r13.h \ - RF-Parameters-NB-v14xy.h \ - SupportedBandList-NB-r13.h \ - SupportedBand-NB-r13.h \ - UE-RadioPagingInfo-NB-r13.h \ - UE-TimersAndConstants-NB-r13.h \ - SC-MTCH-InfoList-NB-r14.h \ - SC-MTCH-Info-NB-r14.h \ - SC-MTCH-SchedulingInfo-NB-r14.h \ - SCPTM-NeighbourCellList-NB-r14.h \ - PCI-ARFCN-NB-r14.h \ - VarConnEstFailReport-r11.h \ - VarLogMeasConfig-r10.h \ - VarLogMeasConfig-r11.h \ - VarLogMeasConfig-r12.h \ - VarLogMeasReport-r10.h \ - VarLogMeasReport-r11.h \ - LogMeasInfoList2-r10.h \ - VarMeasConfig.h \ - VarMeasReportList.h \ - VarMeasReportList-r12.h \ - VarMeasReport.h \ - CellsTriggeredList.h \ - CSI-RS-TriggeredList-r12.h \ - VarMobilityHistoryReport-r12.h \ - VarRLF-Report-r10.h \ - VarRLF-Report-r11.h \ - VarShortMAC-Input.h \ - VarShortResumeMAC-Input-r13.h \ - VarWLAN-MobilityConfig.h \ - VarWLAN-Status-r13.h \ - VarShortMAC-Input-NB-r13.h \ - VarShortResumeMAC-Input-NB-r13.h \ - SL-Preconfiguration-r12.h \ - SL-PreconfigGeneral-r12.h \ - SL-PreconfigSync-r12.h \ - SL-PreconfigV2X-Sync-r14.h \ - SL-V2X-SyncOffsetIndicators-r14.h \ - SL-PreconfigCommPoolList4-r12.h \ - SL-PreconfigCommRxPoolList-r13.h \ - SL-PreconfigCommTxPoolList-r13.h \ - SL-PreconfigCommPool-r12.h \ - SL-PreconfigDiscRxPoolList-r13.h \ - SL-PreconfigDiscTxPoolList-r13.h \ - SL-PreconfigDiscPool-r13.h \ - SL-PreconfigRelay-r13.h \ - SL-V2X-Preconfiguration-r14.h \ - SL-V2X-AnchorCarrierFreqList-r14.h \ - SL-V2X-PreconfigFreqList-r14.h \ - SL-V2X-PreconfigFreqInfo-r14.h \ - SL-PreconfigV2X-RxPoolList-r14.h \ - SL-PreconfigV2X-TxPoolList-r14.h \ - SL-V2X-PreconfigCommPool-r14.h \ - HandoverCommand.h \ - HandoverCommand-r8-IEs.h \ - HandoverPreparationInformation.h \ - HandoverPreparationInformation-r8-IEs.h \ - HandoverPreparationInformation-v920-IEs.h \ - HandoverPreparationInformation-v9d0-IEs.h \ - HandoverPreparationInformation-v9j0-IEs.h \ - HandoverPreparationInformation-v10j0-IEs.h \ - HandoverPreparationInformation-v9e0-IEs.h \ - HandoverPreparationInformation-v1130-IEs.h \ - HandoverPreparationInformation-v1250-IEs.h \ - HandoverPreparationInformation-v1320-IEs.h \ - HandoverPreparationInformation-v14x0-IEs.h \ - SCG-Config-r12.h \ - SCG-Config-r12-IEs.h \ - SCG-ConfigInfo-r12.h \ - SCG-ConfigInfo-r12-IEs.h \ - SCG-ConfigInfo-v1310-IEs.h \ - SCG-ConfigInfo-v1330-IEs.h \ - SCG-ConfigInfo-v14xy-IEs.h \ - DRB-InfoListSCG-r12.h \ - DRB-InfoSCG-r12.h \ - SCellToAddModListSCG-r12.h \ - SCellToAddModListSCG-Ext-r13.h \ - Cell-ToAddMod-r12.h \ - MeasResultServCellListSCG-r12.h \ - MeasResultServCellListSCG-Ext-r13.h \ - MeasResultServCellSCG-r12.h \ - MeasResultListRSSI-SCG-r13.h \ - MeasResultRSSI-SCG-r13.h \ - SCG-ConfigRestrictInfo-r12.h \ - UEPagingCoverageInformation.h \ - UEPagingCoverageInformation-r13-IEs.h \ - UERadioAccessCapabilityInformation.h \ - UERadioAccessCapabilityInformation-r8-IEs.h \ - UERadioPagingInformation.h \ - UERadioPagingInformation-r12-IEs.h \ - UERadioPagingInformation-v1310-IEs.h \ - AS-Config.h \ - AS-Config-v9e0.h \ - AS-Config-v10j0.h \ - AS-Config-v1250.h \ - AS-Config-v1320.h \ - AS-Config-v14x0.h \ - AS-Context.h \ - AS-Context-v1130.h \ - AS-Context-v1320.h \ - ReestablishmentInfo.h \ - AdditionalReestabInfoList.h \ - AdditionalReestabInfo.h \ - Key-eNodeB-Star.h \ - RRM-Config.h \ - CandidateCellInfoList-r10.h \ - CandidateCellInfo-r10.h \ - HandoverPreparationInformation-NB.h \ - HandoverPreparationInformation-NB-IEs.h \ - UEPagingCoverageInformation-NB.h \ - UEPagingCoverageInformation-NB-IEs.h \ - UERadioAccessCapabilityInformation-NB.h \ - UERadioAccessCapabilityInformation-NB-IEs.h \ - UERadioPagingInformation-NB.h \ - UERadioPagingInformation-NB-IEs.h \ - AS-Config-NB.h \ - AS-Context-NB.h \ - ReestablishmentInfo-NB.h \ - RRM-Config-NB.h +-include converter-example.mk -ASN_MODULE_HDRS+=BOOLEAN.h -ASN_MODULE_SRCS+=BOOLEAN.c -ASN_MODULE_HDRS+=INTEGER.h -ASN_MODULE_HDRS+=NativeEnumerated.h -ASN_MODULE_SRCS+=INTEGER.c -ASN_MODULE_HDRS+=NULL.h -ASN_MODULE_SRCS+=NULL.c -ASN_MODULE_SRCS+=NativeEnumerated.c -ASN_MODULE_HDRS+=NativeInteger.h -ASN_MODULE_SRCS+=NativeInteger.c -ASN_MODULE_HDRS+=asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=asn_SET_OF.h -ASN_MODULE_SRCS+=asn_SET_OF.c -ASN_MODULE_HDRS+=constr_CHOICE.h -ASN_MODULE_SRCS+=constr_CHOICE.c -ASN_MODULE_HDRS+=constr_SEQUENCE.h -ASN_MODULE_SRCS+=constr_SEQUENCE.c -ASN_MODULE_HDRS+=constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=constr_SET_OF.h -ASN_MODULE_SRCS+=constr_SET_OF.c -ASN_MODULE_HDRS+=asn_application.h -ASN_MODULE_HDRS+=asn_system.h -ASN_MODULE_HDRS+=asn_codecs.h -ASN_MODULE_HDRS+=asn_internal.h -ASN_MODULE_HDRS+=OCTET_STRING.h -ASN_MODULE_SRCS+=OCTET_STRING.c -ASN_MODULE_HDRS+=BIT_STRING.h -ASN_MODULE_SRCS+=BIT_STRING.c -ASN_MODULE_SRCS+=asn_codecs_prim.c -ASN_MODULE_HDRS+=asn_codecs_prim.h -ASN_MODULE_HDRS+=ber_tlv_length.h -ASN_MODULE_SRCS+=ber_tlv_length.c -ASN_MODULE_HDRS+=ber_tlv_tag.h -ASN_MODULE_SRCS+=ber_tlv_tag.c -ASN_MODULE_HDRS+=ber_decoder.h -ASN_MODULE_SRCS+=ber_decoder.c -ASN_MODULE_HDRS+=der_encoder.h -ASN_MODULE_SRCS+=der_encoder.c -ASN_MODULE_HDRS+=constr_TYPE.h -ASN_MODULE_SRCS+=constr_TYPE.c -ASN_MODULE_HDRS+=constraints.h -ASN_MODULE_SRCS+=constraints.c -ASN_MODULE_HDRS+=xer_support.h -ASN_MODULE_SRCS+=xer_support.c -ASN_MODULE_HDRS+=xer_decoder.h -ASN_MODULE_SRCS+=xer_decoder.c -ASN_MODULE_HDRS+=xer_encoder.h -ASN_MODULE_SRCS+=xer_encoder.c -ASN_MODULE_HDRS+=per_support.h -ASN_MODULE_SRCS+=per_support.c -ASN_MODULE_HDRS+=per_decoder.h -ASN_MODULE_SRCS+=per_decoder.c -ASN_MODULE_HDRS+=per_encoder.h -ASN_MODULE_SRCS+=per_encoder.c -ASN_MODULE_HDRS+=per_opentype.h -ASN_MODULE_SRCS+=per_opentype.c -ASN_CONVERTER_SOURCES+=converter-sample.c -ASN_CONVERTER_SOURCES+=pdu_collection.c - - -lib_LTLIBRARIES=libsomething.la -libsomething_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) - -# This file may be used as an input for make(3) -# Remove the lines below to convert it into a pure .am file -TARGET = lte-rrc-dump -CFLAGS += -DHAVE_CONFIG_H -DJUNKTEST -D_DEFAULT_SOURCE -DPDU=DL_DCCH_Message -DASN_PDU_COLLECTION -I. -OBJS=${ASN_MODULE_SRCS:.c=.o} ${ASN_CONVERTER_SOURCES:.c=.o} - -all: DL-DCCH-Message.c $(TARGET) - -$(TARGET): ${OBJS} - $(CC) $(CFLAGS) -o $(TARGET) ${OBJS} $(LDFLAGS) $(LIBS) - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) $(CFLAGS) -o $@ -c $< - -clean: - rm -f $(TARGET) - rm -f $(OBJS) - -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - ../../asn1c/asn1c -S ../../skeletons -pdu=DL-DCCH-Message -pdu=auto -fcompound-names -gen-PER ../lte-rrc-14.2.1.asn1 - - -DL-DCCH-Message.c: ../sample.makefile.regen ../lte-rrc-14.2.1.asn1 +DL-DCCH-Message.c: ../sample.makefile.regen ../lte-rrc-14.4.0.asn1 make regen-makefile @touch DL-DCCH-Message.c make regen-makefile: ASN_CMDOPTS="-pdu=auto -fcompound-names -no-gen-OER" \ - ASN_MODULES="../lte-rrc-14.2.1.asn1" \ + ASN_MODULES="../lte-rrc-14.4.0.asn1" \ ASN_PDU=DL-DCCH-Message \ - ASN_PROGRAM=lte-rrc-dump \ - CFLAGS="" \ + ASN_PROGRAM=rrc-dump \ ../sample.makefile.regen -check: ${TARGET} check-ber check-xer check-per +check: ${ASN_PROGRAM} check-ber check-xer check-oer check-per @echo ================ @echo All tests passed @echo ================ check-ber: @if test -f sample-DL-DCCH-Message-1.[db]er ; then \ - for f in sample-DL-DCCH-Message-*.[db]er; do \ + for f in sample-*-*.[db]er; do \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ for b in 1 17 33 980 8192; do \ - echo "Recoding $$f into XER and back ($$b)..."; \ - ./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \ - ./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ + echo "Recoding $$f ($$pdu) into XER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 4; \ rm -f ./.tmp.[12].$$$$; \ echo "Test junking $$f (please wait)..."; \ - ./${TARGET} -J0.0001 -n 1000 -b $$b -iber -onull $$f || exit 5; \ - ./${TARGET} -J0.001 -n 1000 -b $$b -iber -onull $$f || exit 6; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -iber -onull $$f || exit 5; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -iber -onull $$f || exit 6; \ done; done; fi check-xer: @if test -f sample-DL-DCCH-Message-1.xer ; then \ - for f in sample-DL-DCCH-Message-*.xer; do \ + for f in sample-*-*.xer; do \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ for b in 1 17 33 980 8192; do \ - echo "Recoding $$f into DER and back ($$b)..."; \ - ./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \ - ./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ + echo "Recoding $$f ($$pdu) into DER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ diff $$f ./.tmp.2.$$$$ || exit 4; \ rm -f ./.tmp.[12].$$$$; \ echo "Test junking $$f (please wait)..."; \ - ./${TARGET} -J0.0001 -n 1000 -b $$b -ixer -onull $$f || exit 5; \ - ./${TARGET} -J0.001 -n 1000 -b $$b -ixer -onull $$f || exit 6; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -ixer -onull $$f || exit 5; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -ixer -onull $$f || exit 6; \ + done; done; fi + +check-oer: + @if test -f sample-DL-DCCH-Message-1.*oer ; then \ + for f in sample-*-*.*oer; do \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ + for b in 1 17 33 980 8192; do \ + echo "Recoding $$f ($$pdu) into XER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ioer -oxer $$f > ./.tmp.1.$$$$ || exit 2; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -ooer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ + diff $$f ./.tmp.2.$$$$ || exit 4; \ + rm -f ./.tmp.[12].$$$$; \ + echo "Test junking $$f (please wait) ($$b) ..."; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -ioer -onull $$f || exit 5; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -ioer -onull $$f || exit 6; \ done; done; fi check-per: @if test -f sample-DL-DCCH-Message-1-nopad.per ; then \ - for f in sample-DL-DCCH-Message-[1-9]-nopad.per; do \ + for f in sample-*-[1-9]-nopad.per; do \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ for b in 1 17 33 980 8192; do \ - echo "Recoding non-padded $$f into DER into XER and back ($$b)..."; \ - ./${TARGET} -b $$b -per-nopad -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \ - ./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ - ./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 4; \ + echo "Recoding non-padded $$f ($$pdu) into DER into XER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -per-nopad -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 4; \ diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 5; \ rm -f ./.tmp.[123].$$$$; \ echo "Test junking $$f (please wait)..."; \ - ./${TARGET} -J0.0001 -n 1000 -b $$b -per-nopad -iper -onull $$f || exit 6; \ - ./${TARGET} -J0.001 -n 1000 -b $$b -per-nopad -iper -onull $$f || exit 7; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -per-nopad -iper -onull $$f || exit 6; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -per-nopad -iper -onull $$f || exit 7; \ done; done; fi @if test -f sample-DL-DCCH-Message-1.per ; then \ for f in sample-*-[1-9].per; do \ - pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ for b in 1 17 33 980 8192; do \ - echo "Recoding $$f into DER into XER and back ($$b)..."; \ - ./${TARGET} -b $$b -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 3; \ - ./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 4; \ - ./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 5; \ + echo "Recoding $$f ($$pdu) into DER into XER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 3; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 4; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 5; \ diff $$f ./.tmp.1.$$$$ || exit 6; \ rm -f ./.tmp.[12].$$$$; \ echo "Test junking $$f (please wait)..."; \ - ./${TARGET} -J0.0001 -n 1000 -b $$b -iper -onull $$f || exit 7; \ - ./${TARGET} -J0.001 -n 1000 -b $$b -iper -onull $$f || exit 8; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -iper -onull $$f || exit 7; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -iper -onull $$f || exit 8; \ done; done; fi +maybe-wip-pause: + @if [ -f WIP ]; then cat WIP; sleep 2; fi + distclean: clean rm -f $(ASN_MODULE_SRCS) rm -f $(ASN_MODULE_HDRS) - rm -f $(ASN_CONVERTER_SOURCES) $(ASN_CONVERTER_HEADERS) - rm -f Makefile.am.sample + rm -f $(ASN_PROGRAM_SRCS) $(ASN_PROGRAM_HDRS) + rm -f converter-example.mk diff --git a/examples/sample.source.S1AP/Makefile b/examples/sample.source.S1AP/Makefile new file mode 100644 index 000000000..d1bf2fce0 --- /dev/null +++ b/examples/sample.source.S1AP/Makefile @@ -0,0 +1,106 @@ +ASN_PROGRAM = s1ap-dump +CFLAGS += -DHAVE_CONFIG_H -DJUNKTEST -D_DEFAULT_SOURCE +begin: S1AP-PDU.c maybe-wip-pause all + +-include converter-example.mk + +S1AP-PDU.c: ../sample.makefile.regen ../s1ap-14.4.0.asn1 + make regen-makefile + @touch S1AP-PDU.c + make + +regen-makefile: + ASN_CMDOPTS="-pdu=all -fcompound-names -findirect-choice -fno-include-deps -gen-PER" \ + ASN_MODULES="../s1ap-14.4.0.asn1" \ + ASN_PDU=S1AP-PDU \ + ASN_PROGRAM=s1ap-dump \ + ../sample.makefile.regen + +check: ${ASN_PROGRAM} check-ber check-xer check-oer check-per + @echo ================ + @echo All tests passed + @echo ================ + +check-ber: + @if test -f sample-S1AP-PDU-1.[db]er ; then \ + for f in sample-*-*.[db]er; do \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ + for b in 1 17 33 980 8192; do \ + echo "Recoding $$f ($$pdu) into XER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ + diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 4; \ + rm -f ./.tmp.[12].$$$$; \ + echo "Test junking $$f (please wait)..."; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -iber -onull $$f || exit 5; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -iber -onull $$f || exit 6; \ + done; done; fi + +check-xer: + @if test -f sample-S1AP-PDU-1.xer ; then \ + for f in sample-*-*.xer; do \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ + for b in 1 17 33 980 8192; do \ + echo "Recoding $$f ($$pdu) into DER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ + diff $$f ./.tmp.2.$$$$ || exit 4; \ + rm -f ./.tmp.[12].$$$$; \ + echo "Test junking $$f (please wait)..."; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -ixer -onull $$f || exit 5; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -ixer -onull $$f || exit 6; \ + done; done; fi + +check-oer: + @if test -f sample-S1AP-PDU-1.*oer ; then \ + for f in sample-*-*.*oer; do \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ + for b in 1 17 33 980 8192; do \ + echo "Recoding $$f ($$pdu) into XER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ioer -oxer $$f > ./.tmp.1.$$$$ || exit 2; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -ooer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ + diff $$f ./.tmp.2.$$$$ || exit 4; \ + rm -f ./.tmp.[12].$$$$; \ + echo "Test junking $$f (please wait) ($$b) ..."; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -ioer -onull $$f || exit 5; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -ioer -onull $$f || exit 6; \ + done; done; fi + +check-per: + @if test -f sample-S1AP-PDU-1-nopad.per ; then \ + for f in sample-*-[1-9]-nopad.per; do \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ + for b in 1 17 33 980 8192; do \ + echo "Recoding non-padded $$f ($$pdu) into DER into XER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -per-nopad -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 4; \ + diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 5; \ + rm -f ./.tmp.[123].$$$$; \ + echo "Test junking $$f (please wait)..."; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -per-nopad -iper -onull $$f || exit 6; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -per-nopad -iper -onull $$f || exit 7; \ + done; done; fi + @if test -f sample-S1AP-PDU-1.per ; then \ + for f in sample-*-[1-9].per; do \ + pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z0-9-]+)-[0-9].*/\1/"`; \ + for b in 1 17 33 980 8192; do \ + echo "Recoding $$f ($$pdu) into DER into XER and back ($$b)..."; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 3; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 4; \ + ./${ASN_PROGRAM} -p $$pdu -b $$b -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 5; \ + diff $$f ./.tmp.1.$$$$ || exit 6; \ + rm -f ./.tmp.[12].$$$$; \ + echo "Test junking $$f (please wait)..."; \ + ./${ASN_PROGRAM} -J0.0001 -n 1000 -p $$pdu -b $$b -iper -onull $$f || exit 7; \ + ./${ASN_PROGRAM} -J0.001 -n 1000 -p $$pdu -b $$b -iper -onull $$f || exit 8; \ + done; done; fi + +maybe-wip-pause: + @if [ -f WIP ]; then cat WIP; sleep 2; fi + +distclean: clean + rm -f $(ASN_MODULE_SRCS) + rm -f $(ASN_MODULE_HDRS) + rm -f $(ASN_PROGRAM_SRCS) $(ASN_PROGRAM_HDRS) + rm -f converter-example.mk diff --git a/examples/sample.source.S1AP/README b/examples/sample.source.S1AP/README new file mode 100644 index 000000000..26fc6ad8e --- /dev/null +++ b/examples/sample.source.S1AP/README @@ -0,0 +1,35 @@ + +GENERAL INFORMATION +=================== + +The 3GPP TS 36.413 version 14.4.0 S1 Application Protocol (S1AP) APER decoder. +Invoking `make` will compile the ASN.1 specifications from the +../s1ap-14.4.0.asn1 file. + +OBTAINING THE S1AP SPECIFICATION +================================ + +To obtain a different version of S1AP ASN.1 specification, you should go to + http://www.3gpp.org/ftp/Specs/html-info/36413.htm +and download any version of S1AP specification you like. + +A .ZIP file with a Microsoft Word .DOC files will download shortly. + +You should extract the ASN.1 modules from the chapter 9 of that .DOC file. +Be careful not to copy any preambles, chapter titles and other non-ASN.1 text. + +s1ap-dump USAGE +=============== + +The s1ap-dump utility may be used to dump the contents of a APER-encoded +S1AP protocol data unit. Since S1AP specification contains multiple PDUs, +a PDU must be selected manually using -p command line option: + + ./s1ap-dump -iaper -p S1AP-PDU message.per + +The list of recognized PDUs may be obtained using `-p list`. + +The full list of recognized command line options may be obtained with + + > ./s1ap-dump -h + diff --git a/examples/sample.source.S1AP/config.h b/examples/sample.source.S1AP/config.h new file mode 100644 index 000000000..2dda9297a --- /dev/null +++ b/examples/sample.source.S1AP/config.h @@ -0,0 +1,10 @@ + +extern int opt_debug; + +#define ASN_DEBUG(fmt, args...) do { \ + if(opt_debug < 2) break; \ + fprintf(stderr, fmt, ##args); \ + fprintf(stderr, " (%s:%d)\n", \ + __FILE__, __LINE__); \ + } while(0) + diff --git a/examples/sample.source.S1AP/sample-DownlinkNASTransport.aper b/examples/sample.source.S1AP/sample-DownlinkNASTransport.aper new file mode 100644 index 0000000000000000000000000000000000000000..8dba884785ab4b52c3e99cad842b9c42dd364633 GIT binary patch literal 74 zcmV-Q0JZ-B00RI300qDS0B~0T2ml0t8%F&A8UQjeCxm#D?*V*Nh_TdC704ah7$O8k gNn?uZXN4r_2c2L6GNqTk2YMoVnBCNUm*$`xJ^Yp#$N&HU literal 0 HcmV?d00001 diff --git a/examples/sample.source.S1AP/sample-S1AP-InitialContextSetup.aper b/examples/sample.source.S1AP/sample-S1AP-InitialContextSetup.aper new file mode 100644 index 0000000000000000000000000000000000000000..266d47b253f892b19d7c6eea6feb6eadb01f6b96 GIT binary patch literal 293 zcmZSJWN1`iVBlb2U|?ck1ky|l#tcpjToSCYUJVH>N4799NH8=^XJ9a4Xqf2Az{<|w zutr4b5KuW|L!)}gua$3@*qxa4*%XYvdNSBD_y;i_WMq|NOGzv$&&*>^&d+7b%}X}0 zG-1n4PBt<&Wl1k6DrRK_8u1~H?ccvm^B5S^r5hR)xtJIkxEk3GtYBn>a+*OLrU345 zK!Y2AE(2O9t`q6$#oYQs+=PW$Uhq>2qdh}51FHlB4^YyRK|$r>I`unt37?zY#h=C8 zjr+gxtfaz8?sW>g)5HHv-df_rpy^;(0dgkL1OdU1fC7#Ok~ G7#RS@+)0H1 literal 0 HcmV?d00001 diff --git a/examples/sample.source.S1AP/sample-S1AP-InitialUEMessage.aper b/examples/sample.source.S1AP/sample-S1AP-InitialUEMessage.aper new file mode 100644 index 0000000000000000000000000000000000000000..f5b9ac6bfe674d24b649bc4af9dc2ac6538c7abb GIT binary patch literal 88 zcmZSJaR^~xU}fN7U}7+4kYdo$W_K*&{$}*mvw?w;fq{XMt<8 literal 0 HcmV?d00001 diff --git a/examples/sample.source.S1AP/sample-S1AP-UplinkNASTransport.aper b/examples/sample.source.S1AP/sample-S1AP-UplinkNASTransport.aper new file mode 100644 index 0000000000000000000000000000000000000000..d2de17b3a92454a22674a97124b35ec6b11f6895 GIT binary patch literal 59 zcmZSJbuedOU}a!nU}9io-~f`w3{nhyyz0wXbQ77_of(*e7!EO{IB+l+ef4Bu5MW?% Jc3=auZ2_ Date: Sun, 12 Nov 2017 22:06:41 +0800 Subject: [PATCH 08/17] Use comprehensible names for instances of parameterized types With previous commit, the following data types are generated in ProtocolIE-Field.h for S1AP's ASN.1 : ``` typedef enum ProtocolIE_Field_6564P0__value_PR { ProtocolIE_Field_6564P0__value_PR_NOTHING, /* No components present */ ProtocolIE_Field_6564P0__value_PR_E_RABToBeSetupItemBearerSUReq } ProtocolIE_Field_6564P0__value_PR; typedef struct ProtocolIE_Field_6564P0 { ProtocolIE_ID_t id; Criticality_t criticality; struct ProtocolIE_Field_6564P0__value { ProtocolIE_Field_6564P0__value_PR present; union ProtocolIE_Field_6564P0__value_u { E_RABToBeSetupItemBearerSUReq_t E_RABToBeSetupItemBearerSUReq; } choice; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } value; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } ProtocolIE_Field_6564P0_t; ``` It's difficult for developer to recognize to which ASN.1 type they are linked. They all start with 'ProtocolIE_Field_'. It will be error-prone. With this commit, more human comprehensible data types are generated : ``` typedef enum E_RABToBeSetupItemBearerSUReqIEs__value_PR { E_RABToBeSetupItemBearerSUReqIEs__value_PR_NOTHING, /* No components present */ E_RABToBeSetupItemBearerSUReqIEs__value_PR_E_RABToBeSetupItemBearerSUReq } E_RABToBeSetupItemBearerSUReqIEs__value_PR; typedef struct E_RABToBeSetupItemBearerSUReqIEs { ProtocolIE_ID_t id; Criticality_t criticality; struct E_RABToBeSetupItemBearerSUReqIEs__value { E_RABToBeSetupItemBearerSUReqIEs__value_PR present; union E_RABToBeSetupItemBearerSUReqIEs__value_u { E_RABToBeSetupItemBearerSUReq_t E_RABToBeSetupItemBearerSUReq; } choice; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } value; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } E_RABToBeSetupItemBearerSUReqIEs_t; ``` Developers can understand they are generated from : ``` E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, ... } ``` --- libasn1compiler/asn1c_C.c | 11 +-- libasn1compiler/asn1c_misc.c | 16 +++- libasn1compiler/asn1c_out.h | 23 ++++-- libasn1fix/asn1fix_param.c | 17 +++++ .../144-ios-parameterization-OK.asn1.-P | 62 ++++++++-------- ...ios-parameterization-per-OK.asn1.-Pgen-PER | 62 ++++++++-------- ...tion-more-than-two-level-OK.asn1.-Pgen-PER | 74 +++++++++---------- .../156-union-ios-OK.asn1.-Pgen-PER | 62 ++++++++-------- 8 files changed, 180 insertions(+), 147 deletions(-) diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c index d63c43445..d43811970 100644 --- a/libasn1compiler/asn1c_C.c +++ b/libasn1compiler/asn1c_C.c @@ -1304,7 +1304,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { } } else { - GEN_INCLUDE(asn1c_type_name(arg, expr, TNF_INCLUDE)); + GEN_POS_INCLUDE_BASE(OT_INCLUDES, expr); REDIR(OT_TYPE_DECLS); @@ -3236,13 +3236,8 @@ emit_include_dependencies(arg_t *arg) { if((!(memb->expr_type & ASN_CONSTR_MASK) && memb->expr_type > ASN_CONSTR_MASK) || memb->meta_type == AMT_TYPEREF) { - if(memb->marker.flags & EM_UNRECURSE) { - GEN_POSTINCLUDE(asn1c_type_name(arg, - memb, TNF_INCLUDE)); - } else { - GEN_INCLUDE(asn1c_type_name(arg, - memb, TNF_INCLUDE)); - } + GEN_POS_INCLUDE_BASE((memb->marker.flags & EM_UNRECURSE) ? + OT_POST_INCLUDE : OT_INCLUDES, memb); } } diff --git a/libasn1compiler/asn1c_misc.c b/libasn1compiler/asn1c_misc.c index 8cfafc0e0..45a43fe25 100644 --- a/libasn1compiler/asn1c_misc.c +++ b/libasn1compiler/asn1c_misc.c @@ -73,7 +73,7 @@ asn1c_make_identifier(enum ami_flags_e flags, asn1p_expr_t *expr, ...) { sptr[sptr_cnt++] = expr->Identifier; size += strlen(expr->Identifier); - if(expr->spec_index != -1) { + if(expr->spec_index != -1 && expr->_lineno) { static char buf[32]; size += 1 + snprintf(buf, sizeof buf, "%dP%d", expr->_lineno, expr->spec_index); @@ -297,6 +297,20 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) { _format = TNF_CTYPE; stdname = 1; typename = ASN_EXPR_TYPE2STR(expr->expr_type); + if(_format == TNF_INCLUDE) { + if(expr->expr_type == ASN_CONSTR_SEQUENCE) + typename = "constr_SEQUENCE"; + else if(expr->expr_type == ASN_CONSTR_CHOICE) + typename = "constr_CHOICE"; + else if(expr->expr_type == ASN_CONSTR_SET) + typename = "constr_SET"; + else if(expr->expr_type == ASN_CONSTR_SEQUENCE_OF) + typename = "constr_SEQUENCE_OF"; + else if(expr->expr_type == ASN_CONSTR_SET_OF) + typename = "constr_SET_OF"; + else if(expr->expr_type == ASN_CONSTR_OPEN_TYPE) + typename = "OPEN_TYPE"; + } } else { _format = TNF_RSAFE; typename = expr->Identifier; diff --git a/libasn1compiler/asn1c_out.h b/libasn1compiler/asn1c_out.h index 2d9baed42..e999fc9d2 100644 --- a/libasn1compiler/asn1c_out.h +++ b/libasn1compiler/asn1c_out.h @@ -93,24 +93,31 @@ int asn1c_compiled_output(arg_t *arg, const char *file, int lineno, } while(0) /* Generate #include line */ -#define GEN_INCLUDE_STD(typename) do { \ - if((arg->flags & A1C_INCLUDES_QUOTED)) { \ +#define GEN_INCLUDE_STD(typename) do { \ + if((arg->flags & A1C_INCLUDES_QUOTED)) { \ GEN_INCLUDE("\"" typename ".h\""); \ } else { \ GEN_INCLUDE("<" typename ".h>"); \ } } while(0) -#define GEN_INCLUDE(filename) do { \ +#define GEN_INCLUDE(filename) \ + GEN_POS_INCLUDE(OT_INCLUDES, filename) +#define GEN_POSTINCLUDE(filename) \ + GEN_POS_INCLUDE(OT_POST_INCLUDE, filename) +#define GEN_POS_INCLUDE(pos, filename) do { \ int saved_target = arg->target->target; \ if(!filename) break; \ - REDIR(OT_INCLUDES); \ + REDIR(pos); \ OUT_NOINDENT("#include %s\n", filename); \ REDIR(saved_target); \ } while(0) -#define GEN_POSTINCLUDE(filename) do { \ +#define GEN_POS_INCLUDE_BASE(pos, expr) do { \ + asn1p_expr_t *rhs_pspecs = expr->rhs_pspecs; \ + expr->rhs_pspecs = (asn1p_expr_t *)0; \ int saved_target = arg->target->target; \ - if(!filename) break; \ - REDIR(OT_POST_INCLUDE); \ - OUT_NOINDENT("#include %s\n", filename); \ + REDIR(pos); \ + OUT_NOINDENT("#include %s\n", \ + asn1c_type_name(arg, expr, TNF_INCLUDE)); \ + expr->rhs_pspecs = rhs_pspecs; \ REDIR(saved_target); \ } while(0) diff --git a/libasn1fix/asn1fix_param.c b/libasn1fix/asn1fix_param.c index 77daba130..894f42ae4 100644 --- a/libasn1fix/asn1fix_param.c +++ b/libasn1fix/asn1fix_param.c @@ -6,6 +6,7 @@ typedef struct resolver_arg { asn1p_expr_t *original_expr; asn1p_paramlist_t *lhs_params; asn1p_expr_t *rhs_pspecs; + char *resolved_name; } resolver_arg_t; static asn1p_expr_t *resolve_expr(asn1p_expr_t *, void *resolver_arg); @@ -52,8 +53,14 @@ asn1f_parameterization_fork(arg_t *arg, asn1p_expr_t *expr, asn1p_expr_t *rhs_ps rarg.original_expr = expr; rarg.lhs_params = expr->lhs_params; rarg.rhs_pspecs = rhs_pspecs; + rarg.resolved_name = NULL; exc = asn1p_expr_clone_with_resolver(expr, resolve_expr, &rarg); if(!exc) return NULL; + if(rarg.resolved_name) { + free(exc->Identifier); + exc->Identifier = strdup(rarg.resolved_name); + exc->_lineno = 0; + } rpc = asn1p_expr_clone(rhs_pspecs, 0); assert(rpc); @@ -138,6 +145,16 @@ resolve_expr(asn1p_expr_t *expr_to_resolve, void *resolver_arg) { free(nex->Identifier); nex->Identifier = expr_to_resolve->Identifier ? strdup(expr_to_resolve->Identifier) : 0; + if(expr->meta_type == AMT_TYPEREF) { + asn1p_ref_t *ref = expr->reference; + rarg->resolved_name = ref->components[ref->comp_count - 1].name; + } else if(expr->meta_type == AMT_VALUESET) { + asn1p_constraint_t *ct = expr->constraints; + if(ct->type == ACT_EL_TYPE) { + asn1p_ref_t *ref = ct->containedSubtype->value.v_type->reference; + rarg->resolved_name = ref->components[ref->comp_count - 1].name; + } + } return nex; } else { FATAL("Feature not implemented for %s (%d/%x), " diff --git a/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P b/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P index 23b35276b..02c5cf2df 100644 --- a/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P @@ -7,7 +7,7 @@ /*** <<< TYPE-DECLS [Message] >>> ***/ typedef struct Message { - SpecializedContent_30P0_t content; + RegionalExtension_30P0_t content; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -23,7 +23,7 @@ static asn_TYPE_member_t asn_MBR_Message_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Message, content), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, - .type = &asn_DEF_SpecializedContent_30P0, + .type = &asn_DEF_RegionalExtension_30P0, .type_selector = 0, { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 }, 0, 0, /* No default value */ @@ -81,11 +81,11 @@ typedef enum value_PR { /*** <<< TYPE-DECLS [SpecializedContent] >>> ***/ -typedef struct SpecializedContent_30P0 { +typedef struct RegionalExtension_30P0 { long id; struct value { value_PR present; - union SpecializedContent_30P0__value_u { + union RegionalExtension_30P0__value_u { long INTEGER; BOOLEAN_t BOOLEAN; } choice; @@ -96,13 +96,13 @@ typedef struct SpecializedContent_30P0 { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} SpecializedContent_30P0_t; +} RegionalExtension_30P0_t; /*** <<< FUNC-DECLS [SpecializedContent] >>> ***/ -extern asn_TYPE_descriptor_t asn_DEF_SpecializedContent_30P0; -extern asn_SEQUENCE_specifics_t asn_SPC_SpecializedContent_30P0_specs_1; -extern asn_TYPE_member_t asn_MBR_SpecializedContent_30P0_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_RegionalExtension_30P0; +extern asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_30P0_specs_1; +extern asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[2]; /*** <<< IOC-TABLES [SpecializedContent] >>> ***/ @@ -140,13 +140,13 @@ memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_SpecializedContent_30P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RegionalExtension_30P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_RegionalExtension_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &Type */ size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SpecializedContent_30P0, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RegionalExtension_30P0, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -233,8 +233,8 @@ asn_TYPE_descriptor_t asn_DEF_value_3 = { &asn_SPC_value_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_SpecializedContent_30P0_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SpecializedContent_30P0, id), +asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegionalExtension_30P0, id), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = &asn_DEF_NativeInteger, @@ -243,43 +243,43 @@ asn_TYPE_member_t asn_MBR_SpecializedContent_30P0_1[] = { 0, 0, /* No default value */ .name = "id" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SpecializedContent_30P0, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RegionalExtension_30P0, value), .tag = -1 /* Ambiguous tag (ANY?) */, .tag_mode = 0, .type = &asn_DEF_value_3, - .type_selector = select_SpecializedContent_30P0_value_type, + .type_selector = select_RegionalExtension_30P0_value_type, { .oer_constraints = 0, .per_constraints = 0, .general_constraints = memb_value_constraint_1 }, 0, 0, /* No default value */ .name = "value" }, }; -static const ber_tlv_tag_t asn_DEF_SpecializedContent_30P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_RegionalExtension_30P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_SpecializedContent_30P0_tag2el_1[] = { +static const asn_TYPE_tag2member_t asn_MAP_RegionalExtension_30P0_tag2el_1[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* id */ }; -asn_SEQUENCE_specifics_t asn_SPC_SpecializedContent_30P0_specs_1 = { - sizeof(struct SpecializedContent_30P0), - offsetof(struct SpecializedContent_30P0, _asn_ctx), - .tag2el = asn_MAP_SpecializedContent_30P0_tag2el_1, +asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_30P0_specs_1 = { + sizeof(struct RegionalExtension_30P0), + offsetof(struct RegionalExtension_30P0, _asn_ctx), + .tag2el = asn_MAP_RegionalExtension_30P0_tag2el_1, .tag2el_count = 1, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_SpecializedContent_30P0 = { - "SpecializedContent", - "SpecializedContent", +asn_TYPE_descriptor_t asn_DEF_RegionalExtension_30P0 = { + "RegionalExtension", + "RegionalExtension", &asn_OP_SEQUENCE, - asn_DEF_SpecializedContent_30P0_tags_1, - sizeof(asn_DEF_SpecializedContent_30P0_tags_1) - /sizeof(asn_DEF_SpecializedContent_30P0_tags_1[0]), /* 1 */ - asn_DEF_SpecializedContent_30P0_tags_1, /* Same as above */ - sizeof(asn_DEF_SpecializedContent_30P0_tags_1) - /sizeof(asn_DEF_SpecializedContent_30P0_tags_1[0]), /* 1 */ + asn_DEF_RegionalExtension_30P0_tags_1, + sizeof(asn_DEF_RegionalExtension_30P0_tags_1) + /sizeof(asn_DEF_RegionalExtension_30P0_tags_1[0]), /* 1 */ + asn_DEF_RegionalExtension_30P0_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionalExtension_30P0_tags_1) + /sizeof(asn_DEF_RegionalExtension_30P0_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_SpecializedContent_30P0_1, + asn_MBR_RegionalExtension_30P0_1, 2, /* Elements count */ - &asn_SPC_SpecializedContent_30P0_specs_1 /* Additional specs */ + &asn_SPC_RegionalExtension_30P0_specs_1 /* Additional specs */ }; diff --git a/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER index e73249a82..6d9fdd35f 100644 --- a/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER @@ -7,7 +7,7 @@ /*** <<< TYPE-DECLS [Message] >>> ***/ typedef struct Message { - SpecializedContent_30P0_t content; + RegionalExtension_30P0_t content; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -23,7 +23,7 @@ static asn_TYPE_member_t asn_MBR_Message_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Message, content), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, - .type = &asn_DEF_SpecializedContent_30P0, + .type = &asn_DEF_RegionalExtension_30P0, .type_selector = 0, { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 }, 0, 0, /* No default value */ @@ -81,11 +81,11 @@ typedef enum value_PR { /*** <<< TYPE-DECLS [SpecializedContent] >>> ***/ -typedef struct SpecializedContent_30P0 { +typedef struct RegionalExtension_30P0 { long id; struct value { value_PR present; - union SpecializedContent_30P0__value_u { + union RegionalExtension_30P0__value_u { long INTEGER; BOOLEAN_t BOOLEAN; } choice; @@ -96,13 +96,13 @@ typedef struct SpecializedContent_30P0 { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} SpecializedContent_30P0_t; +} RegionalExtension_30P0_t; /*** <<< FUNC-DECLS [SpecializedContent] >>> ***/ -extern asn_TYPE_descriptor_t asn_DEF_SpecializedContent_30P0; -extern asn_SEQUENCE_specifics_t asn_SPC_SpecializedContent_30P0_specs_1; -extern asn_TYPE_member_t asn_MBR_SpecializedContent_30P0_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_RegionalExtension_30P0; +extern asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_30P0_specs_1; +extern asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[2]; /*** <<< IOC-TABLES [SpecializedContent] >>> ***/ @@ -140,13 +140,13 @@ memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_SpecializedContent_30P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RegionalExtension_30P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_RegionalExtension_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &Type */ size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SpecializedContent_30P0, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RegionalExtension_30P0, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -249,8 +249,8 @@ asn_TYPE_descriptor_t asn_DEF_value_3 = { &asn_SPC_value_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_SpecializedContent_30P0_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SpecializedContent_30P0, id), +asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegionalExtension_30P0, id), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = &asn_DEF_NativeInteger, @@ -259,43 +259,43 @@ asn_TYPE_member_t asn_MBR_SpecializedContent_30P0_1[] = { 0, 0, /* No default value */ .name = "id" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SpecializedContent_30P0, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RegionalExtension_30P0, value), .tag = -1 /* Ambiguous tag (ANY?) */, .tag_mode = 0, .type = &asn_DEF_value_3, - .type_selector = select_SpecializedContent_30P0_value_type, + .type_selector = select_RegionalExtension_30P0_value_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_value_constr_3, .general_constraints = memb_value_constraint_1 }, 0, 0, /* No default value */ .name = "value" }, }; -static const ber_tlv_tag_t asn_DEF_SpecializedContent_30P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_RegionalExtension_30P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_SpecializedContent_30P0_tag2el_1[] = { +static const asn_TYPE_tag2member_t asn_MAP_RegionalExtension_30P0_tag2el_1[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* id */ }; -asn_SEQUENCE_specifics_t asn_SPC_SpecializedContent_30P0_specs_1 = { - sizeof(struct SpecializedContent_30P0), - offsetof(struct SpecializedContent_30P0, _asn_ctx), - .tag2el = asn_MAP_SpecializedContent_30P0_tag2el_1, +asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_30P0_specs_1 = { + sizeof(struct RegionalExtension_30P0), + offsetof(struct RegionalExtension_30P0, _asn_ctx), + .tag2el = asn_MAP_RegionalExtension_30P0_tag2el_1, .tag2el_count = 1, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_SpecializedContent_30P0 = { - "SpecializedContent", - "SpecializedContent", +asn_TYPE_descriptor_t asn_DEF_RegionalExtension_30P0 = { + "RegionalExtension", + "RegionalExtension", &asn_OP_SEQUENCE, - asn_DEF_SpecializedContent_30P0_tags_1, - sizeof(asn_DEF_SpecializedContent_30P0_tags_1) - /sizeof(asn_DEF_SpecializedContent_30P0_tags_1[0]), /* 1 */ - asn_DEF_SpecializedContent_30P0_tags_1, /* Same as above */ - sizeof(asn_DEF_SpecializedContent_30P0_tags_1) - /sizeof(asn_DEF_SpecializedContent_30P0_tags_1[0]), /* 1 */ + asn_DEF_RegionalExtension_30P0_tags_1, + sizeof(asn_DEF_RegionalExtension_30P0_tags_1) + /sizeof(asn_DEF_RegionalExtension_30P0_tags_1[0]), /* 1 */ + asn_DEF_RegionalExtension_30P0_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionalExtension_30P0_tags_1) + /sizeof(asn_DEF_RegionalExtension_30P0_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_SpecializedContent_30P0_1, + asn_MBR_RegionalExtension_30P0_1, 2, /* Elements count */ - &asn_SPC_SpecializedContent_30P0_specs_1 /* Additional specs */ + &asn_SPC_RegionalExtension_30P0_specs_1 /* Additional specs */ }; diff --git a/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER index ab4a7ca55..487518838 100644 --- a/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER @@ -501,7 +501,7 @@ asn_TYPE_descriptor_t asn_DEF_LowerLayer_List_45P0 = { /*** <<< TYPE-DECLS [SinglePacket] >>> ***/ -typedef Packet_51P0_t SinglePacket_48P0_t; +typedef ClassItem_51P0_t SinglePacket_48P0_t; /*** <<< FUNC-DECLS [SinglePacket] >>> ***/ @@ -519,7 +519,7 @@ per_type_encoder_f SinglePacket_48P0_encode_uper; /*** <<< CODE [SinglePacket] >>> ***/ /* - * This type is implemented using Packet_51P0, + * This type is implemented using ClassItem_51P0, * so here we adjust the DEF accordingly. */ @@ -539,9 +539,9 @@ asn_TYPE_descriptor_t asn_DEF_SinglePacket_48P0 = { sizeof(asn_DEF_SinglePacket_48P0_tags_1) /sizeof(asn_DEF_SinglePacket_48P0_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_Packet_51P0_1, + asn_MBR_ClassItem_51P0_1, 3, /* Elements count */ - &asn_SPC_Packet_51P0_specs_1 /* Additional specs */ + &asn_SPC_ClassItem_51P0_specs_1 /* Additional specs */ }; @@ -566,12 +566,12 @@ typedef enum value_PR { /*** <<< TYPE-DECLS [Packet] >>> ***/ -typedef struct Packet_51P0 { +typedef struct ClassItem_51P0 { PacketId_t id; Color_t color; struct value { value_PR present; - union Packet_51P0__value_u { + union ClassItem_51P0__value_u { OCTET_STRING_t OCTET_STRING; } choice; @@ -581,13 +581,13 @@ typedef struct Packet_51P0 { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} Packet_51P0_t; +} ClassItem_51P0_t; /*** <<< FUNC-DECLS [Packet] >>> ***/ -extern asn_TYPE_descriptor_t asn_DEF_Packet_51P0; -extern asn_SEQUENCE_specifics_t asn_SPC_Packet_51P0_specs_1; -extern asn_TYPE_member_t asn_MBR_Packet_51P0_1[3]; +extern asn_TYPE_descriptor_t asn_DEF_ClassItem_51P0; +extern asn_SEQUENCE_specifics_t asn_SPC_ClassItem_51P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ClassItem_51P0_1[3]; /*** <<< IOC-TABLES [Packet] >>> ***/ @@ -632,13 +632,13 @@ memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_Packet_51P0_color_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_ClassItem_51P0_color_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_ClassItem_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &color */ size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Packet_51P0, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ClassItem_51P0, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -674,13 +674,13 @@ memb_color_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_Packet_51P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_ClassItem_51P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_ClassItem_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Packet_51P0, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ClassItem_51P0, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -775,8 +775,8 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { &asn_SPC_value_specs_4 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_Packet_51P0_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Packet_51P0, id), +asn_TYPE_member_t asn_MBR_ClassItem_51P0_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ClassItem_51P0, id), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = &asn_DEF_PacketId, @@ -785,53 +785,53 @@ asn_TYPE_member_t asn_MBR_Packet_51P0_1[] = { 0, 0, /* No default value */ .name = "id" }, - { ATF_NOFLAGS, 0, offsetof(struct Packet_51P0, color), + { ATF_NOFLAGS, 0, offsetof(struct ClassItem_51P0, color), .tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), .tag_mode = 0, .type = &asn_DEF_Color, - .type_selector = select_Packet_51P0_color_type, + .type_selector = select_ClassItem_51P0_color_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_color_constr_3, .general_constraints = memb_color_constraint_1 }, 0, 0, /* No default value */ .name = "color" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Packet_51P0, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ClassItem_51P0, value), .tag = -1 /* Ambiguous tag (ANY?) */, .tag_mode = 0, .type = &asn_DEF_value_4, - .type_selector = select_Packet_51P0_value_type, + .type_selector = select_ClassItem_51P0_value_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_value_constr_4, .general_constraints = memb_value_constraint_1 }, 0, 0, /* No default value */ .name = "value" }, }; -static const ber_tlv_tag_t asn_DEF_Packet_51P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ClassItem_51P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_Packet_51P0_tag2el_1[] = { +static const asn_TYPE_tag2member_t asn_MAP_ClassItem_51P0_tag2el_1[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* color */ }; -asn_SEQUENCE_specifics_t asn_SPC_Packet_51P0_specs_1 = { - sizeof(struct Packet_51P0), - offsetof(struct Packet_51P0, _asn_ctx), - .tag2el = asn_MAP_Packet_51P0_tag2el_1, +asn_SEQUENCE_specifics_t asn_SPC_ClassItem_51P0_specs_1 = { + sizeof(struct ClassItem_51P0), + offsetof(struct ClassItem_51P0, _asn_ctx), + .tag2el = asn_MAP_ClassItem_51P0_tag2el_1, .tag2el_count = 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_Packet_51P0 = { - "Packet", - "Packet", +asn_TYPE_descriptor_t asn_DEF_ClassItem_51P0 = { + "ClassItem", + "ClassItem", &asn_OP_SEQUENCE, - asn_DEF_Packet_51P0_tags_1, - sizeof(asn_DEF_Packet_51P0_tags_1) - /sizeof(asn_DEF_Packet_51P0_tags_1[0]), /* 1 */ - asn_DEF_Packet_51P0_tags_1, /* Same as above */ - sizeof(asn_DEF_Packet_51P0_tags_1) - /sizeof(asn_DEF_Packet_51P0_tags_1[0]), /* 1 */ + asn_DEF_ClassItem_51P0_tags_1, + sizeof(asn_DEF_ClassItem_51P0_tags_1) + /sizeof(asn_DEF_ClassItem_51P0_tags_1[0]), /* 1 */ + asn_DEF_ClassItem_51P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ClassItem_51P0_tags_1) + /sizeof(asn_DEF_ClassItem_51P0_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_Packet_51P0_1, + asn_MBR_ClassItem_51P0_1, 3, /* Elements count */ - &asn_SPC_Packet_51P0_specs_1 /* Additional specs */ + &asn_SPC_ClassItem_51P0_specs_1 /* Additional specs */ }; diff --git a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER index 525541f63..16cfde8ab 100644 --- a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER @@ -7,7 +7,7 @@ /*** <<< TYPE-DECLS [Message] >>> ***/ typedef struct Message { - SpecializedContent_42P0_t content; + TotalRegionExtension_42P0_t content; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -23,7 +23,7 @@ static asn_TYPE_member_t asn_MBR_Message_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Message, content), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, - .type = &asn_DEF_SpecializedContent_42P0, + .type = &asn_DEF_TotalRegionExtension_42P0, .type_selector = 0, { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 }, 0, 0, /* No default value */ @@ -83,11 +83,11 @@ typedef enum value_PR { /*** <<< TYPE-DECLS [SpecializedContent] >>> ***/ -typedef struct SpecializedContent_42P0 { +typedef struct TotalRegionExtension_42P0 { long id; struct value { value_PR present; - union SpecializedContent_42P0__value_u { + union TotalRegionExtension_42P0__value_u { long INTEGER; BOOLEAN_t BOOLEAN; OCTET_STRING_t OCTET_STRING; @@ -99,13 +99,13 @@ typedef struct SpecializedContent_42P0 { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} SpecializedContent_42P0_t; +} TotalRegionExtension_42P0_t; /*** <<< FUNC-DECLS [SpecializedContent] >>> ***/ -extern asn_TYPE_descriptor_t asn_DEF_SpecializedContent_42P0; -extern asn_SEQUENCE_specifics_t asn_SPC_SpecializedContent_42P0_specs_1; -extern asn_TYPE_member_t asn_MBR_SpecializedContent_42P0_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_TotalRegionExtension_42P0; +extern asn_SEQUENCE_specifics_t asn_SPC_TotalRegionExtension_42P0_specs_1; +extern asn_TYPE_member_t asn_MBR_TotalRegionExtension_42P0_1[2]; /*** <<< IOC-TABLES [SpecializedContent] >>> ***/ @@ -155,13 +155,13 @@ memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_SpecializedContent_42P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_TotalRegionExtension_42P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_TotalRegionExtension_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &Type */ size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SpecializedContent_42P0, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TotalRegionExtension_42P0, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -274,8 +274,8 @@ asn_TYPE_descriptor_t asn_DEF_value_3 = { &asn_SPC_value_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_SpecializedContent_42P0_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SpecializedContent_42P0, id), +asn_TYPE_member_t asn_MBR_TotalRegionExtension_42P0_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TotalRegionExtension_42P0, id), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = &asn_DEF_NativeInteger, @@ -284,43 +284,43 @@ asn_TYPE_member_t asn_MBR_SpecializedContent_42P0_1[] = { 0, 0, /* No default value */ .name = "id" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SpecializedContent_42P0, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TotalRegionExtension_42P0, value), .tag = -1 /* Ambiguous tag (ANY?) */, .tag_mode = 0, .type = &asn_DEF_value_3, - .type_selector = select_SpecializedContent_42P0_value_type, + .type_selector = select_TotalRegionExtension_42P0_value_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_value_constr_3, .general_constraints = memb_value_constraint_1 }, 0, 0, /* No default value */ .name = "value" }, }; -static const ber_tlv_tag_t asn_DEF_SpecializedContent_42P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_TotalRegionExtension_42P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_SpecializedContent_42P0_tag2el_1[] = { +static const asn_TYPE_tag2member_t asn_MAP_TotalRegionExtension_42P0_tag2el_1[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* id */ }; -asn_SEQUENCE_specifics_t asn_SPC_SpecializedContent_42P0_specs_1 = { - sizeof(struct SpecializedContent_42P0), - offsetof(struct SpecializedContent_42P0, _asn_ctx), - .tag2el = asn_MAP_SpecializedContent_42P0_tag2el_1, +asn_SEQUENCE_specifics_t asn_SPC_TotalRegionExtension_42P0_specs_1 = { + sizeof(struct TotalRegionExtension_42P0), + offsetof(struct TotalRegionExtension_42P0, _asn_ctx), + .tag2el = asn_MAP_TotalRegionExtension_42P0_tag2el_1, .tag2el_count = 1, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_SpecializedContent_42P0 = { - "SpecializedContent", - "SpecializedContent", +asn_TYPE_descriptor_t asn_DEF_TotalRegionExtension_42P0 = { + "TotalRegionExtension", + "TotalRegionExtension", &asn_OP_SEQUENCE, - asn_DEF_SpecializedContent_42P0_tags_1, - sizeof(asn_DEF_SpecializedContent_42P0_tags_1) - /sizeof(asn_DEF_SpecializedContent_42P0_tags_1[0]), /* 1 */ - asn_DEF_SpecializedContent_42P0_tags_1, /* Same as above */ - sizeof(asn_DEF_SpecializedContent_42P0_tags_1) - /sizeof(asn_DEF_SpecializedContent_42P0_tags_1[0]), /* 1 */ + asn_DEF_TotalRegionExtension_42P0_tags_1, + sizeof(asn_DEF_TotalRegionExtension_42P0_tags_1) + /sizeof(asn_DEF_TotalRegionExtension_42P0_tags_1[0]), /* 1 */ + asn_DEF_TotalRegionExtension_42P0_tags_1, /* Same as above */ + sizeof(asn_DEF_TotalRegionExtension_42P0_tags_1) + /sizeof(asn_DEF_TotalRegionExtension_42P0_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_SpecializedContent_42P0_1, + asn_MBR_TotalRegionExtension_42P0_1, 2, /* Elements count */ - &asn_SPC_SpecializedContent_42P0_specs_1 /* Additional specs */ + &asn_SPC_TotalRegionExtension_42P0_specs_1 /* Additional specs */ }; From 8d1673dbeacf935e6c0381f63bbb4dd3f573f9b3 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Tue, 16 Jan 2018 09:35:40 +0800 Subject: [PATCH 09/17] Rename test cases for avoiding conflict --- ...stance-OK.asn1 => 160-multiple-parameterized-instance-OK.asn1} | 0 ...tiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/tests-asn1c-compiler/{158-multiple-parameterized-instance-OK.asn1 => 160-multiple-parameterized-instance-OK.asn1} (100%) rename tests/tests-asn1c-compiler/{158-multiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names => 160-multiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names} (100%) diff --git a/tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1 b/tests/tests-asn1c-compiler/160-multiple-parameterized-instance-OK.asn1 similarity index 100% rename from tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1 rename to tests/tests-asn1c-compiler/160-multiple-parameterized-instance-OK.asn1 diff --git a/tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names b/tests/tests-asn1c-compiler/160-multiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names similarity index 100% rename from tests/tests-asn1c-compiler/158-multiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names rename to tests/tests-asn1c-compiler/160-multiple-parameterized-instance-OK.asn1.-Pgen-PERfcompound-names From e436f61aa7fcd336e65c317b425b098713d67192 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Tue, 16 Jan 2018 09:38:23 +0800 Subject: [PATCH 10/17] Generate asn_constant.h Currently, there is no code generated for following ASN.1 excerpt. Thus application is not aware of these values. maxnoofErrors INTEGER ::= 256 maxnoofBPLMNs INTEGER ::= 6 maxnoofPLMNsPerMME INTEGER ::= 32 maxnoofEPLMNs INTEGER ::= 15 ... This commit generate asn_constant.h which has the following macro defitions : #define maxnoofErrors (256) #define maxnoofBPLMNs (6) #define maxnoofPLMNsPerMME (32) #define maxnoofEPLMNs (15) #define maxnoofEPLMNsPlusOne (16) ... It only handles ASN_BASIC_INTEGER type. Other built-in types shall be added in the future. --- libasn1compiler/asn1c_save.c | 49 ++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/libasn1compiler/asn1c_save.c b/libasn1compiler/asn1c_save.c index 79f3b244c..cf6ea0f4d 100644 --- a/libasn1compiler/asn1c_save.c +++ b/libasn1compiler/asn1c_save.c @@ -54,6 +54,7 @@ static int pdu_collection_has_unused_types(arg_t *arg); static const char *generate_pdu_C_definition(void); static void asn1c__cleanup_pdu_type(void); static int asn1c__pdu_type_lookup(const char *typename); +static int generate_constant_file(arg_t *arg, const char *destdir); static int asn1c__save_library_makefile(arg_t *arg, const asn1c_dep_chainset *deps, @@ -436,6 +437,8 @@ asn1c_save_compiled_output(arg_t *arg, const char *datadir, const char *destdir, asn1c_dep_chainset_free(deps); asn1c__cleanup_pdu_type(); + generate_constant_file(arg, destdir); + return ret; } @@ -944,3 +947,49 @@ include_type_to_pdu_collection(arg_t *arg) { return 0; } + +static abuf * +generate_constant_collection(arg_t *arg) { + asn1p_module_t *mod; + abuf *buf = abuf_new(); + + abuf_printf(buf, "/*\n * Generated by asn1c-" VERSION + " (http://lionet.info/asn1c)\n */\n\n"); + abuf_printf(buf, "#ifndef _ASN_CONSTANT_H\n#define _ASN_CONSTANT_H\n\n"); + + abuf_printf(buf, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n"); + + TQ_FOR(mod, &(arg->asn->modules), mod_next) { + TQ_FOR(arg->expr, &(mod->members), next) { + if(arg->expr->meta_type != AMT_VALUE) + continue; + + if(arg->expr->expr_type == ASN_BASIC_INTEGER) { + abuf_printf(buf, "#define %s (%s)\n", + asn1c_make_identifier(0, arg->expr, 0), + asn1p_itoa(arg->expr->value->value.v_integer)); + } + } + } + + abuf_printf(buf, "\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* _ASN_CONSTANT_H */\n"); + return buf; +} + +static int +generate_constant_file(arg_t *arg, const char *destdir) { + abuf *buf = generate_constant_collection(arg); + assert(buf); + + FILE *fp = asn1c_open_file(destdir, "asn_constant", ".h", 0); + if(fp == NULL) { + perror("asn_constant.h"); + return -1; + } + safe_fwrite(buf->buffer, buf->length, 1, fp); + fclose(fp); + abuf_free(buf); + + safe_fprintf(stderr, "Generated asn_constant.h\n"); + return 0; +} From 8d0f6857eb032b04558a12d9a6757efd717e8f46 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Tue, 16 Jan 2018 09:46:42 +0800 Subject: [PATCH 11/17] Generate constant variables reference to user defined types Currently, there is no code generated for following ASN.1 excerpt. Thus application is not aware of these values. ProtocolIE-ID ::= INTEGER (0..65535) id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 id-HandoverType ProtocolIE-ID ::= 1 id-Cause ProtocolIE-ID ::= 2 id-SourceID ProtocolIE-ID ::= 3 ... ProcedureCode ::= INTEGER (0..255) id-HandoverPreparation ProcedureCode ::= 0 id-HandoverResourceAllocation ProcedureCode ::= 1 id-HandoverNotification ProcedureCode ::= 2 id-PathSwitchRequest ProcedureCode ::= 3 ... This commit adds corresponding macro definitions in ProtocolIE-ID.h and ProcedureCode.h respectively. #define ProtocolIE_ID_id_MME_UE_S1AP_ID ((ProtocolIE_ID_t)0) #define ProtocolIE_ID_id_HandoverType ((ProtocolIE_ID_t)1) #define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)2) #define ProtocolIE_ID_id_SourceID ((ProtocolIE_ID_t)3) ... #define ProcedureCode_id_HandoverPreparation ((ProcedureCode_t)0) #define ProcedureCode_id_HandoverResourceAllocation ((ProcedureCode_t)1) #define ProcedureCode_id_HandoverNotification ((ProcedureCode_t)2) #define ProcedureCode_id_PathSwitchRequest ((ProcedureCode_t)3) ... Only types of ASN_BASIC_INTEGER and ASN_BASIC_ENUMERATED referenced by these constant variables are handled. Other built-in types shall be added in the future. --- libasn1compiler/asn1c_C.c | 34 ++++++++++++++++++++++++++ libasn1compiler/asn1c_C.h | 3 +++ libasn1compiler/asn1c_save.c | 44 ++++++++++++++++++++++++---------- libasn1compiler/asn1compiler.c | 3 +-- libasn1compiler/asn1compiler.h | 2 ++ 5 files changed, 71 insertions(+), 15 deletions(-) diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c index d43811970..625784402 100644 --- a/libasn1compiler/asn1c_C.c +++ b/libasn1compiler/asn1c_C.c @@ -1213,6 +1213,40 @@ asn1c_lang_C_type_CHOICE_def(arg_t *arg) { return 0; } /* _CHOICE_def() */ +int +asn1c_lang_C_type_REFERENCE_Value(arg_t *arg) { + arg_t tmp = *arg; + asn1p_expr_t *expr, *ref_type; + int saved_target; + + expr = arg->expr; + ref_type = WITH_MODULE_NAMESPACE( + tmp.expr->module, expr_ns, + asn1f_lookup_symbol_ex(tmp.asn, expr_ns, tmp.expr, + arg->expr->reference)); + if(!ref_type) + return 0; + + if(!ref_type->data) + asn1c_attach_streams(ref_type); + + arg->target = ref_type->data; + saved_target = arg->target->target; + REDIR(OT_FUNC_DECLS); + + if((ref_type->expr_type == ASN_BASIC_INTEGER) || + (ref_type->expr_type == ASN_BASIC_ENUMERATED)) { + OUT("#define %s_", MKID(ref_type)); + OUT("%s\t", MKID(expr)); + OUT("((%s)", asn1c_type_name(arg, expr, TNF_CTYPE)); + OUT("%s)\n", asn1p_itoa(expr->value->value.v_integer)); + } + + REDIR(saved_target); + arg->target = tmp.target; + return 0; +} + int asn1c_lang_C_type_REFERENCE(arg_t *arg) { asn1p_ref_t *ref; diff --git a/libasn1compiler/asn1c_C.h b/libasn1compiler/asn1c_C.h index 49362f485..26c294021 100644 --- a/libasn1compiler/asn1c_C.h +++ b/libasn1compiler/asn1c_C.h @@ -15,8 +15,11 @@ int asn1c_lang_C_type_common_INTEGER(arg_t *); int asn1c_lang_C_type_BIT_STRING(arg_t *); int asn1c_lang_C_type_REAL(arg_t *); int asn1c_lang_C_type_SIMPLE_TYPE(arg_t *); +int asn1c_lang_C_type_REFERENCE_Value(arg_t *); static asn1_language_map_t asn1_lang_C[] __attribute__ ((unused)) = { + { AMT_VALUE, A1TC_REFERENCE, asn1c_lang_C_type_REFERENCE_Value }, + { AMT_TYPE, A1TC_REFERENCE, asn1c_lang_C_type_REFERENCE }, { AMT_TYPEREF, A1TC_REFERENCE, asn1c_lang_C_type_REFERENCE }, { AMT_TYPE, A1TC_EXTENSIBLE, asn1c_lang_C_type_EXTENSIBLE }, diff --git a/libasn1compiler/asn1c_save.c b/libasn1compiler/asn1c_save.c index cf6ea0f4d..fa6cefecf 100644 --- a/libasn1compiler/asn1c_save.c +++ b/libasn1compiler/asn1c_save.c @@ -73,7 +73,8 @@ asn1c__save_library_makefile(arg_t *arg, const asn1c_dep_chainset *deps, TQ_FOR(mod, &(arg->asn->modules), mod_next) { TQ_FOR(arg->expr, &(mod->members), next) { if(asn1_lang_map[arg->expr->meta_type] - [arg->expr->expr_type].type_cb) { + [arg->expr->expr_type].type_cb && + (arg->expr->meta_type != AMT_VALUE)) { safe_fprintf(mkf, "\t\\\n\t%s%s.c", destdir, asn1c_make_identifier(AMI_MASK_ONLY_SPACES, arg->expr, 0)); } @@ -83,7 +84,8 @@ asn1c__save_library_makefile(arg_t *arg, const asn1c_dep_chainset *deps, TQ_FOR(mod, &(arg->asn->modules), mod_next) { TQ_FOR(arg->expr, &(mod->members), next) { if(asn1_lang_map[arg->expr->meta_type] - [arg->expr->expr_type].type_cb) { + [arg->expr->expr_type].type_cb && + (arg->expr->meta_type != AMT_VALUE)) { safe_fprintf( mkf, "\t\\\n\t%s%s.h", destdir, asn1c_make_identifier(AMI_MASK_ONLY_SPACES, arg->expr, 0)); @@ -395,7 +397,8 @@ asn1c_save_compiled_output(arg_t *arg, const char *datadir, const char *destdir, TQ_FOR(mod, &(arg->asn->modules), mod_next) { TQ_FOR(arg->expr, &(mod->members), next) { if(asn1_lang_map[arg->expr->meta_type][arg->expr->expr_type] - .type_cb) { + .type_cb && + (arg->expr->meta_type != AMT_VALUE)) { ret = asn1c_dump_streams(arg, deps, destdir, optc, argv); if(ret) break; } @@ -927,7 +930,8 @@ pdu_collection_has_unused_types(arg_t *arg) { static enum include_type_result include_type_to_pdu_collection(arg_t *arg) { - if(!asn1_lang_map[arg->expr->meta_type][arg->expr->expr_type].type_cb) + if(!asn1_lang_map[arg->expr->meta_type][arg->expr->expr_type].type_cb || + (arg->expr->meta_type == AMT_VALUE)) return 0; /* Parameterized types can't serve as PDU's without instantiation. */ @@ -952,6 +956,7 @@ static abuf * generate_constant_collection(arg_t *arg) { asn1p_module_t *mod; abuf *buf = abuf_new(); + int empty_file = 1; abuf_printf(buf, "/*\n * Generated by asn1c-" VERSION " (http://lionet.info/asn1c)\n */\n\n"); @@ -968,28 +973,41 @@ generate_constant_collection(arg_t *arg) { abuf_printf(buf, "#define %s (%s)\n", asn1c_make_identifier(0, arg->expr, 0), asn1p_itoa(arg->expr->value->value.v_integer)); + empty_file = 0; } } } abuf_printf(buf, "\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* _ASN_CONSTANT_H */\n"); + + if(empty_file) { + abuf_free(buf); + return 0; + } return buf; } static int generate_constant_file(arg_t *arg, const char *destdir) { abuf *buf = generate_constant_collection(arg); - assert(buf); - FILE *fp = asn1c_open_file(destdir, "asn_constant", ".h", 0); - if(fp == NULL) { - perror("asn_constant.h"); - return -1; - } - safe_fwrite(buf->buffer, buf->length, 1, fp); - fclose(fp); - abuf_free(buf); + if(!buf) return 0; + + if(arg->flags & A1C_PRINT_COMPILED) { + printf("\n/*** <<< asn_constant.h >>> ***/\n\n"); + safe_fwrite(buf->buffer, buf->length, 1, stdout); + } else { + FILE *fp = asn1c_open_file(destdir, "asn_constant", ".h", 0); + if(fp == NULL) { + perror("asn_constant.h"); + return -1; + } + safe_fwrite(buf->buffer, buf->length, 1, fp); + fclose(fp); + } safe_fprintf(stderr, "Generated asn_constant.h\n"); + + abuf_free(buf); return 0; } diff --git a/libasn1compiler/asn1compiler.c b/libasn1compiler/asn1compiler.c index 2aabdb0d3..c3741bc63 100644 --- a/libasn1compiler/asn1compiler.c +++ b/libasn1compiler/asn1compiler.c @@ -7,7 +7,6 @@ static void default_logger_cb(int, const char *fmt, ...); static int asn1c_compile_expr(arg_t *arg, const asn1c_ioc_table_and_objset_t *); -static int asn1c_attach_streams(asn1p_expr_t *expr); static int asn1c_detach_streams(asn1p_expr_t *expr); int @@ -169,7 +168,7 @@ asn1c_compile_expr(arg_t *arg, const asn1c_ioc_table_and_objset_t *opt_ioc) { return ret; } -static int +int asn1c_attach_streams(asn1p_expr_t *expr) { compiler_streams_t *cs; int i; diff --git a/libasn1compiler/asn1compiler.h b/libasn1compiler/asn1compiler.h index 2901d4079..78cf07feb 100644 --- a/libasn1compiler/asn1compiler.h +++ b/libasn1compiler/asn1compiler.h @@ -110,4 +110,6 @@ void asn1c_debug_type_naming(asn1p_t *asn, enum asn1c_flags, void asn1c__add_pdu_type(const char *typename); +int asn1c_attach_streams(asn1p_expr_t *expr); + #endif /* ASN1_COMPILER_H */ From 6b76c7c7d56303e297d0b155e2946a28266bdae7 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Wed, 24 Jan 2018 19:26:53 +0800 Subject: [PATCH 12/17] Fix problem results from empty ios cells generated For RANAP specification : RANAP-ELEMENTARY-PROCEDURE ::= CLASS { &InitiatingMessage, &SuccessfulOutcome OPTIONAL, &UnsuccessfulOutcome OPTIONAL, &Outcome OPTIONAL, &procedureCode ProcedureCode UNIQUE, &criticality Criticality DEFAULT ignore } WITH SYNTAX { INITIATING MESSAGE &InitiatingMessage [SUCCESSFUL OUTCOME &SuccessfulOutcome] [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] [OUTCOME &Outcome] PROCEDURE CODE &procedureCode [CRITICALITY &criticality] } Not all instances of elementary procedure have all their optional members defined. For examples : iu-Release RANAP-ELEMENTARY-PROCEDURE ::= { INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release CRITICALITY reject } rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= { INITIATING MESSAGE RAB-AssignmentRequest OUTCOME RAB-AssignmentResponse PROCEDURE CODE id-RAB-Assignment CRITICALITY reject } So there are empty cells generated in Outcome.c ... etc. static const asn_ioc_cell_t asn_IOS_RANAP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessage", aioc__type, &asn_DEF_Iu_ReleaseCommand }, { "&SuccessfulOutcome", aioc__type, &asn_DEF_Iu_ReleaseComplete }, { "&UnsuccessfulOutcome", }, { "&Outcome", }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_Iu_Release }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, { "&InitiatingMessage", aioc__type, &asn_DEF_RAB_AssignmentRequest }, { "&SuccessfulOutcome", }, { "&UnsuccessfulOutcome", }, { "&Outcome", aioc__type, &asn_DEF_RAB_AssignmentResponse }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_49_id_RAB_Assignment }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_reject } } However, in type_selector() functions, these undefined cell are still be counted into presence_index value. This results in wrong behavior for decoder. This commit is to fix this problem. --- libasn1compiler/asn1c_C.c | 8 ++++++-- skeletons/asn_ioc.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c index 625784402..b01d648b6 100644 --- a/libasn1compiler/asn1c_C.c +++ b/libasn1compiler/asn1c_C.c @@ -2705,7 +2705,7 @@ emit_member_type_selector(arg_t *arg, asn1p_expr_t *expr, asn1c_ioc_table_and_ob opt_ioc->objset->_type_unique_index); OUT("size_t constraining_column = %zu; /* %s */\n", constraining_column, cfield); OUT("size_t for_column = %zu; /* %s */\n", for_column, for_field); - OUT("size_t row;\n"); + OUT("size_t row, presence_index = 0;\n"); const char *tname = asn1c_type_name(arg, constraining_memb, TNF_SAFE); if(constraining_memb->marker.flags & EM_INDIRECT) { @@ -2740,9 +2740,13 @@ emit_member_type_selector(arg_t *arg, asn1p_expr_t *expr, asn1c_ioc_table_and_ob OUT(" const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];\n"); OUT(" const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];\n"); OUT("\n"); + OUT(" if(type_cell->cell_kind == aioc__undefined)\n"); + OUT(" continue;\n"); + OUT("\n"); + OUT(" presence_index++;\n"); OUT(" if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {\n"); OUT(" result.type_descriptor = type_cell->type_descriptor;\n"); - OUT(" result.presence_index = row + 1;\n"); + OUT(" result.presence_index = presence_index;\n"); OUT(" break;\n"); OUT(" }\n"); OUT("}\n"); diff --git a/skeletons/asn_ioc.h b/skeletons/asn_ioc.h index d2fe3659c..7de210ee0 100644 --- a/skeletons/asn_ioc.h +++ b/skeletons/asn_ioc.h @@ -28,6 +28,7 @@ typedef struct asn_ioc_set_s { typedef struct asn_ioc_cell_s { const char *field_name; /* Is equal to corresponding column_name */ enum { + aioc__undefined = 0, aioc__value, aioc__type, aioc__open_type, From 6eae44212c54edd87f8c07db6b3f4e258b70c2bd Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Tue, 16 Jan 2018 10:30:11 +0800 Subject: [PATCH 13/17] Regenerate test cases --- .../139-component-relation-OK.asn1.-P | 30 ++++- .../140-component-relation-OK.asn1.-P | 30 ++++- .../141-component-relation-OK.asn1.-P | 31 ++++- .../144-ios-parameterization-OK.asn1.-P | 66 ++++++----- ...ios-parameterization-per-OK.asn1.-Pgen-PER | 66 ++++++----- ...tion-more-than-two-level-OK.asn1.-Pgen-PER | 109 +++++++++++------- .../156-union-ios-OK.asn1.-Pgen-PER | 66 ++++++----- .../32-sequence-of-OK.asn1.-P | 22 ++++ .../50-constraint-OK.asn1.-Pfwide-types | 23 ++++ .../50-constraint-OK.asn1.-Pgen-PER | 23 ++++ 10 files changed, 328 insertions(+), 138 deletions(-) diff --git a/tests/tests-asn1c-compiler/139-component-relation-OK.asn1.-P b/tests/tests-asn1c-compiler/139-component-relation-OK.asn1.-P index b732a4659..f58084d4d 100644 --- a/tests/tests-asn1c-compiler/139-component-relation-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/139-component-relation-OK.asn1.-P @@ -86,16 +86,20 @@ select_Frame_value_type(const asn_TYPE_descriptor_t *parent_type, const void *pa const asn_ioc_set_t *itable = asn_IOS_FrameTypes_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &Type */ - size_t row; + size_t row, presence_index = 0; const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Frame, ident)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = row + 1; + result.presence_index = presence_index; break; } } @@ -316,3 +320,25 @@ asn_TYPE_descriptor_t asn_DEF_ComplexMessage = { &asn_SPC_ComplexMessage_specs_1 /* Additional specs */ }; + +/*** <<< asn_constant.h >>> ***/ + +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define basicMessage (1) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/tests/tests-asn1c-compiler/140-component-relation-OK.asn1.-P b/tests/tests-asn1c-compiler/140-component-relation-OK.asn1.-P index b732a4659..f58084d4d 100644 --- a/tests/tests-asn1c-compiler/140-component-relation-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/140-component-relation-OK.asn1.-P @@ -86,16 +86,20 @@ select_Frame_value_type(const asn_TYPE_descriptor_t *parent_type, const void *pa const asn_ioc_set_t *itable = asn_IOS_FrameTypes_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &Type */ - size_t row; + size_t row, presence_index = 0; const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Frame, ident)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = row + 1; + result.presence_index = presence_index; break; } } @@ -316,3 +320,25 @@ asn_TYPE_descriptor_t asn_DEF_ComplexMessage = { &asn_SPC_ComplexMessage_specs_1 /* Additional specs */ }; + +/*** <<< asn_constant.h >>> ***/ + +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define basicMessage (1) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/tests/tests-asn1c-compiler/141-component-relation-OK.asn1.-P b/tests/tests-asn1c-compiler/141-component-relation-OK.asn1.-P index b3e7e4f09..7a15bc472 100644 --- a/tests/tests-asn1c-compiler/141-component-relation-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/141-component-relation-OK.asn1.-P @@ -92,16 +92,20 @@ select_Frame_value_type(const asn_TYPE_descriptor_t *parent_type, const void *pa const asn_ioc_set_t *itable = asn_IOS_FrameTypes_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &Type */ - size_t row; + size_t row, presence_index = 0; const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Frame, ident)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = row + 1; + result.presence_index = presence_index; break; } } @@ -395,3 +399,26 @@ asn_TYPE_descriptor_t asn_DEF_ComplexMessage = { &asn_SPC_ComplexMessage_specs_1 /* Additional specs */ }; + +/*** <<< asn_constant.h >>> ***/ + +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define primMessage (1) +#define cplxMessage (2) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P b/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P index 02c5cf2df..dc6faec88 100644 --- a/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P @@ -7,7 +7,7 @@ /*** <<< TYPE-DECLS [Message] >>> ***/ typedef struct Message { - RegionalExtension_30P0_t content; + RegionalExtension_t content; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -23,7 +23,7 @@ static asn_TYPE_member_t asn_MBR_Message_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Message, content), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, - .type = &asn_DEF_RegionalExtension_30P0, + .type = &asn_DEF_RegionalExtension, .type_selector = 0, { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 }, 0, 0, /* No default value */ @@ -81,11 +81,11 @@ typedef enum value_PR { /*** <<< TYPE-DECLS [SpecializedContent] >>> ***/ -typedef struct RegionalExtension_30P0 { +typedef struct RegionalExtension { long id; struct value { value_PR present; - union RegionalExtension_30P0__value_u { + union RegionalExtension__value_u { long INTEGER; BOOLEAN_t BOOLEAN; } choice; @@ -96,13 +96,13 @@ typedef struct RegionalExtension_30P0 { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} RegionalExtension_30P0_t; +} RegionalExtension_t; /*** <<< FUNC-DECLS [SpecializedContent] >>> ***/ -extern asn_TYPE_descriptor_t asn_DEF_RegionalExtension_30P0; -extern asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_30P0_specs_1; -extern asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_RegionalExtension; +extern asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_specs_1; +extern asn_TYPE_member_t asn_MBR_RegionalExtension_1[2]; /*** <<< IOC-TABLES [SpecializedContent] >>> ***/ @@ -140,21 +140,25 @@ memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RegionalExtension_30P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RegionalExtension_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_RegionalExtension_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &Type */ - size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RegionalExtension_30P0, id)); + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RegionalExtension, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = row + 1; + result.presence_index = presence_index; break; } } @@ -233,8 +237,8 @@ asn_TYPE_descriptor_t asn_DEF_value_3 = { &asn_SPC_value_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RegionalExtension_30P0, id), +asn_TYPE_member_t asn_MBR_RegionalExtension_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegionalExtension, id), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = &asn_DEF_NativeInteger, @@ -243,43 +247,43 @@ asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[] = { 0, 0, /* No default value */ .name = "id" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RegionalExtension_30P0, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RegionalExtension, value), .tag = -1 /* Ambiguous tag (ANY?) */, .tag_mode = 0, .type = &asn_DEF_value_3, - .type_selector = select_RegionalExtension_30P0_value_type, + .type_selector = select_RegionalExtension_value_type, { .oer_constraints = 0, .per_constraints = 0, .general_constraints = memb_value_constraint_1 }, 0, 0, /* No default value */ .name = "value" }, }; -static const ber_tlv_tag_t asn_DEF_RegionalExtension_30P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_RegionalExtension_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RegionalExtension_30P0_tag2el_1[] = { +static const asn_TYPE_tag2member_t asn_MAP_RegionalExtension_tag2el_1[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* id */ }; -asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_30P0_specs_1 = { - sizeof(struct RegionalExtension_30P0), - offsetof(struct RegionalExtension_30P0, _asn_ctx), - .tag2el = asn_MAP_RegionalExtension_30P0_tag2el_1, +asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_specs_1 = { + sizeof(struct RegionalExtension), + offsetof(struct RegionalExtension, _asn_ctx), + .tag2el = asn_MAP_RegionalExtension_tag2el_1, .tag2el_count = 1, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RegionalExtension_30P0 = { +asn_TYPE_descriptor_t asn_DEF_RegionalExtension = { "RegionalExtension", "RegionalExtension", &asn_OP_SEQUENCE, - asn_DEF_RegionalExtension_30P0_tags_1, - sizeof(asn_DEF_RegionalExtension_30P0_tags_1) - /sizeof(asn_DEF_RegionalExtension_30P0_tags_1[0]), /* 1 */ - asn_DEF_RegionalExtension_30P0_tags_1, /* Same as above */ - sizeof(asn_DEF_RegionalExtension_30P0_tags_1) - /sizeof(asn_DEF_RegionalExtension_30P0_tags_1[0]), /* 1 */ + asn_DEF_RegionalExtension_tags_1, + sizeof(asn_DEF_RegionalExtension_tags_1) + /sizeof(asn_DEF_RegionalExtension_tags_1[0]), /* 1 */ + asn_DEF_RegionalExtension_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionalExtension_tags_1) + /sizeof(asn_DEF_RegionalExtension_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RegionalExtension_30P0_1, + asn_MBR_RegionalExtension_1, 2, /* Elements count */ - &asn_SPC_RegionalExtension_30P0_specs_1 /* Additional specs */ + &asn_SPC_RegionalExtension_specs_1 /* Additional specs */ }; diff --git a/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER index 6d9fdd35f..79f1b6a00 100644 --- a/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER @@ -7,7 +7,7 @@ /*** <<< TYPE-DECLS [Message] >>> ***/ typedef struct Message { - RegionalExtension_30P0_t content; + RegionalExtension_t content; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -23,7 +23,7 @@ static asn_TYPE_member_t asn_MBR_Message_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Message, content), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, - .type = &asn_DEF_RegionalExtension_30P0, + .type = &asn_DEF_RegionalExtension, .type_selector = 0, { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 }, 0, 0, /* No default value */ @@ -81,11 +81,11 @@ typedef enum value_PR { /*** <<< TYPE-DECLS [SpecializedContent] >>> ***/ -typedef struct RegionalExtension_30P0 { +typedef struct RegionalExtension { long id; struct value { value_PR present; - union RegionalExtension_30P0__value_u { + union RegionalExtension__value_u { long INTEGER; BOOLEAN_t BOOLEAN; } choice; @@ -96,13 +96,13 @@ typedef struct RegionalExtension_30P0 { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} RegionalExtension_30P0_t; +} RegionalExtension_t; /*** <<< FUNC-DECLS [SpecializedContent] >>> ***/ -extern asn_TYPE_descriptor_t asn_DEF_RegionalExtension_30P0; -extern asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_30P0_specs_1; -extern asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_RegionalExtension; +extern asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_specs_1; +extern asn_TYPE_member_t asn_MBR_RegionalExtension_1[2]; /*** <<< IOC-TABLES [SpecializedContent] >>> ***/ @@ -140,21 +140,25 @@ memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RegionalExtension_30P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RegionalExtension_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_RegionalExtension_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &Type */ - size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RegionalExtension_30P0, id)); + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RegionalExtension, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = row + 1; + result.presence_index = presence_index; break; } } @@ -249,8 +253,8 @@ asn_TYPE_descriptor_t asn_DEF_value_3 = { &asn_SPC_value_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RegionalExtension_30P0, id), +asn_TYPE_member_t asn_MBR_RegionalExtension_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegionalExtension, id), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = &asn_DEF_NativeInteger, @@ -259,43 +263,43 @@ asn_TYPE_member_t asn_MBR_RegionalExtension_30P0_1[] = { 0, 0, /* No default value */ .name = "id" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RegionalExtension_30P0, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RegionalExtension, value), .tag = -1 /* Ambiguous tag (ANY?) */, .tag_mode = 0, .type = &asn_DEF_value_3, - .type_selector = select_RegionalExtension_30P0_value_type, + .type_selector = select_RegionalExtension_value_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_value_constr_3, .general_constraints = memb_value_constraint_1 }, 0, 0, /* No default value */ .name = "value" }, }; -static const ber_tlv_tag_t asn_DEF_RegionalExtension_30P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_RegionalExtension_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RegionalExtension_30P0_tag2el_1[] = { +static const asn_TYPE_tag2member_t asn_MAP_RegionalExtension_tag2el_1[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* id */ }; -asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_30P0_specs_1 = { - sizeof(struct RegionalExtension_30P0), - offsetof(struct RegionalExtension_30P0, _asn_ctx), - .tag2el = asn_MAP_RegionalExtension_30P0_tag2el_1, +asn_SEQUENCE_specifics_t asn_SPC_RegionalExtension_specs_1 = { + sizeof(struct RegionalExtension), + offsetof(struct RegionalExtension, _asn_ctx), + .tag2el = asn_MAP_RegionalExtension_tag2el_1, .tag2el_count = 1, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RegionalExtension_30P0 = { +asn_TYPE_descriptor_t asn_DEF_RegionalExtension = { "RegionalExtension", "RegionalExtension", &asn_OP_SEQUENCE, - asn_DEF_RegionalExtension_30P0_tags_1, - sizeof(asn_DEF_RegionalExtension_30P0_tags_1) - /sizeof(asn_DEF_RegionalExtension_30P0_tags_1[0]), /* 1 */ - asn_DEF_RegionalExtension_30P0_tags_1, /* Same as above */ - sizeof(asn_DEF_RegionalExtension_30P0_tags_1) - /sizeof(asn_DEF_RegionalExtension_30P0_tags_1[0]), /* 1 */ + asn_DEF_RegionalExtension_tags_1, + sizeof(asn_DEF_RegionalExtension_tags_1) + /sizeof(asn_DEF_RegionalExtension_tags_1[0]), /* 1 */ + asn_DEF_RegionalExtension_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionalExtension_tags_1) + /sizeof(asn_DEF_RegionalExtension_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RegionalExtension_30P0_1, + asn_MBR_RegionalExtension_1, 2, /* Elements count */ - &asn_SPC_RegionalExtension_30P0_specs_1 /* Additional specs */ + &asn_SPC_RegionalExtension_specs_1 /* Additional specs */ }; diff --git a/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER index 487518838..8adf18064 100644 --- a/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER @@ -9,6 +9,7 @@ typedef long PacketId_t; /*** <<< FUNC-DECLS [PacketId] >>> ***/ +#define PacketId_id_TYPE1 ((PacketId_t)1) extern asn_per_constraints_t asn_PER_type_PacketId_constr_1; extern asn_TYPE_descriptor_t asn_DEF_PacketId; asn_struct_free_f PacketId_free; @@ -501,7 +502,7 @@ asn_TYPE_descriptor_t asn_DEF_LowerLayer_List_45P0 = { /*** <<< TYPE-DECLS [SinglePacket] >>> ***/ -typedef ClassItem_51P0_t SinglePacket_48P0_t; +typedef ClassItem_t SinglePacket_48P0_t; /*** <<< FUNC-DECLS [SinglePacket] >>> ***/ @@ -519,7 +520,7 @@ per_type_encoder_f SinglePacket_48P0_encode_uper; /*** <<< CODE [SinglePacket] >>> ***/ /* - * This type is implemented using ClassItem_51P0, + * This type is implemented using ClassItem, * so here we adjust the DEF accordingly. */ @@ -539,9 +540,9 @@ asn_TYPE_descriptor_t asn_DEF_SinglePacket_48P0 = { sizeof(asn_DEF_SinglePacket_48P0_tags_1) /sizeof(asn_DEF_SinglePacket_48P0_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ClassItem_51P0_1, + asn_MBR_ClassItem_1, 3, /* Elements count */ - &asn_SPC_ClassItem_51P0_specs_1 /* Additional specs */ + &asn_SPC_ClassItem_specs_1 /* Additional specs */ }; @@ -566,12 +567,12 @@ typedef enum value_PR { /*** <<< TYPE-DECLS [Packet] >>> ***/ -typedef struct ClassItem_51P0 { +typedef struct ClassItem { PacketId_t id; Color_t color; struct value { value_PR present; - union ClassItem_51P0__value_u { + union ClassItem__value_u { OCTET_STRING_t OCTET_STRING; } choice; @@ -581,13 +582,13 @@ typedef struct ClassItem_51P0 { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ClassItem_51P0_t; +} ClassItem_t; /*** <<< FUNC-DECLS [Packet] >>> ***/ -extern asn_TYPE_descriptor_t asn_DEF_ClassItem_51P0; -extern asn_SEQUENCE_specifics_t asn_SPC_ClassItem_51P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ClassItem_51P0_1[3]; +extern asn_TYPE_descriptor_t asn_DEF_ClassItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ClassItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ClassItem_1[3]; /*** <<< IOC-TABLES [Packet] >>> ***/ @@ -632,21 +633,25 @@ memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ClassItem_51P0_color_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_ClassItem_color_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_ClassItem_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &color */ - size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ClassItem_51P0, id)); + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ClassItem, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = row + 1; + result.presence_index = presence_index; break; } } @@ -674,21 +679,25 @@ memb_color_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ClassItem_51P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_ClassItem_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_ClassItem_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ - size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ClassItem_51P0, id)); + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ClassItem, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = row + 1; + result.presence_index = presence_index; break; } } @@ -775,8 +784,8 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { &asn_SPC_value_specs_4 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ClassItem_51P0_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ClassItem_51P0, id), +asn_TYPE_member_t asn_MBR_ClassItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ClassItem, id), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = &asn_DEF_PacketId, @@ -785,53 +794,75 @@ asn_TYPE_member_t asn_MBR_ClassItem_51P0_1[] = { 0, 0, /* No default value */ .name = "id" }, - { ATF_NOFLAGS, 0, offsetof(struct ClassItem_51P0, color), + { ATF_NOFLAGS, 0, offsetof(struct ClassItem, color), .tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), .tag_mode = 0, .type = &asn_DEF_Color, - .type_selector = select_ClassItem_51P0_color_type, + .type_selector = select_ClassItem_color_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_color_constr_3, .general_constraints = memb_color_constraint_1 }, 0, 0, /* No default value */ .name = "color" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ClassItem_51P0, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ClassItem, value), .tag = -1 /* Ambiguous tag (ANY?) */, .tag_mode = 0, .type = &asn_DEF_value_4, - .type_selector = select_ClassItem_51P0_value_type, + .type_selector = select_ClassItem_value_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_value_constr_4, .general_constraints = memb_value_constraint_1 }, 0, 0, /* No default value */ .name = "value" }, }; -static const ber_tlv_tag_t asn_DEF_ClassItem_51P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ClassItem_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ClassItem_51P0_tag2el_1[] = { +static const asn_TYPE_tag2member_t asn_MAP_ClassItem_tag2el_1[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* color */ }; -asn_SEQUENCE_specifics_t asn_SPC_ClassItem_51P0_specs_1 = { - sizeof(struct ClassItem_51P0), - offsetof(struct ClassItem_51P0, _asn_ctx), - .tag2el = asn_MAP_ClassItem_51P0_tag2el_1, +asn_SEQUENCE_specifics_t asn_SPC_ClassItem_specs_1 = { + sizeof(struct ClassItem), + offsetof(struct ClassItem, _asn_ctx), + .tag2el = asn_MAP_ClassItem_tag2el_1, .tag2el_count = 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_ClassItem_51P0 = { +asn_TYPE_descriptor_t asn_DEF_ClassItem = { "ClassItem", "ClassItem", &asn_OP_SEQUENCE, - asn_DEF_ClassItem_51P0_tags_1, - sizeof(asn_DEF_ClassItem_51P0_tags_1) - /sizeof(asn_DEF_ClassItem_51P0_tags_1[0]), /* 1 */ - asn_DEF_ClassItem_51P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ClassItem_51P0_tags_1) - /sizeof(asn_DEF_ClassItem_51P0_tags_1[0]), /* 1 */ + asn_DEF_ClassItem_tags_1, + sizeof(asn_DEF_ClassItem_tags_1) + /sizeof(asn_DEF_ClassItem_tags_1[0]), /* 1 */ + asn_DEF_ClassItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ClassItem_tags_1) + /sizeof(asn_DEF_ClassItem_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ClassItem_51P0_1, + asn_MBR_ClassItem_1, 3, /* Elements count */ - &asn_SPC_ClassItem_51P0_specs_1 /* Additional specs */ + &asn_SPC_ClassItem_specs_1 /* Additional specs */ }; + +/*** <<< asn_constant.h >>> ***/ + +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define max_items (256) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER index 16cfde8ab..a19544d58 100644 --- a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER @@ -7,7 +7,7 @@ /*** <<< TYPE-DECLS [Message] >>> ***/ typedef struct Message { - TotalRegionExtension_42P0_t content; + TotalRegionExtension_t content; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -23,7 +23,7 @@ static asn_TYPE_member_t asn_MBR_Message_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Message, content), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, - .type = &asn_DEF_TotalRegionExtension_42P0, + .type = &asn_DEF_TotalRegionExtension, .type_selector = 0, { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 }, 0, 0, /* No default value */ @@ -83,11 +83,11 @@ typedef enum value_PR { /*** <<< TYPE-DECLS [SpecializedContent] >>> ***/ -typedef struct TotalRegionExtension_42P0 { +typedef struct TotalRegionExtension { long id; struct value { value_PR present; - union TotalRegionExtension_42P0__value_u { + union TotalRegionExtension__value_u { long INTEGER; BOOLEAN_t BOOLEAN; OCTET_STRING_t OCTET_STRING; @@ -99,13 +99,13 @@ typedef struct TotalRegionExtension_42P0 { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} TotalRegionExtension_42P0_t; +} TotalRegionExtension_t; /*** <<< FUNC-DECLS [SpecializedContent] >>> ***/ -extern asn_TYPE_descriptor_t asn_DEF_TotalRegionExtension_42P0; -extern asn_SEQUENCE_specifics_t asn_SPC_TotalRegionExtension_42P0_specs_1; -extern asn_TYPE_member_t asn_MBR_TotalRegionExtension_42P0_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_TotalRegionExtension; +extern asn_SEQUENCE_specifics_t asn_SPC_TotalRegionExtension_specs_1; +extern asn_TYPE_member_t asn_MBR_TotalRegionExtension_1[2]; /*** <<< IOC-TABLES [SpecializedContent] >>> ***/ @@ -155,21 +155,25 @@ memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_TotalRegionExtension_42P0_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_TotalRegionExtension_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; const asn_ioc_set_t *itable = asn_IOS_TotalRegionExtension_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &Type */ - size_t row; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TotalRegionExtension_42P0, id)); + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TotalRegionExtension, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = row + 1; + result.presence_index = presence_index; break; } } @@ -274,8 +278,8 @@ asn_TYPE_descriptor_t asn_DEF_value_3 = { &asn_SPC_value_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_TotalRegionExtension_42P0_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TotalRegionExtension_42P0, id), +asn_TYPE_member_t asn_MBR_TotalRegionExtension_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TotalRegionExtension, id), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = &asn_DEF_NativeInteger, @@ -284,43 +288,43 @@ asn_TYPE_member_t asn_MBR_TotalRegionExtension_42P0_1[] = { 0, 0, /* No default value */ .name = "id" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TotalRegionExtension_42P0, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TotalRegionExtension, value), .tag = -1 /* Ambiguous tag (ANY?) */, .tag_mode = 0, .type = &asn_DEF_value_3, - .type_selector = select_TotalRegionExtension_42P0_value_type, + .type_selector = select_TotalRegionExtension_value_type, { .oer_constraints = 0, .per_constraints = &asn_PER_memb_value_constr_3, .general_constraints = memb_value_constraint_1 }, 0, 0, /* No default value */ .name = "value" }, }; -static const ber_tlv_tag_t asn_DEF_TotalRegionExtension_42P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_TotalRegionExtension_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_TotalRegionExtension_42P0_tag2el_1[] = { +static const asn_TYPE_tag2member_t asn_MAP_TotalRegionExtension_tag2el_1[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* id */ }; -asn_SEQUENCE_specifics_t asn_SPC_TotalRegionExtension_42P0_specs_1 = { - sizeof(struct TotalRegionExtension_42P0), - offsetof(struct TotalRegionExtension_42P0, _asn_ctx), - .tag2el = asn_MAP_TotalRegionExtension_42P0_tag2el_1, +asn_SEQUENCE_specifics_t asn_SPC_TotalRegionExtension_specs_1 = { + sizeof(struct TotalRegionExtension), + offsetof(struct TotalRegionExtension, _asn_ctx), + .tag2el = asn_MAP_TotalRegionExtension_tag2el_1, .tag2el_count = 1, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_TotalRegionExtension_42P0 = { +asn_TYPE_descriptor_t asn_DEF_TotalRegionExtension = { "TotalRegionExtension", "TotalRegionExtension", &asn_OP_SEQUENCE, - asn_DEF_TotalRegionExtension_42P0_tags_1, - sizeof(asn_DEF_TotalRegionExtension_42P0_tags_1) - /sizeof(asn_DEF_TotalRegionExtension_42P0_tags_1[0]), /* 1 */ - asn_DEF_TotalRegionExtension_42P0_tags_1, /* Same as above */ - sizeof(asn_DEF_TotalRegionExtension_42P0_tags_1) - /sizeof(asn_DEF_TotalRegionExtension_42P0_tags_1[0]), /* 1 */ + asn_DEF_TotalRegionExtension_tags_1, + sizeof(asn_DEF_TotalRegionExtension_tags_1) + /sizeof(asn_DEF_TotalRegionExtension_tags_1[0]), /* 1 */ + asn_DEF_TotalRegionExtension_tags_1, /* Same as above */ + sizeof(asn_DEF_TotalRegionExtension_tags_1) + /sizeof(asn_DEF_TotalRegionExtension_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_TotalRegionExtension_42P0_1, + asn_MBR_TotalRegionExtension_1, 2, /* Elements count */ - &asn_SPC_TotalRegionExtension_42P0_specs_1 /* Additional specs */ + &asn_SPC_TotalRegionExtension_specs_1 /* Additional specs */ }; diff --git a/tests/tests-asn1c-compiler/32-sequence-of-OK.asn1.-P b/tests/tests-asn1c-compiler/32-sequence-of-OK.asn1.-P index 2f734141c..4a7298b38 100644 --- a/tests/tests-asn1c-compiler/32-sequence-of-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/32-sequence-of-OK.asn1.-P @@ -428,3 +428,25 @@ asn_TYPE_descriptor_t asn_DEF_SeqWithOptional = { &asn_SPC_SeqWithOptional_specs_1 /* Additional specs */ }; + +/*** <<< asn_constant.h >>> ***/ + +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define maxSize (10) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pfwide-types index 32fbaeb61..a5863e501 100644 --- a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pfwide-types +++ b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pfwide-types @@ -17,6 +17,7 @@ ber_type_decoder_f Int1_decode_ber; der_type_encoder_f Int1_encode_der; xer_type_decoder_f Int1_decode_xer; xer_type_encoder_f Int1_encode_xer; +#define Int1_ten ((Int1_t)10) /*** <<< CODE [Int1] >>> ***/ @@ -2548,3 +2549,25 @@ asn_TYPE_descriptor_t asn_DEF_Identifier = { 0 /* No specifics */ }; + +/*** <<< asn_constant.h >>> ***/ + +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define maxIdentifier (32) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER index 3f6669ed8..7589005c0 100644 --- a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER @@ -19,6 +19,7 @@ xer_type_decoder_f Int1_decode_xer; xer_type_encoder_f Int1_encode_xer; per_type_decoder_f Int1_decode_uper; per_type_encoder_f Int1_encode_uper; +#define Int1_ten ((Int1_t)10) /*** <<< CODE [Int1] >>> ***/ @@ -2835,3 +2836,25 @@ asn_TYPE_descriptor_t asn_DEF_Identifier = { 0 /* No specifics */ }; + +/*** <<< asn_constant.h >>> ***/ + +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define maxIdentifier (32) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ From 1979a0975e4a273322bde3085f58d268cf279db7 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Fri, 2 Feb 2018 22:56:30 +0800 Subject: [PATCH 14/17] Add OER encoder stub to asn_OP_OPEN_TYPE structure --- skeletons/OPEN_TYPE.c | 7 ++++++- skeletons/OPEN_TYPE.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/skeletons/OPEN_TYPE.c b/skeletons/OPEN_TYPE.c index c672992ca..888998d86 100644 --- a/skeletons/OPEN_TYPE.c +++ b/skeletons/OPEN_TYPE.c @@ -16,7 +16,12 @@ asn_TYPE_operation_t asn_OP_OPEN_TYPE = { OPEN_TYPE_encode_der, OPEN_TYPE_decode_xer, OPEN_TYPE_encode_xer, - 0, 0, /* No OER support, use "-gen-OER" to enable */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, 0, /* No OER support, use "-gen-OER" to enable */ +#else + OPEN_TYPE_decode_oer, + OPEN_TYPE_encode_oer, +#endif #ifdef ASN_DISABLE_PER_SUPPORT 0, 0, #else diff --git a/skeletons/OPEN_TYPE.h b/skeletons/OPEN_TYPE.h index d0f02fd79..040a87369 100644 --- a/skeletons/OPEN_TYPE.h +++ b/skeletons/OPEN_TYPE.h @@ -19,6 +19,8 @@ extern "C" { #define OPEN_TYPE_encode_der CHOICE_encode_der #define OPEN_TYPE_decode_xer NULL #define OPEN_TYPE_encode_xer CHOICE_encode_xer +#define OPEN_TYPE_decode_oer NULL +#define OPEN_TYPE_encode_oer CHOICE_encode_oer #define OPEN_TYPE_decode_uper NULL extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; From 071fc8953372059f9b00a6395ed0da8c18b69659 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Thu, 8 Feb 2018 22:12:16 +0800 Subject: [PATCH 15/17] Prefix generated types using a ASN1C_PREFIX environment variable When generating code for multiple ASN.1 syntaxes that have clashing names, we need to add a prefix in order to prevent clashes in the global C symbol namespace. Using the ASN1C_PREFIX environment variable and this patch serves as a work-around to that. All non-basic type names as well as references to that type and source code + header file names will be pre-fixed accordingly. This is a re-implementation of this feature due to osmocom's implementation version can not work on newest asn1c repository. --- libasn1compiler/asn1c_C.c | 10 +++--- libasn1compiler/asn1c_ioc.c | 2 +- libasn1compiler/asn1c_misc.c | 37 ++++++++++++++++----- libasn1compiler/asn1c_misc.h | 1 + libasn1compiler/asn1c_naming.c | 59 +++++++++++++++++++++------------- libasn1compiler/asn1c_save.c | 33 +++++++++++-------- 6 files changed, 93 insertions(+), 49 deletions(-) diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c index b01d648b6..2f988cb75 100644 --- a/libasn1compiler/asn1c_C.c +++ b/libasn1compiler/asn1c_C.c @@ -94,7 +94,7 @@ static int emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode } while(0) /* MKID_safe() without checking for reserved keywords */ -#define MKID(expr) (asn1c_make_identifier(0, expr, 0)) +#define MKID(expr) (asn1c_make_identifier(AMI_USE_PREFIX, expr, 0)) #define MKID_safe(expr) (asn1c_make_identifier(AMI_CHECK_RESERVED, expr, 0)) int @@ -389,7 +389,7 @@ asn1c_lang_C_type_SEQUENCE(arg_t *arg) { c_name(arg).base_name); } else { OUT("} %s%s", (expr->marker.flags & EM_INDIRECT)?"*":"", - c_name(arg).short_name); + arg->embed ? c_name(arg).as_member : c_name(arg).short_name); if(!expr->_anonymous_type) OUT(";\n"); } @@ -632,7 +632,7 @@ asn1c_lang_C_type_SET(arg_t *arg) { c_name(arg).base_name); } else { OUT("} %s%s", (expr->marker.flags & EM_INDIRECT)?"*":"", - c_name(arg).short_name); + arg->embed ? c_name(arg).as_member : c_name(arg).short_name); if(!expr->_anonymous_type) OUT(";\n"); } @@ -861,7 +861,7 @@ asn1c_lang_C_type_SEx_OF(arg_t *arg) { c_name(arg).base_name); } else { OUT("} %s%s", (expr->marker.flags & EM_INDIRECT)?"*":"", - c_name(arg).short_name); + arg->embed ? c_name(arg).as_member : c_name(arg).short_name); if(!expr->_anonymous_type) OUT(";\n"); } @@ -1016,7 +1016,7 @@ asn1c_lang_C_type_CHOICE(arg_t *arg) { c_name(arg).base_name); } else { OUT("} %s%s", (expr->marker.flags & EM_INDIRECT)?"*":"", - c_name(arg).short_name); + arg->embed ? c_name(arg).as_member : c_name(arg).short_name); } if(!expr->_anonymous_type) OUT(";\n"); diff --git a/libasn1compiler/asn1c_ioc.c b/libasn1compiler/asn1c_ioc.c index fec078ab3..0c21e0055 100644 --- a/libasn1compiler/asn1c_ioc.c +++ b/libasn1compiler/asn1c_ioc.c @@ -5,7 +5,7 @@ #include #include -#define MKID(expr) asn1c_make_identifier(0, (expr), 0) +#define MKID(expr) asn1c_make_identifier(AMI_USE_PREFIX, (expr), 0) /* * Given the table constraint or component relation constraint diff --git a/libasn1compiler/asn1c_misc.c b/libasn1compiler/asn1c_misc.c index 45a43fe25..efadd2873 100644 --- a/libasn1compiler/asn1c_misc.c +++ b/libasn1compiler/asn1c_misc.c @@ -38,6 +38,16 @@ reserved_keyword(const char *str) { return 0; } +const char * +asn1c_prefix() +{ + const char *prefix = getenv("ASN1C_PREFIX"); + + if(!prefix) prefix = ""; + + return prefix; +} + /* * Construct identifier from multiple parts. * Convert unsafe characters to underscores. @@ -53,10 +63,13 @@ asn1c_make_identifier(enum ami_flags_e flags, asn1p_expr_t *expr, ...) { char *first = 0; ssize_t size = 0; char *p; - char *prefix = NULL; + const char *prefix = NULL; char *sptr[4], **psptr = &sptr[0]; int sptr_cnt = 0; + if(flags & AMI_USE_PREFIX) + prefix = asn1c_prefix(); + if(expr) { /* * Estimate the necessary storage size @@ -114,6 +127,7 @@ asn1c_make_identifier(enum ami_flags_e flags, asn1p_expr_t *expr, ...) { if(prefix) { strcpy(storage, prefix); p += strlen(prefix); + nodelimiter = 1; } nextstr = ""; for(str = 0; str || nextstr; str = nextstr) { @@ -126,6 +140,11 @@ asn1c_make_identifier(enum ami_flags_e flags, asn1p_expr_t *expr, ...) { if (!first) continue; } + if(str[0] == '\0') { + nodelimiter = 1; /* No delimiter */ + continue; + } + if(str[0] == ' ' && str[1] == '\0') { *p++ = ' '; nodelimiter = 1; /* No delimiter */ @@ -175,6 +194,7 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) { asn1p_expr_t *terminal = 0; int stdname = 0; const char *typename; + const char *prefix; /* Rewind to the topmost parent expression */ if((top_parent = expr->parent_expr)) @@ -317,28 +337,30 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) { } } + prefix = stdname ? "" : asn1c_prefix(); + switch(_format) { case TNF_UNMODIFIED: - return asn1c_make_identifier(AMI_MASK_ONLY_SPACES | AMI_NODELIMITER, - 0, MODULE_NAME_OF(exprid), exprid ? exprid->Identifier : typename, (char*)0); + return asn1c_make_identifier(AMI_MASK_ONLY_SPACES | AMI_NODELIMITER | (stdname ? 0 : AMI_USE_PREFIX), + 0, prefix, MODULE_NAME_OF(exprid), exprid ? exprid->Identifier : typename, (char*)0); case TNF_INCLUDE: return asn1c_make_identifier( AMI_MASK_ONLY_SPACES | AMI_NODELIMITER, 0, ((!stdname || (arg->flags & A1C_INCLUDES_QUOTED)) ? "\"" : "<"), - MODULE_NAME_OF(exprid), + prefix, MODULE_NAME_OF(exprid), exprid ? exprid->Identifier : typename, ((!stdname || (arg->flags & A1C_INCLUDES_QUOTED)) ? ".h\"" : ".h>"), (char*)0); case TNF_SAFE: - return asn1c_make_identifier(0, exprid, typename, (char*)0); + return asn1c_make_identifier(stdname ? 0 : AMI_USE_PREFIX, exprid, typename, (char*)0); case TNF_CTYPE: /* C type */ case TNF_CONSTYPE: /* C type */ - return asn1c_make_identifier(0, exprid, + return asn1c_make_identifier(stdname ? 0 : AMI_USE_PREFIX, exprid, exprid?"t":typename, exprid?0:"t", (char*)0); case TNF_RSAFE: /* Recursion-safe type */ return asn1c_make_identifier(AMI_CHECK_RESERVED | AMI_NODELIMITER, 0, - "struct", " ", MODULE_NAME_OF(exprid), typename, (char*)0); + "struct", " ", prefix, MODULE_NAME_OF(exprid), typename, (char*)0); } assert(!"unreachable"); @@ -505,4 +527,3 @@ asn1c_type_fits_long(arg_t *arg, asn1p_expr_t *expr) { return FL_FITS_SIGNED; } - diff --git a/libasn1compiler/asn1c_misc.h b/libasn1compiler/asn1c_misc.h index 439a2d091..89ce98bc7 100644 --- a/libasn1compiler/asn1c_misc.h +++ b/libasn1compiler/asn1c_misc.h @@ -52,5 +52,6 @@ enum asn1c_fitsfloat_e { RL_FITS_DOUBLE64 }; enum asn1c_fitsfloat_e asn1c_REAL_fits(arg_t *arg, asn1p_expr_t *expr); +const char *asn1c_prefix(void); #endif /* ASN1_COMPILER_MISC_H */ diff --git a/libasn1compiler/asn1c_naming.c b/libasn1compiler/asn1c_naming.c index b110ab59e..c892fcf8f 100644 --- a/libasn1compiler/asn1c_naming.c +++ b/libasn1compiler/asn1c_naming.c @@ -1,7 +1,6 @@ #include "asn1c_internal.h" #include "asn1c_naming.h" #include "asn1c_misc.h" -#include "asn1c_misc.h" #include #include @@ -107,20 +106,20 @@ c_name_clash(arg_t *arg) { static abuf * construct_base_name(abuf *buf, asn1p_expr_t *expr, int compound_names, - int avoid_keywords) { + int avoid_keywords, enum ami_flags_e flag) { const char *id; assert(buf); if(compound_names && expr->parent_expr) { - construct_base_name(buf, expr->parent_expr, compound_names, 0); + construct_base_name(buf, expr->parent_expr, compound_names, 0, flag); if(buf->length) { abuf_str(buf, "__"); /* component separator */ } } id = asn1c_make_identifier( - ((avoid_keywords && !buf->length) ? AMI_CHECK_RESERVED : 0), expr, 0); + ((avoid_keywords && !buf->length) ? AMI_CHECK_RESERVED : 0) | flag, expr, 0); abuf_str(buf, id); @@ -165,7 +164,6 @@ c_name_impl(arg_t *arg, asn1p_expr_t *expr, int avoid_keywords) { abuf_clear(&b_members_enum); abuf_clear(&b_members_name); - abuf_str(&b_type_asn_name, asn1c_type_name(arg, expr, TNF_UNMODIFIED)); abuf_str(&b_type_part_name, asn1c_type_name(arg, expr, TNF_SAFE)); abuf_str(&b_type_base_name, asn1c_type_name(arg, expr, TNF_SAFE)); @@ -183,30 +181,45 @@ c_name_impl(arg_t *arg, asn1p_expr_t *expr, int avoid_keywords) { } } - construct_base_name(&b_asn_name, expr, 0, 0); - construct_base_name(&b_part_name, expr, 0, 0); - construct_base_name(&b_base_name, expr, compound_names, avoid_keywords); - construct_base_name(&b_as_member, expr, 0, 1); + construct_base_name(&b_asn_name, expr, 0, 0, 0); + construct_base_name(&b_part_name, expr, 0, 0, AMI_USE_PREFIX); + construct_base_name(&b_base_name, expr, compound_names, avoid_keywords, 0); + construct_base_name(&b_as_member, expr, 0, 1, 0); static abuf tmp_compoundable_part_name; static abuf compound_part_name; abuf_clear(&tmp_compoundable_part_name); abuf_clear(&compound_part_name); - construct_base_name(&tmp_compoundable_part_name, expr, compound_names, 0); - construct_base_name(&compound_part_name, expr, 1, 0); - - if(!expr->_anonymous_type) { - if(arg->embed) { - abuf_printf(&b_short_name, "%s", b_as_member.buffer); - } else { - abuf_printf(&b_short_name, "%s_t", b_as_member.buffer); + construct_base_name(&tmp_compoundable_part_name, expr, compound_names, 0, 0); + construct_base_name(&compound_part_name, expr, 1, 0, 0); + + if(strlen(asn1c_prefix()) == 0) { + if(!expr->_anonymous_type) { + if(arg->embed) { + abuf_printf(&b_short_name, "%s", b_as_member.buffer); + } else { + abuf_printf(&b_short_name, "%s_t", b_as_member.buffer); + } + } + abuf_printf(&b_full_name, "struct %s", b_base_name.buffer); + abuf_printf(&b_presence_enum, "enum %s_PR", tmp_compoundable_part_name.buffer); + abuf_printf(&b_presence_name, "%s_PR", tmp_compoundable_part_name.buffer); + abuf_printf(&b_members_enum, "enum %s", b_base_name.buffer); + abuf_printf(&b_members_name, "e_%s", tmp_compoundable_part_name.buffer); + } else { + if(!expr->_anonymous_type) { + if(arg->embed) { + abuf_printf(&b_short_name, "%s%s", asn1c_prefix(), b_as_member.buffer); + } else { + abuf_printf(&b_short_name, "%s%s_t", asn1c_prefix(), b_as_member.buffer); + } } + abuf_printf(&b_full_name, "struct %s%s", asn1c_prefix(), b_base_name.buffer); + abuf_printf(&b_presence_enum, "enum %s%s_PR", asn1c_prefix(), tmp_compoundable_part_name.buffer); + abuf_printf(&b_presence_name, "%s%s_PR", asn1c_prefix(), tmp_compoundable_part_name.buffer); + abuf_printf(&b_members_enum, "enum %s%s", asn1c_prefix(), b_base_name.buffer); + abuf_printf(&b_members_name, "e_%s%s", asn1c_prefix(), tmp_compoundable_part_name.buffer); } - abuf_printf(&b_full_name, "struct %s", b_base_name.buffer); - abuf_printf(&b_presence_enum, "enum %s_PR", tmp_compoundable_part_name.buffer); - abuf_printf(&b_presence_name, "%s_PR", tmp_compoundable_part_name.buffer); - abuf_printf(&b_members_enum, "enum %s", b_base_name.buffer); - abuf_printf(&b_members_name, "e_%s", tmp_compoundable_part_name.buffer); names.type.asn_name = b_type_asn_name.buffer; names.type.base_name = b_type_base_name.buffer; @@ -255,6 +268,7 @@ c_member_name(arg_t *arg, asn1p_expr_t *expr) { abuf_clear(&ab); /* NB: do not use part_name, doesn't work for -fcompound-names */ + abuf_str(&ab, asn1c_prefix()); abuf_str(&ab, c_name_impl(arg, arg->expr, 0).base_name); abuf_str(&ab, "_"); abuf_str(&ab, asn1c_make_identifier(0, expr, 0)); @@ -269,6 +283,7 @@ c_presence_name(arg_t *arg, asn1p_expr_t *expr) { abuf_clear(&ab); + abuf_str(&ab, asn1c_prefix()); if(expr) { /* NB: do not use part_name, doesn't work for -fcompound-names */ abuf_str(&ab, c_name_impl(arg, arg->expr, 0).base_name); diff --git a/libasn1compiler/asn1c_save.c b/libasn1compiler/asn1c_save.c index fa6cefecf..7d691e5c1 100644 --- a/libasn1compiler/asn1c_save.c +++ b/libasn1compiler/asn1c_save.c @@ -76,7 +76,7 @@ asn1c__save_library_makefile(arg_t *arg, const asn1c_dep_chainset *deps, [arg->expr->expr_type].type_cb && (arg->expr->meta_type != AMT_VALUE)) { safe_fprintf(mkf, "\t\\\n\t%s%s.c", destdir, - asn1c_make_identifier(AMI_MASK_ONLY_SPACES, arg->expr, 0)); + asn1c_make_identifier(AMI_MASK_ONLY_SPACES | AMI_USE_PREFIX, arg->expr, 0)); } } } @@ -88,7 +88,7 @@ asn1c__save_library_makefile(arg_t *arg, const asn1c_dep_chainset *deps, (arg->expr->meta_type != AMT_VALUE)) { safe_fprintf( mkf, "\t\\\n\t%s%s.h", destdir, - asn1c_make_identifier(AMI_MASK_ONLY_SPACES, arg->expr, 0)); + asn1c_make_identifier(AMI_MASK_ONLY_SPACES | AMI_USE_PREFIX, arg->expr, 0)); } } } @@ -501,7 +501,8 @@ asn1c_save_streams(arg_t *arg, asn1c_dep_chainset *deps, const char *destdir, return -1; } - filename = strdup(asn1c_make_identifier(AMI_MASK_ONLY_SPACES, expr, (char*)0)); + filename = strdup(asn1c_make_identifier(AMI_MASK_ONLY_SPACES | AMI_USE_PREFIX, + expr, (char*)0)); fp_c = asn1c_open_file(destdir, filename, ".c", &tmpname_c); if(fp_c == NULL) { return -1; @@ -517,7 +518,7 @@ asn1c_save_streams(arg_t *arg, asn1c_dep_chainset *deps, const char *destdir, generate_preamble(arg, fp_c, optc, argv); generate_preamble(arg, fp_h, optc, argv); - header_id = asn1c_make_identifier(0, expr, NULL); + header_id = asn1c_make_identifier(AMI_USE_PREFIX, expr, NULL); safe_fprintf(fp_h, "#ifndef\t_%s_H_\n" "#define\t_%s_H_\n" @@ -541,7 +542,7 @@ asn1c_save_streams(arg_t *arg, asn1c_dep_chainset *deps, const char *destdir, SAVE_STREAM(fp_h, OT_DEPS, "Dependencies", 0); SAVE_STREAM(fp_h, OT_FWD_DECLS, "Forward declarations", 0); SAVE_STREAM(fp_h, OT_FWD_DEFS, "Forward definitions", 0); - SAVE_STREAM(fp_h, OT_TYPE_DECLS, expr->Identifier, 0); + SAVE_STREAM(fp_h, OT_TYPE_DECLS, filename, 0); SAVE_STREAM(fp_h, OT_FUNC_DECLS,"Implementation", 0); safe_fprintf(fp_h, "\n#ifdef __cplusplus\n}\n#endif\n"); @@ -797,7 +798,7 @@ generate_pdu_collection(arg_t *arg) { abuf_printf(buf, "extern struct asn_TYPE_descriptor_s " "asn_DEF_%s;\n", - asn1c_make_identifier(0, arg->expr, NULL)); + asn1c_make_identifier(AMI_USE_PREFIX, arg->expr, NULL)); } } @@ -822,7 +823,7 @@ generate_pdu_collection(arg_t *arg) { arg->expr->module->source_file_name); } abuf_printf(buf, "\t&asn_DEF_%s,\t\n", - asn1c_make_identifier(0, arg->expr, NULL)); + asn1c_make_identifier(AMI_USE_PREFIX, arg->expr, NULL)); } } @@ -960,7 +961,7 @@ generate_constant_collection(arg_t *arg) { abuf_printf(buf, "/*\n * Generated by asn1c-" VERSION " (http://lionet.info/asn1c)\n */\n\n"); - abuf_printf(buf, "#ifndef _ASN_CONSTANT_H\n#define _ASN_CONSTANT_H\n\n"); + abuf_printf(buf, "#ifndef _%sASN_CONSTANT_H\n#define _%sASN_CONSTANT_H\n\n", asn1c_prefix(), asn1c_prefix()); abuf_printf(buf, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n"); @@ -971,14 +972,14 @@ generate_constant_collection(arg_t *arg) { if(arg->expr->expr_type == ASN_BASIC_INTEGER) { abuf_printf(buf, "#define %s (%s)\n", - asn1c_make_identifier(0, arg->expr, 0), + asn1c_make_identifier(AMI_USE_PREFIX, arg->expr, 0), asn1p_itoa(arg->expr->value->value.v_integer)); empty_file = 0; } } } - abuf_printf(buf, "\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* _ASN_CONSTANT_H */\n"); + abuf_printf(buf, "\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* _%sASN_CONSTANT_H */\n", asn1c_prefix()); if(empty_file) { abuf_free(buf); @@ -990,15 +991,21 @@ generate_constant_collection(arg_t *arg) { static int generate_constant_file(arg_t *arg, const char *destdir) { abuf *buf = generate_constant_collection(arg); + char *filename; + int filename_len; if(!buf) return 0; + filename_len = strlen(asn1c_prefix()) + strlen("asn_constant"); + filename = calloc(filename_len + 1, 1); + snprintf(filename, filename_len + 1, "%sasn_constant", asn1c_prefix()); + if(arg->flags & A1C_PRINT_COMPILED) { printf("\n/*** <<< asn_constant.h >>> ***/\n\n"); safe_fwrite(buf->buffer, buf->length, 1, stdout); } else { - FILE *fp = asn1c_open_file(destdir, "asn_constant", ".h", 0); + FILE *fp = asn1c_open_file(destdir, filename, ".h", 0); if(fp == NULL) { perror("asn_constant.h"); return -1; @@ -1006,8 +1013,8 @@ generate_constant_file(arg_t *arg, const char *destdir) { safe_fwrite(buf->buffer, buf->length, 1, fp); fclose(fp); } - safe_fprintf(stderr, "Generated asn_constant.h\n"); - + safe_fprintf(stderr, "Generated %s.h\n", filename); + free(filename); abuf_free(buf); return 0; } From bde44109055c744634752acbae42ac52977ba884 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Fri, 9 Feb 2018 13:17:28 +0800 Subject: [PATCH 16/17] Remove 'missing braces' and 'unused-const-variable' warning --- libasn1compiler/asn1c_ioc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libasn1compiler/asn1c_ioc.c b/libasn1compiler/asn1c_ioc.c index 0c21e0055..005088d52 100644 --- a/libasn1compiler/asn1c_ioc.c +++ b/libasn1compiler/asn1c_ioc.c @@ -259,6 +259,9 @@ emit_ioc_table(arg_t *arg, asn1p_expr_t *context, asn1c_ioc_table_and_objset_t i } } + if(ioc_tao.ioct->rows == 0) + return 0; + /* Emit the Information Object Set */ OUT("static const asn_ioc_cell_t asn_IOS_%s_%d_rows[] = {\n", MKID(ioc_tao.objset), ioc_tao.objset->_type_unique_index); @@ -285,7 +288,7 @@ emit_ioc_table(arg_t *arg, asn1p_expr_t *context, asn1c_ioc_table_and_objset_t i OUT("static const asn_ioc_set_t asn_IOS_%s_%d[] = {\n", MKID(ioc_tao.objset), ioc_tao.objset->_type_unique_index); INDENT(+1); - OUT("%zu, %zu, asn_IOS_%s_%d_rows\n", ioc_tao.ioct->rows, columns, + OUT("{ %zu, %zu, asn_IOS_%s_%d_rows }\n", ioc_tao.ioct->rows, columns, MKID(ioc_tao.objset), ioc_tao.objset->_type_unique_index); INDENT(-1); OUT("};\n"); From 8f68defbebefbbb5be60bc991e3149a5482f1d10 Mon Sep 17 00:00:00 2001 From: "Bi-Ruei, Chiu" Date: Fri, 9 Feb 2018 13:27:28 +0800 Subject: [PATCH 17/17] Regenerate test cases --- tests/tests-asn1c-compiler/139-component-relation-OK.asn1.-P | 2 +- tests/tests-asn1c-compiler/140-component-relation-OK.asn1.-P | 2 +- tests/tests-asn1c-compiler/141-component-relation-OK.asn1.-P | 2 +- tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P | 2 +- .../146-ios-parameterization-per-OK.asn1.-Pgen-PER | 2 +- .../155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER | 2 +- tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER | 2 +- tests/tests-asn1c-compiler/98-attribute-class-OK.asn1.-P | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/tests-asn1c-compiler/139-component-relation-OK.asn1.-P b/tests/tests-asn1c-compiler/139-component-relation-OK.asn1.-P index f58084d4d..bdd439ae8 100644 --- a/tests/tests-asn1c-compiler/139-component-relation-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/139-component-relation-OK.asn1.-P @@ -56,7 +56,7 @@ static const asn_ioc_cell_t asn_IOS_FrameTypes_1_rows[] = { { "&Type", aioc__type, &asn_DEF_ComplexMessage } }; static const asn_ioc_set_t asn_IOS_FrameTypes_1[] = { - 2, 2, asn_IOS_FrameTypes_1_rows + { 2, 2, asn_IOS_FrameTypes_1_rows } }; /*** <<< CODE [Frame] >>> ***/ diff --git a/tests/tests-asn1c-compiler/140-component-relation-OK.asn1.-P b/tests/tests-asn1c-compiler/140-component-relation-OK.asn1.-P index f58084d4d..bdd439ae8 100644 --- a/tests/tests-asn1c-compiler/140-component-relation-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/140-component-relation-OK.asn1.-P @@ -56,7 +56,7 @@ static const asn_ioc_cell_t asn_IOS_FrameTypes_1_rows[] = { { "&Type", aioc__type, &asn_DEF_ComplexMessage } }; static const asn_ioc_set_t asn_IOS_FrameTypes_1[] = { - 2, 2, asn_IOS_FrameTypes_1_rows + { 2, 2, asn_IOS_FrameTypes_1_rows } }; /*** <<< CODE [Frame] >>> ***/ diff --git a/tests/tests-asn1c-compiler/141-component-relation-OK.asn1.-P b/tests/tests-asn1c-compiler/141-component-relation-OK.asn1.-P index 7a15bc472..db52a1ae8 100644 --- a/tests/tests-asn1c-compiler/141-component-relation-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/141-component-relation-OK.asn1.-P @@ -56,7 +56,7 @@ static const asn_ioc_cell_t asn_IOS_FrameTypes_1_rows[] = { { "&Type", aioc__type, &asn_DEF_ComplexMessage } }; static const asn_ioc_set_t asn_IOS_FrameTypes_1[] = { - 2, 2, asn_IOS_FrameTypes_1_rows + { 2, 2, asn_IOS_FrameTypes_1_rows } }; /*** <<< CODE [Frame] >>> ***/ diff --git a/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P b/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P index dc6faec88..539d9d816 100644 --- a/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/144-ios-parameterization-OK.asn1.-P @@ -115,7 +115,7 @@ static const asn_ioc_cell_t asn_IOS_RegionalExtension_1_rows[] = { { "&Type", aioc__type, &asn_DEF_BOOLEAN } }; static const asn_ioc_set_t asn_IOS_RegionalExtension_1[] = { - 2, 2, asn_IOS_RegionalExtension_1_rows + { 2, 2, asn_IOS_RegionalExtension_1_rows } }; /*** <<< CODE [SpecializedContent] >>> ***/ diff --git a/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER index 79f1b6a00..ef85ab294 100644 --- a/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/146-ios-parameterization-per-OK.asn1.-Pgen-PER @@ -115,7 +115,7 @@ static const asn_ioc_cell_t asn_IOS_RegionalExtension_1_rows[] = { { "&Type", aioc__type, &asn_DEF_BOOLEAN } }; static const asn_ioc_set_t asn_IOS_RegionalExtension_1[] = { - 2, 2, asn_IOS_RegionalExtension_1_rows + { 2, 2, asn_IOS_RegionalExtension_1_rows } }; /*** <<< CODE [SpecializedContent] >>> ***/ diff --git a/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER index 8adf18064..8c2a7c60f 100644 --- a/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/155-parameterization-more-than-two-level-OK.asn1.-Pgen-PER @@ -602,7 +602,7 @@ static const asn_ioc_cell_t asn_IOS_ClassItem_1_rows[] = { { "&valid", aioc__value, &asn_DEF_Valid, &asn_VAL_1_crc_ok } }; static const asn_ioc_set_t asn_IOS_ClassItem_1[] = { - 1, 4, asn_IOS_ClassItem_1_rows + { 1, 4, asn_IOS_ClassItem_1_rows } }; /*** <<< CODE [Packet] >>> ***/ diff --git a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER index a19544d58..8c053e408 100644 --- a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER +++ b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1.-Pgen-PER @@ -130,7 +130,7 @@ static const asn_ioc_cell_t asn_IOS_TotalRegionExtension_1_rows[] = { { "&Type", aioc__type, &asn_DEF_OCTET_STRING } }; static const asn_ioc_set_t asn_IOS_TotalRegionExtension_1[] = { - 6, 2, asn_IOS_TotalRegionExtension_1_rows + { 6, 2, asn_IOS_TotalRegionExtension_1_rows } }; /*** <<< CODE [SpecializedContent] >>> ***/ diff --git a/tests/tests-asn1c-compiler/98-attribute-class-OK.asn1.-P b/tests/tests-asn1c-compiler/98-attribute-class-OK.asn1.-P index 6f2ef863a..edd341d40 100644 --- a/tests/tests-asn1c-compiler/98-attribute-class-OK.asn1.-P +++ b/tests/tests-asn1c-compiler/98-attribute-class-OK.asn1.-P @@ -29,7 +29,7 @@ static const asn_ioc_cell_t asn_IOS_Attributes_1_rows[] = { { "&id", aioc__value, &asn_DEF_RELATIVE_OID, &asn_VAL_2_rcf } }; static const asn_ioc_set_t asn_IOS_Attributes_1[] = { - 2, 1, asn_IOS_Attributes_1_rows + { 2, 1, asn_IOS_Attributes_1_rows } }; /*** <<< CODE [Attribute] >>> ***/