diff --git a/lib/asn1/gen_glue.c b/lib/asn1/gen_glue.c index 356b7e948..b4e98e07f 100644 --- a/lib/asn1/gen_glue.c +++ b/lib/asn1/gen_glue.c @@ -103,11 +103,11 @@ generate_units (const Symbol *s) int tag = -1; fprintf (headerfile, - "extern struct units %s_units[];", + "const struct units * asn1_%s_units(void);", s->gen_name); fprintf (codefile, - "struct units %s_units[] = {\n", + "static struct units %s_units[] = {\n", s->gen_name); if(t->members) @@ -122,6 +122,14 @@ generate_units (const Symbol *s) fprintf (codefile, "\t{NULL,\t0}\n" "};\n\n"); + + fprintf (codefile, + "const struct units * asn1_%s_units(void){\n" + "return %s_units;\n" + "}\n\n", + s->gen_name, s->gen_name); + + } void