Export and calling convention annotation for lib/asn1
This commit is contained in:
@@ -64,4 +64,16 @@ typedef struct heim_octet_string heim_any_set;
|
|||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#ifndef ASN1_LIB
|
||||||
|
#define ASN1EXP __declspec(dllimport)
|
||||||
|
#else
|
||||||
|
#define ASN1EXP
|
||||||
|
#endif
|
||||||
|
#define ASN1CALL __stdcall
|
||||||
|
#else
|
||||||
|
#define ASN1EXP
|
||||||
|
#define ASN1CALL
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -228,6 +228,18 @@ init_generate (const char *filename, const char *base)
|
|||||||
" } \\\n"
|
" } \\\n"
|
||||||
" } while (0)\n\n",
|
" } while (0)\n\n",
|
||||||
headerfile);
|
headerfile);
|
||||||
|
fputs("#ifdef _WIN32\n"
|
||||||
|
"#ifndef ASN1_LIB\n"
|
||||||
|
"#define ASN1EXP __declspec(dllimport)\n"
|
||||||
|
"#else\n"
|
||||||
|
"#define ASN1EXP\n"
|
||||||
|
"#endif\n"
|
||||||
|
"#define ASN1CALL __stdcall\n"
|
||||||
|
"#else\n"
|
||||||
|
"#define ASN1EXP\n"
|
||||||
|
"#define ASN1CALL\n"
|
||||||
|
"#endif\n",
|
||||||
|
headerfile);
|
||||||
fprintf (headerfile, "struct units;\n\n");
|
fprintf (headerfile, "struct units;\n\n");
|
||||||
fprintf (headerfile, "#endif\n\n");
|
fprintf (headerfile, "#endif\n\n");
|
||||||
if (asprintf(&fn, "%s_files", base) < 0 || fn == NULL)
|
if (asprintf(&fn, "%s_files", base) < 0 || fn == NULL)
|
||||||
@@ -340,6 +352,7 @@ generate_header_of_codefile(const char *name)
|
|||||||
fprintf (codefile,
|
fprintf (codefile,
|
||||||
"/* Generated from %s */\n"
|
"/* Generated from %s */\n"
|
||||||
"/* Do not edit */\n\n"
|
"/* Do not edit */\n\n"
|
||||||
|
"#define ASN1_LIB\n\n"
|
||||||
"#include <stdio.h>\n"
|
"#include <stdio.h>\n"
|
||||||
"#include <stdlib.h>\n"
|
"#include <stdlib.h>\n"
|
||||||
"#include <time.h>\n"
|
"#include <time.h>\n"
|
||||||
@@ -975,6 +988,7 @@ void
|
|||||||
generate_type (const Symbol *s)
|
generate_type (const Symbol *s)
|
||||||
{
|
{
|
||||||
FILE *h;
|
FILE *h;
|
||||||
|
const char * exp;
|
||||||
|
|
||||||
if (!one_code_file)
|
if (!one_code_file)
|
||||||
generate_header_of_codefile(s->gen_name);
|
generate_header_of_codefile(s->gen_name);
|
||||||
@@ -996,30 +1010,37 @@ generate_type (const Symbol *s)
|
|||||||
|
|
||||||
/* generate prototypes */
|
/* generate prototypes */
|
||||||
|
|
||||||
if (is_export(s->name))
|
if (is_export(s->name)) {
|
||||||
h = headerfile;
|
h = headerfile;
|
||||||
else
|
exp = "ASN1EXP ";
|
||||||
|
} else {
|
||||||
h = privheaderfile;
|
h = privheaderfile;
|
||||||
|
exp = "";
|
||||||
|
}
|
||||||
|
|
||||||
fprintf (h,
|
fprintf (h,
|
||||||
"int "
|
"%sint ASN1CALL "
|
||||||
"decode_%s(const unsigned char *, size_t, %s *, size_t *);\n",
|
"decode_%s(const unsigned char *, size_t, %s *, size_t *);\n",
|
||||||
|
exp,
|
||||||
s->gen_name, s->gen_name);
|
s->gen_name, s->gen_name);
|
||||||
fprintf (h,
|
fprintf (h,
|
||||||
"int "
|
"%sint ASN1CALL "
|
||||||
"encode_%s(unsigned char *, size_t, const %s *, size_t *);\n",
|
"encode_%s(unsigned char *, size_t, const %s *, size_t *);\n",
|
||||||
|
exp,
|
||||||
s->gen_name, s->gen_name);
|
s->gen_name, s->gen_name);
|
||||||
fprintf (h,
|
fprintf (h,
|
||||||
"size_t length_%s(const %s *);\n",
|
"%ssize_t ASN1CALL length_%s(const %s *);\n",
|
||||||
|
exp,
|
||||||
s->gen_name, s->gen_name);
|
s->gen_name, s->gen_name);
|
||||||
fprintf (h,
|
fprintf (h,
|
||||||
"int copy_%s (const %s *, %s *);\n",
|
"%sint ASN1CALL copy_%s (const %s *, %s *);\n",
|
||||||
|
exp,
|
||||||
s->gen_name, s->gen_name, s->gen_name);
|
s->gen_name, s->gen_name, s->gen_name);
|
||||||
fprintf (h,
|
fprintf (h,
|
||||||
"void free_%s (%s *);\n",
|
"%svoid ASN1CALL free_%s (%s *);\n",
|
||||||
|
exp,
|
||||||
s->gen_name, s->gen_name);
|
s->gen_name, s->gen_name);
|
||||||
|
|
||||||
|
|
||||||
fprintf(h, "\n\n");
|
fprintf(h, "\n\n");
|
||||||
|
|
||||||
if (!one_code_file) {
|
if (!one_code_file) {
|
||||||
|
@@ -231,7 +231,7 @@ generate_type_copy (const Symbol *s)
|
|||||||
|
|
||||||
used_fail = 0;
|
used_fail = 0;
|
||||||
|
|
||||||
fprintf (codefile, "int\n"
|
fprintf (codefile, "int ASN1CALL\n"
|
||||||
"copy_%s(const %s *from, %s *to)\n"
|
"copy_%s(const %s *from, %s *to)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
"memset(to, 0, sizeof(*to));\n",
|
"memset(to, 0, sizeof(*to));\n",
|
||||||
|
@@ -661,7 +661,7 @@ generate_type_decode (const Symbol *s)
|
|||||||
{
|
{
|
||||||
int preserve = preserve_type(s->name) ? TRUE : FALSE;
|
int preserve = preserve_type(s->name) ? TRUE : FALSE;
|
||||||
|
|
||||||
fprintf (codefile, "int\n"
|
fprintf (codefile, "int ASN1CALL\n"
|
||||||
"decode_%s(const unsigned char *p,"
|
"decode_%s(const unsigned char *p,"
|
||||||
" size_t len, %s *data, size_t *size)\n"
|
" size_t len, %s *data, size_t *size)\n"
|
||||||
"{\n",
|
"{\n",
|
||||||
|
@@ -502,7 +502,7 @@ encode_type (const char *name, const Type *t, const char *tmpstr)
|
|||||||
void
|
void
|
||||||
generate_type_encode (const Symbol *s)
|
generate_type_encode (const Symbol *s)
|
||||||
{
|
{
|
||||||
fprintf (codefile, "int\n"
|
fprintf (codefile, "int ASN1CALL\n"
|
||||||
"encode_%s(unsigned char *p, size_t len,"
|
"encode_%s(unsigned char *p, size_t len,"
|
||||||
" const %s *data, size_t *size)\n"
|
" const %s *data, size_t *size)\n"
|
||||||
"{\n",
|
"{\n",
|
||||||
|
@@ -180,7 +180,7 @@ generate_type_free (const Symbol *s)
|
|||||||
{
|
{
|
||||||
int preserve = preserve_type(s->name) ? TRUE : FALSE;
|
int preserve = preserve_type(s->name) ? TRUE : FALSE;
|
||||||
|
|
||||||
fprintf (codefile, "void\n"
|
fprintf (codefile, "void ASN1CALL\n"
|
||||||
"free_%s(%s *data)\n"
|
"free_%s(%s *data)\n"
|
||||||
"{\n",
|
"{\n",
|
||||||
s->gen_name, s->gen_name);
|
s->gen_name, s->gen_name);
|
||||||
|
@@ -267,7 +267,7 @@ void
|
|||||||
generate_type_length (const Symbol *s)
|
generate_type_length (const Symbol *s)
|
||||||
{
|
{
|
||||||
fprintf (codefile,
|
fprintf (codefile,
|
||||||
"size_t\n"
|
"size_t ASN1CALL\n"
|
||||||
"length_%s(const %s *data)\n"
|
"length_%s(const %s *data)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
"size_t ret = 0;\n",
|
"size_t ret = 0;\n",
|
||||||
|
@@ -67,12 +67,12 @@ generate_type_seq (const Symbol *s)
|
|||||||
subname = type->subtype->symbol->gen_name;
|
subname = type->subtype->symbol->gen_name;
|
||||||
|
|
||||||
fprintf (headerfile,
|
fprintf (headerfile,
|
||||||
"int add_%s (%s *, const %s *);\n"
|
"ASN1EXP int ASN1CALL add_%s (%s *, const %s *);\n"
|
||||||
"int remove_%s (%s *, unsigned int);\n",
|
"ASN1EXP int ASN1CALL remove_%s (%s *, unsigned int);\n",
|
||||||
s->gen_name, s->gen_name, subname,
|
s->gen_name, s->gen_name, subname,
|
||||||
s->gen_name, s->gen_name);
|
s->gen_name, s->gen_name);
|
||||||
|
|
||||||
fprintf (codefile, "int\n"
|
fprintf (codefile, "int ASN1CALL\n"
|
||||||
"add_%s(%s *data, const %s *element)\n"
|
"add_%s(%s *data, const %s *element)\n"
|
||||||
"{\n",
|
"{\n",
|
||||||
s->gen_name, s->gen_name, subname);
|
s->gen_name, s->gen_name, subname);
|
||||||
@@ -93,7 +93,7 @@ generate_type_seq (const Symbol *s)
|
|||||||
|
|
||||||
fprintf (codefile, "}\n\n");
|
fprintf (codefile, "}\n\n");
|
||||||
|
|
||||||
fprintf (codefile, "int\n"
|
fprintf (codefile, "int ASN1CALL\n"
|
||||||
"remove_%s(%s *data, unsigned int element)\n"
|
"remove_%s(%s *data, unsigned int element)\n"
|
||||||
"{\n",
|
"{\n",
|
||||||
s->gen_name, s->gen_name);
|
s->gen_name, s->gen_name);
|
||||||
|
Reference in New Issue
Block a user