pike.git / src / module_support.h

version» Context lines:

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