pike.git
/
src
/
module_support.h
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/module_support.h:1:
/*\ ||| This file a part of Pike, and is copyright by Fredrik Hubinette ||| Pike is distributed as GPL (General Public License) ||| See the files COPYING and DISCLAIMER for more information. \*/ /*
-
* $Id: module_support.h,v 1.
7
2000/
07
/
28
17
:
16
:
55
hubbe Exp $
+
* $Id: module_support.h,v 1.
8
2000/
12
/
13
21
:
35
:
05
hubbe Exp $
*/ #ifndef MODULE_SUPPORT_H #include <stdarg.h> enum error_type { ERR_NONE, ERR_TOO_FEW, ERR_TOO_MANY, ERR_BAD_ARG }; struct expect_result { enum error_type error_type; int argno; /* Which argument was it */ unsigned INT32 expected; /* What type was expected */ TYPE_T got; /* What type did we actually receive */ };
-
+
/* This should be used in module_init */
+
#define PIKE_MODULE_EXPORT(MOD, SYM) \
+
pike_module_export_symbol(#MOD "." #SYM, CONSTANT_STRLEN(#MOD "." #SYM), SYM)
-
+
#define PIKE_MODULE_IMPORT(MOD, SYM) \
+
pike_module_import_symbol(#MOD "." #SYM, CONSTANT_STRLEN(#MOD "." #SYM), #MOD, CONSTANT_STRLEN(#MOD))
+
+
/* Prototypes begin here */ PMOD_EXPORT int check_args(int args, ...); PMOD_EXPORT void check_all_args(const char *fnname, int args, ... ); int va_get_args(struct svalue *s, INT32 num_args, char *fmt, va_list ap); PMOD_EXPORT int get_args(struct svalue *s, INT32 num_args, char *fmt, ...); PMOD_EXPORT void get_all_args(char *fname, INT32 args, char *format, ... );
-
+
PMOD_EXPORT void pike_module_export_symbol(char *str,
+
int len,
+
void *ptr);
+
PMOD_EXPORT void *pike_module_import_symbol(char *str,
+
int len,
+
char *module,
+
int module_len);
/* Prototypes end here */ #endif