Skip to content
Snippets Groups Projects
Select Git revision
  • 37f25f066869f4f5645288a9913ed65d53b14cfd
  • master default protected
  • 9.0
  • 8.0
  • 7.8
  • 7.6
  • 7.4
  • 7.2
  • 7.0
  • 0.6
  • rosuav/latex-markdown-renderer
  • rxnpatch/rxnpatch
  • marcus/gobject-introspection
  • rxnpatch/8.0
  • rosuav/pre-listening-ports
  • nt-tools
  • rosuav/async-annotations
  • rosuav/pgsql-ssl
  • rxnpatch/rxnpatch-broken/2023-10-06T094250
  • grubba/fdlib
  • grubba/wip/sakura/8.0
  • v8.0.2000
  • v8.0.1998
  • v8.0.1996
  • v8.0.1994
  • v8.0.1992
  • v8.0.1990
  • v8.0.1988
  • v8.0.1986
  • rxnpatch/clusters/8.0/2025-04-29T124414
  • rxnpatch/2025-04-29T124414
  • v8.0.1984
  • v8.0.1982
  • v8.0.1980
  • v8.0.1978
  • v8.0.1976
  • v8.0.1974
  • v8.0.1972
  • v8.0.1970
  • v8.0.1968
  • v8.0.1966
41 results

module_support.h

Blame
  • module_support.h 1.65 KiB
    /*
    || This file is part of Pike. For copyright information see COPYRIGHT.
    || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
    || for more information.
    */
    
    #ifndef MODULE_SUPPORT_H
    #define MODULE_SUPPORT_H
    
    #include "module.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), (void *)SYM)
    
    #define PIKE_MODULE_IMPORT(MOD, SYM) \
      pike_module_import_symbol(#MOD "." #SYM, CONSTANT_STRLEN(#MOD "." #SYM), #MOD, CONSTANT_STRLEN(#MOD))
    
    #define HIDE_MODULE() ADD_INT_CONSTANT("this_program_does_not_exist",1,0)
    
    /* 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,
    		const char *fmt,
    		va_list ap);
    #ifdef NOT_USED
    PMOD_EXPORT int get_args(struct svalue *s,
    	     INT32 num_args,
    	     const char *fmt, ...);
    #endif
    PMOD_EXPORT void get_all_args(const char *fname, INT32 args,
    			      const char *format,  ... );
    PMOD_EXPORT void pike_module_export_symbol(const char *str,
    					   int len,
    					   void *ptr);
    PMOD_EXPORT void *pike_module_import_symbol(const char *str,
    					    int len,
    					    const char *module,
    					    int module_len);
    void cleanup_module_support (void);
    /* Prototypes end here */
    
    #endif