diff options
author | Lev Walkin <vlm@lionet.info> | 2004-09-29 13:16:40 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2004-09-29 13:16:40 +0000 |
commit | 05363a77e30fab50e50873737169118acf95c4e8 (patch) | |
tree | cb8e90bc9ebd3d707fbfdf6f3455a51d0b5567d3 /libasn1compiler | |
parent | 11b825852084d778f07ce7c431e269f7f0560065 (diff) |
renamed asn1_ into asn_; support for cross-referenced types
Diffstat (limited to 'libasn1compiler')
-rw-r--r-- | libasn1compiler/asn1c_C.c | 168 | ||||
-rw-r--r-- | libasn1compiler/asn1c_constraint.c | 16 | ||||
-rw-r--r-- | libasn1compiler/asn1c_out.h | 4 |
3 files changed, 104 insertions, 84 deletions
diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c index d94d24b4..4a34bd48 100644 --- a/libasn1compiler/asn1c_C.c +++ b/libasn1compiler/asn1c_C.c @@ -52,7 +52,7 @@ static int emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode #define PCTX_DEF INDENTED( \ OUT("\n"); \ OUT("/* Context for parsing across buffer boundaries */\n"); \ - OUT("ber_dec_ctx_t _ber_dec_ctx;\n")); + OUT("asn_struct_ctx_t _asn_ctx;\n")); #define DEPENDENCIES do { \ asn1p_expr_t *__m; \ @@ -170,7 +170,7 @@ asn1c_lang_C_type_SEQUENCE_def(arg_t *arg) { GEN_INCLUDE("constr_SEQUENCE"); if(!arg->embed) - GEN_DECLARE(expr); /* asn1_DEF_xxx */ + GEN_DECLARE(expr); /* asn_DEF_xxx */ REDIR(OT_STAT_DEFS); @@ -181,7 +181,7 @@ asn1c_lang_C_type_SEQUENCE_def(arg_t *arg) { int comp_mode = 0; /* {root,ext=1,root,root,...} */ p = MKID(expr->Identifier); - OUT("static asn1_TYPE_member_t asn1_MBR_%s[] = {\n", p); + OUT("static asn_TYPE_member_t asn_MBR_%s[] = {\n", p); elements = 0; INDENTED(TQ_FOR(v, &(expr->members), next) { @@ -201,7 +201,7 @@ asn1c_lang_C_type_SEQUENCE_def(arg_t *arg) { } /* - * Print out asn1_DEF_<type>_[all_]tags[] vectors. + * Print out asn_DEF_<type>_[all_]tags[] vectors. */ tv_mode = emit_tags_vectors(arg, expr, &tags_count, &all_tags_count); @@ -211,11 +211,11 @@ asn1c_lang_C_type_SEQUENCE_def(arg_t *arg) { emit_tag2member_map(arg, tag2el, tag2el_count); p = MKID(expr->Identifier); - OUT("static asn1_SEQUENCE_specifics_t asn1_DEF_%s_specs = {\n", p); + OUT("static asn_SEQUENCE_specifics_t asn_DEF_%s_specs = {\n", p); INDENTED( OUT("sizeof(struct %s),\n", p); - OUT("offsetof(struct %s, _ber_dec_ctx),\n", p); - OUT("asn1_DEF_%s_tag2el,\n", p); + OUT("offsetof(struct %s, _asn_ctx),\n", p); + OUT("asn_DEF_%s_tag2el,\n", p); OUT("%d,\t/* Count of tags in the map */\n", tag2el_count); OUT("%d,\t/* Start extensions */\n", ext_start); @@ -225,7 +225,7 @@ asn1c_lang_C_type_SEQUENCE_def(arg_t *arg) { OUT("};\n"); /* - * Emit asn1_DEF_xxx table. + * Emit asn_DEF_xxx table. */ emit_type_DEF(arg, expr, tv_mode, tags_count, all_tags_count, elements, ETD_HAS_SPECIFICS); @@ -324,7 +324,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) { GEN_INCLUDE("constr_SET"); if(!arg->embed) - GEN_DECLARE(expr); /* asn1_DEF_xxx */ + GEN_DECLARE(expr); /* asn_DEF_xxx */ REDIR(OT_STAT_DEFS); @@ -335,7 +335,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) { int comp_mode = 0; /* {root,ext=1,root,root,...} */ p = MKID(expr->Identifier); - OUT("static asn1_TYPE_member_t asn1_MBR_%s[] = {\n", p); + OUT("static asn_TYPE_member_t asn_MBR_%s[] = {\n", p); elements = 0; INDENTED(TQ_FOR(v, &(expr->members), next) { @@ -355,7 +355,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) { } /* - * Print out asn1_DEF_<type>_[all_]tags[] vectors. + * Print out asn_DEF_<type>_[all_]tags[] vectors. */ tv_mode = emit_tags_vectors(arg, expr, &tags_count, &all_tags_count); @@ -368,7 +368,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) { * Emit a map of mandatory elements. */ p = MKID(expr->Identifier); - OUT("static uint8_t asn1_DEF_%s_mmap", p); + OUT("static uint8_t asn_DEF_%s_mmap", p); OUT("[(%d + (8 * sizeof(unsigned int)) - 1) / 8]", elements); OUT(" = {\n", p); INDENTED( @@ -397,21 +397,21 @@ asn1c_lang_C_type_SET_def(arg_t *arg) { OUT("\n"); OUT("};\n"); - OUT("static asn1_SET_specifics_t asn1_DEF_%s_specs = {\n", p); + OUT("static asn_SET_specifics_t asn_DEF_%s_specs = {\n", p); INDENTED( OUT("sizeof(struct %s),\n", p); - OUT("offsetof(struct %s, _ber_dec_ctx),\n", p); + OUT("offsetof(struct %s, _asn_ctx),\n", p); OUT("offsetof(struct %s, _presence_map),\n", p); - OUT("asn1_DEF_%s_tag2el,\n", p); + OUT("asn_DEF_%s_tag2el,\n", p); OUT("%d,\t/* Count of tags in the map */\n", tag2el_count); OUT("%d,\t/* Whether extensible */\n", check_if_extensible(expr)); - OUT("(unsigned int *)asn1_DEF_%s_mmap\t/* Mandatory elements map */\n", p); + OUT("(unsigned int *)asn_DEF_%s_mmap\t/* Mandatory elements map */\n", p); ); OUT("};\n"); /* - * Emit asn1_DEF_xxx table. + * Emit asn_DEF_xxx table. */ emit_type_DEF(arg, expr, tv_mode, tags_count, all_tags_count, elements, ETD_HAS_SPECIFICS); @@ -495,7 +495,7 @@ asn1c_lang_C_type_SEx_OF_def(arg_t *arg, int seq_of) { GEN_INCLUDE("constr_SET_OF"); } if(!arg->embed) - GEN_DECLARE(expr); /* asn1_DEF_xxx */ + GEN_DECLARE(expr); /* asn_DEF_xxx */ REDIR(OT_STAT_DEFS); @@ -503,7 +503,7 @@ asn1c_lang_C_type_SEx_OF_def(arg_t *arg, int seq_of) { * Print out the table according to which the parsing is performed. */ p = MKID(expr->Identifier); - OUT("static asn1_TYPE_member_t asn1_MBR_%s[] = {\n", p); + OUT("static asn_TYPE_member_t asn_MBR_%s[] = {\n", p); INDENT(+1); v = TQ_FIRST(&(expr->members)); if(!v->Identifier) { @@ -518,15 +518,15 @@ asn1c_lang_C_type_SEx_OF_def(arg_t *arg, int seq_of) { OUT("};\n"); /* - * Print out asn1_DEF_<type>_[all_]tags[] vectors. + * Print out asn_DEF_<type>_[all_]tags[] vectors. */ tv_mode = emit_tags_vectors(arg, expr, &tags_count, &all_tags_count); p = MKID(expr->Identifier); - OUT("static asn1_SET_OF_specifics_t asn1_DEF_%s_specs = {\n", p); + OUT("static asn_SET_OF_specifics_t asn_DEF_%s_specs = {\n", p); INDENTED( OUT("sizeof(struct %s),\n", p); - OUT("offsetof(struct %s, _ber_dec_ctx),\n", p); + OUT("offsetof(struct %s, _asn_ctx),\n", p); if(expr_as_xmlvaluelist(arg, v)) OUT("1,\t/* XER encoding is XMLValueList */\n"); else @@ -535,7 +535,7 @@ asn1c_lang_C_type_SEx_OF_def(arg_t *arg, int seq_of) { OUT("};\n"); /* - * Emit asn1_DEF_xxx table. + * Emit asn_DEF_xxx table. */ emit_type_DEF(arg, expr, tv_mode, tags_count, all_tags_count, 1, ETD_HAS_SPECIFICS); @@ -624,7 +624,7 @@ asn1c_lang_C_type_CHOICE_def(arg_t *arg) { GEN_INCLUDE("constr_CHOICE"); if(!arg->embed) - GEN_DECLARE(expr); /* asn1_DEF_xxx */ + GEN_DECLARE(expr); /* asn_DEF_xxx */ REDIR(OT_STAT_DEFS); @@ -635,7 +635,7 @@ asn1c_lang_C_type_CHOICE_def(arg_t *arg) { int comp_mode = 0; /* {root,ext=1,root,root,...} */ p = MKID(expr->Identifier); - OUT("static asn1_TYPE_member_t asn1_MBR_%s[] = {\n", p); + OUT("static asn_TYPE_member_t asn_MBR_%s[] = {\n", p); elements = 0; INDENTED(TQ_FOR(v, &(expr->members), next) { @@ -672,13 +672,13 @@ asn1c_lang_C_type_CHOICE_def(arg_t *arg) { emit_tag2member_map(arg, tag2el, tag2el_count); p = MKID(expr->Identifier); - OUT("static asn1_CHOICE_specifics_t asn1_DEF_%s_specs = {\n", p); + OUT("static asn_CHOICE_specifics_t asn_DEF_%s_specs = {\n", p); INDENTED( OUT("sizeof(struct %s),\n", p); - OUT("offsetof(struct %s, _ber_dec_ctx),\n", p); + OUT("offsetof(struct %s, _asn_ctx),\n", p); OUT("offsetof(struct %s, present),\n", p); OUT("sizeof(((struct %s *)0)->present),\n", p); - OUT("asn1_DEF_%s_tag2el,\n", p); + OUT("asn_DEF_%s_tag2el,\n", p); OUT("%d,\t/* Count of tags in the map */\n", tag2el_count); OUT("%d\t/* Whether extensible */\n", check_if_extensible(expr)); @@ -686,7 +686,7 @@ asn1c_lang_C_type_CHOICE_def(arg_t *arg) { OUT("};\n"); /* - * Emit asn1_DEF_xxx table. + * Emit asn_DEF_xxx table. */ emit_type_DEF(arg, expr, tv_mode, tags_count, all_tags_count, elements, ETD_HAS_SPECIFICS); @@ -749,9 +749,29 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { char *p; if(arg->embed) { + enum tnfmt tnfmt = TNF_CTYPE; + + /* + * If this is an optional compound type, + * refer it using "struct X" convention, + * as it may recursively include the current structure. + */ + if(expr->marker.flags) { + asn1p_expr_t *terminal; + terminal = asn1f_find_terminal_type_ex(arg->asn, expr); + if(terminal + && (terminal->expr_type & ASN_CONSTR_MASK)) { + REDIR(OT_DEPS); + tnfmt = TNF_RSAFE; + OUT("\n"); + OUT("%s;\t/* Forward declaration */\n", + asn1c_type_name(arg, arg->expr, tnfmt)); + } + } + REDIR(OT_TYPE_DECLS); - OUT("%s\t", asn1c_type_name(arg, arg->expr, TNF_CTYPE)); + OUT("%s\t", asn1c_type_name(arg, arg->expr, tnfmt)); OUT("%s", expr->marker.flags?"*":" "); OUT("%s", MKID(expr->Identifier)); if((expr->marker.flags & EM_DEFAULT) == EM_DEFAULT) @@ -787,9 +807,9 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { OUT("/* This type is equivalent to %s */\n", type_name); p = MKID(expr->Identifier); if(HIDE_INNER_DEFS) OUT("/* "); - OUT("#define\tasn1_DEF_%s\t", p); + OUT("#define\tasn_DEF_%s\t", p); type_name = asn1c_type_name(arg, expr, TNF_SAFE); - OUT("asn1_DEF_%s\n", type_name); + OUT("asn_DEF_%s\n", type_name); if(HIDE_INNER_DEFS) OUT(" // (Use -fall-defs-global to expose) */"); REDIR(OT_CODE); @@ -802,7 +822,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { REDIR(OT_STAT_DEFS); /* - * Print out asn1_DEF_<type>_[all_]tags[] vectors. + * Print out asn_DEF_<type>_[all_]tags[] vectors. */ tv_mode = emit_tags_vectors(arg, expr, &tags_count, &all_tags_count); @@ -818,14 +838,14 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { p = MKID(expr->Identifier); OUT("int\n"); OUT("%s_constraint(" - "asn1_TYPE_descriptor_t *td, const void *sptr,\n", p); + "asn_TYPE_descriptor_t *td, const void *sptr,\n", p); INDENT(+1); OUT("\t\tasn_app_consume_bytes_f *app_errlog, void *app_key) {"); OUT("\n"); if(asn1c_emit_constraint_checking_code(arg) == 1) { OUT("/* Replace with underlying type checker */\n"); OUT("td->check_constraints " - "= asn1_DEF_%s.check_constraints;\n", + "= asn_DEF_%s.check_constraints;\n", asn1c_type_name(arg, expr, TNF_SAFE)); OUT("return td->check_constraints" "(td, sptr, app_errlog, app_key);\n"); @@ -851,28 +871,28 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { OUT(" */\n"); OUT("static void\n"); p = MKID(expr->Identifier); - OUT("%s_inherit_TYPE_descriptor(asn1_TYPE_descriptor_t *td) {\n", p); + OUT("%s_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {\n", p); INDENT(+1); { asn1p_expr_t *terminal = asn1f_find_terminal_type_ex(arg->asn, expr); char *type_name = asn1c_type_name(arg, expr, TNF_SAFE); - OUT("td->free_struct = asn1_DEF_%s.free_struct;\n", type_name); - OUT("td->print_struct = asn1_DEF_%s.print_struct;\n", type_name); - OUT("td->ber_decoder = asn1_DEF_%s.ber_decoder;\n", type_name); - OUT("td->der_encoder = asn1_DEF_%s.der_encoder;\n", type_name); - OUT("td->xer_decoder = asn1_DEF_%s.xer_decoder;\n", type_name); - OUT("td->xer_encoder = asn1_DEF_%s.xer_encoder;\n", type_name); + OUT("td->free_struct = asn_DEF_%s.free_struct;\n", type_name); + OUT("td->print_struct = asn_DEF_%s.print_struct;\n", type_name); + OUT("td->ber_decoder = asn_DEF_%s.ber_decoder;\n", type_name); + OUT("td->der_encoder = asn_DEF_%s.der_encoder;\n", type_name); + OUT("td->xer_decoder = asn_DEF_%s.xer_decoder;\n", type_name); + OUT("td->xer_encoder = asn_DEF_%s.xer_encoder;\n", type_name); if(!terminal && !tags_count) { OUT("/* The next four lines are here because of -fknown-extern-type */\n"); - OUT("td->tags = asn1_DEF_%s.tags;\n", type_name); - OUT("td->tags_count = asn1_DEF_%s.tags_count;\n", type_name); - OUT("td->all_tags = asn1_DEF_%s.all_tags;\n", type_name); - OUT("td->all_tags_count = asn1_DEF_%s.all_tags_count;\n",type_name); + OUT("td->tags = asn_DEF_%s.tags;\n", type_name); + OUT("td->tags_count = asn_DEF_%s.tags_count;\n", type_name); + OUT("td->all_tags = asn_DEF_%s.all_tags;\n", type_name); + OUT("td->all_tags_count = asn_DEF_%s.all_tags_count;\n",type_name); OUT("/* End of these lines */\n"); } - OUT("td->elements = asn1_DEF_%s.elements;\n", type_name); - OUT("td->elements_count = asn1_DEF_%s.elements_count;\n", type_name); - OUT("td->specifics = asn1_DEF_%s.specifics;\n", type_name); + OUT("td->elements = asn_DEF_%s.elements;\n", type_name); + OUT("td->elements_count = asn_DEF_%s.elements_count;\n", type_name); + OUT("td->specifics = asn_DEF_%s.specifics;\n", type_name); } INDENT(-1); OUT("}\n"); @@ -880,7 +900,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { p = MKID(expr->Identifier); OUT("void\n"); - OUT("%s_free(asn1_TYPE_descriptor_t *td,\n", p); + OUT("%s_free(asn_TYPE_descriptor_t *td,\n", p); INDENTED( OUT("\tvoid *struct_ptr, int contents_only) {\n"); OUT("%s_inherit_TYPE_descriptor(td);\n", p); @@ -891,7 +911,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { p = MKID(expr->Identifier); OUT("int\n"); - OUT("%s_print(asn1_TYPE_descriptor_t *td, const void *struct_ptr,\n", p); + OUT("%s_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,\n", p); INDENTED( OUT("\tint ilevel, asn_app_consume_bytes_f *cb, void *app_key) {\n"); OUT("%s_inherit_TYPE_descriptor(td);\n", p); @@ -902,18 +922,18 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { p = MKID(expr->Identifier); OUT("ber_dec_rval_t\n"); - OUT("%s_decode_ber(asn1_TYPE_descriptor_t *td,\n", p); + OUT("%s_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,\n", p); INDENTED( OUT("\tvoid **structure, void *bufptr, size_t size, int tag_mode) {\n"); OUT("%s_inherit_TYPE_descriptor(td);\n", p); - OUT("return td->ber_decoder(td, structure, bufptr, size, tag_mode);\n"); + OUT("return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);\n"); ); OUT("}\n"); OUT("\n"); p = MKID(expr->Identifier); OUT("asn_enc_rval_t\n"); - OUT("%s_encode_der(asn1_TYPE_descriptor_t *td,\n", p); + OUT("%s_encode_der(asn_TYPE_descriptor_t *td,\n", p); INDENTED( OUT("\tvoid *structure, int tag_mode, ber_tlv_tag_t tag,\n"); OUT("\tasn_app_consume_bytes_f *cb, void *app_key) {\n"); @@ -925,7 +945,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { p = MKID(expr->Identifier); OUT("asn_enc_rval_t\n"); - OUT("%s_encode_xer(asn1_TYPE_descriptor_t *td, void *structure,\n", p); + OUT("%s_encode_xer(asn_TYPE_descriptor_t *td, void *structure,\n", p); INDENTED( OUT("\tint ilevel, enum xer_encoder_flags_e flags,\n"); OUT("\tasn_app_consume_bytes_f *cb, void *app_key) {\n"); @@ -939,7 +959,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { p = MKID(expr->Identifier); if(HIDE_INNER_DEFS) OUT("/* "); - OUT("extern asn1_TYPE_descriptor_t asn1_DEF_%s;", p); + OUT("extern asn_TYPE_descriptor_t asn_DEF_%s;", p); if(HIDE_INNER_DEFS) OUT(" // (Use -fall-defs-global to expose) */"); OUT("\n"); OUT("asn_struct_free_f %s_free;\n", p); @@ -1162,7 +1182,7 @@ static int emit_tag2member_map(arg_t *arg, tag2el_t *tag2el, int tag2el_count) { asn1p_expr_t *expr = arg->expr; - OUT("static asn1_TYPE_tag2member_t asn1_DEF_%s_tag2el[] = {\n", + OUT("static asn_TYPE_tag2member_t asn_DEF_%s_tag2el[] = {\n", MKID(expr->Identifier)); if(tag2el_count) { int i; @@ -1228,7 +1248,7 @@ emit_tags_vectors(arg_t *arg, asn1p_expr_t *expr, int *tags_count_r, int *all_ta } #define EMIT_TAGS_TABLE(name, tags, tags_count) do { \ - OUT("static ber_tlv_tag_t asn1_DEF_%s%s_tags[] = {\n", \ + OUT("static ber_tlv_tag_t asn_DEF_%s%s_tags[] = {\n", \ MKID(expr->Identifier), name); \ INDENT(+1); \ /* Print the array of collected tags */ \ @@ -1348,13 +1368,13 @@ emit_member_table(arg_t *arg, asn1p_expr_t *expr) { } if(C99_MODE) OUT(".type = "); if(expr->_anonymous_type && (expr->expr_type & ASN_CONSTR_MASK)) { - OUT("(void *)&asn1_DEF_%s_member,\n", + OUT("(void *)&asn_DEF_%s_member,\n", MKID(arg->expr->Identifier)); } else if(expr->expr_type & ASN_CONSTR_MASK) { - OUT("(void *)&asn1_DEF_%s,\n", + OUT("(void *)&asn_DEF_%s,\n", MKID(expr->Identifier)); } else { - OUT("(void *)&asn1_DEF_%s,\n", + OUT("(void *)&asn_DEF_%s,\n", asn1c_type_name(arg, expr, TNF_SAFE)); } if(C99_MODE) OUT(".memb_constraints = "); @@ -1388,7 +1408,7 @@ emit_member_table(arg_t *arg, asn1p_expr_t *expr) { else p = MKID(expr->Identifier); OUT("static int\n"); - OUT("memb_%s_%d_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,\n", p, global_memb_unique); + OUT("memb_%s_%d_constraint(asn_TYPE_descriptor_t *td, const void *sptr,\n", p, global_memb_unique); INDENT(+1); OUT("\t\tasn_app_consume_bytes_f *app_errlog, void *app_key) {\n"); tmp_arg = *arg; @@ -1413,7 +1433,7 @@ emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode, int tags_ p = MKID(expr->Identifier); if(HIDE_INNER_DEFS) OUT("static /* Use -fall-defs-global to expose */\n"); - OUT("asn1_TYPE_descriptor_t asn1_DEF_%s = {\n", p); + OUT("asn_TYPE_descriptor_t asn_DEF_%s = {\n", p); INDENT(+1); OUT("\"%s\",\n", expr->_anonymous_type?"":expr->Identifier); @@ -1438,9 +1458,9 @@ emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode, int tags_ } if(tags_count) { - OUT("asn1_DEF_%s_tags,\n", p); - OUT("sizeof(asn1_DEF_%s_tags)\n", p); - OUT("\t/sizeof(asn1_DEF_%s_tags[0])", p); + OUT("asn_DEF_%s_tags,\n", p); + OUT("sizeof(asn_DEF_%s_tags)\n", p); + OUT("\t/sizeof(asn_DEF_%s_tags[0])", p); if(tv_mode == _TVM_SUBSET && tags_count != all_tags_count) OUT(" - %d", all_tags_count - tags_count); @@ -1451,14 +1471,14 @@ emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode, int tags_ } if(all_tags_count && tv_mode == _TVM_DIFFERENT) { - OUT("asn1_DEF_%s_all_tags,\n", p); - OUT("sizeof(asn1_DEF_%s_all_tags)\n", p); - OUT("\t/sizeof(asn1_DEF_%s_all_tags[0]), /* %d */\n", + OUT("asn_DEF_%s_all_tags,\n", p); + OUT("sizeof(asn_DEF_%s_all_tags)\n", p); + OUT("\t/sizeof(asn_DEF_%s_all_tags[0]), /* %d */\n", p, all_tags_count); } else if(all_tags_count) { - OUT("asn1_DEF_%s_tags,\t/* Same as above */\n", p); - OUT("sizeof(asn1_DEF_%s_tags)\n", p); - OUT("\t/sizeof(asn1_DEF_%s_tags[0]), /* %d */\n", + OUT("asn_DEF_%s_tags,\t/* Same as above */\n", p); + OUT("sizeof(asn_DEF_%s_tags)\n", p); + OUT("\t/sizeof(asn_DEF_%s_tags[0]), /* %d */\n", p, all_tags_count); } else { OUT("0,\t/* No tags (pointer) */\n"); @@ -1466,7 +1486,7 @@ emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode, int tags_ } if(elements_count) { - OUT("asn1_MBR_%s,\n", p); + OUT("asn_MBR_%s,\n", p); if(expr->expr_type == ASN_CONSTR_SEQUENCE_OF || expr->expr_type == ASN_CONSTR_SET_OF) { OUT("%d,\t/* Single element */\n", @@ -1489,7 +1509,7 @@ emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode, int tags_ OUT("0\t/* No specifics */\n"); break; case ETD_HAS_SPECIFICS: - OUT("&asn1_DEF_%s_specs\t/* Additional specs */\n", p); + OUT("&asn_DEF_%s_specs\t/* Additional specs */\n", p); } INDENT(-1); OUT("};\n"); diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c index 9f2edeca..9a9e667e 100644 --- a/libasn1compiler/asn1c_constraint.c +++ b/libasn1compiler/asn1c_constraint.c @@ -11,7 +11,7 @@ static int emit_alphabet_check_loop(arg_t *arg, asn1cnst_range_t *range); static int emit_value_determination_code(arg_t *arg, asn1p_expr_type_e etype, asn1cnst_range_t *r_value); static int emit_size_determination_code(arg_t *arg, asn1p_expr_type_e etype); static asn1p_expr_type_e _find_terminal_type(arg_t *arg); -static int emit_range_comparison_code(arg_t *arg, asn1cnst_range_t *range, const char *varname, asn1_integer_t natural_start, asn1_integer_t natural_stop); +static int emit_range_comparison_code(arg_t *arg, asn1cnst_range_t *range, const char *varname, asn1c_integer_t natural_start, asn1c_integer_t natural_stop); #define MKID(id) asn1c_make_identifier(0, (id), 0) @@ -187,8 +187,8 @@ asn1c_emit_constraint_checking_code(arg_t *arg) { static int asn1c_emit_constraint_tables(arg_t *arg, int got_size) { - asn1_integer_t range_start; - asn1_integer_t range_stop; + asn1c_integer_t range_start; + asn1c_integer_t range_stop; asn1p_expr_type_e etype; asn1cnst_range_t *range; asn1p_constraint_t *ct; @@ -262,7 +262,7 @@ asn1c_emit_constraint_tables(arg_t *arg, int got_size) { memset(table, 0, sizeof(table)); for(i = -1; i < range->el_count; i++) { asn1cnst_range_t *r; - asn1_integer_t v; + asn1c_integer_t v; if(i == -1) { if(range->el_count) continue; r = range; @@ -362,7 +362,7 @@ asn1c_emit_constraint_tables(arg_t *arg, int got_size) { static int emit_alphabet_check_loop(arg_t *arg, asn1cnst_range_t *range) { - asn1_integer_t natural_stop; + asn1c_integer_t natural_stop; asn1p_expr_t *terminal; terminal = asn1f_find_terminal_type_ex(arg->asn, arg->expr); @@ -439,7 +439,7 @@ emit_alphabet_check_loop(arg_t *arg, asn1cnst_range_t *range) { } static int -emit_range_comparison_code(arg_t *arg, asn1cnst_range_t *range, const char *varname, asn1_integer_t natural_start, asn1_integer_t natural_stop) { +emit_range_comparison_code(arg_t *arg, asn1cnst_range_t *range, const char *varname, asn1c_integer_t natural_start, asn1c_integer_t natural_stop) { int ignore_left; int ignore_right; int generated_something = 0; @@ -573,7 +573,7 @@ emit_value_determination_code(arg_t *arg, asn1p_expr_type_e etype, asn1cnst_rang break; } - OUT("if(asn1_INTEGER2long(st, &value)) {\n"); + OUT("if(asn_INTEGER2long(st, &value)) {\n"); INDENT(+1); OUT("_ASN_ERRLOG(app_errlog, app_key,\n"); OUT("\t\"%%s: value too large (%%s:%%d)\",\n"); @@ -587,7 +587,7 @@ emit_value_determination_code(arg_t *arg, asn1p_expr_type_e etype, asn1cnst_rang if(arg->flags & A1C_USE_NATIVE_TYPES) { OUT("value = *(const double *)sptr;\n"); } else { - OUT("if(asn1_REAL2double(st, &value)) {\n"); + OUT("if(asn_REAL2double(st, &value)) {\n"); INDENT(+1); OUT("_ASN_ERRLOG(app_errlog, app_key,\n"); OUT("\t\"%%s: value too large (%%s:%%d)\",\n"); diff --git a/libasn1compiler/asn1c_out.h b/libasn1compiler/asn1c_out.h index 4c3fc415..8f032211 100644 --- a/libasn1compiler/asn1c_out.h +++ b/libasn1compiler/asn1c_out.h @@ -88,8 +88,8 @@ int asn1c_compiled_output(arg_t *arg, const char *fmt, ...); #define GEN_DECLARE(expr) do { \ int saved_target = arg->target->target; \ REDIR(OT_DEPS); \ - OUT_NOINDENT("extern asn1_TYPE_descriptor_t " \ - "asn1_DEF_%s;\n", \ + OUT_NOINDENT("extern asn_TYPE_descriptor_t " \ + "asn_DEF_%s;\n", \ MKID(expr->Identifier)); \ REDIR(saved_target); \ } while(0) |