Home | History | Annotate | Download | only in Python
      1 #ifndef Py_IMPORTDL_H
      2 #define Py_IMPORTDL_H
      3 
      4 #ifdef __cplusplus
      5 extern "C" {
      6 #endif
      7 
      8 
      9 /* Definitions for dynamic loading of extension modules */
     10 enum filetype {
     11     SEARCH_ERROR,
     12     PY_SOURCE,
     13     PY_COMPILED,
     14     C_EXTENSION,
     15     PY_RESOURCE, /* Mac only */
     16     PKG_DIRECTORY,
     17     C_BUILTIN,
     18     PY_FROZEN,
     19     PY_CODERESOURCE, /* Mac only */
     20     IMP_HOOK
     21 };
     22 
     23 struct filedescr {
     24     char *suffix;
     25     char *mode;
     26     enum filetype type;
     27 };
     28 extern struct filedescr * _PyImport_Filetab;
     29 extern const struct filedescr _PyImport_DynLoadFiletab[];
     30 
     31 extern PyObject *_PyImport_LoadDynamicModule(char *name, char *pathname,
     32                                              FILE *);
     33 
     34 /* Max length of module suffix searched for -- accommodates "module.slb" */
     35 #define MAXSUFFIXSIZE 12
     36 
     37 #ifdef MS_WINDOWS
     38 #include <windows.h>
     39 typedef FARPROC dl_funcptr;
     40 #else
     41 #if defined(PYOS_OS2) && !defined(PYCC_GCC)
     42 #include <os2def.h>
     43 typedef int (* APIENTRY dl_funcptr)();
     44 #else
     45 typedef void (*dl_funcptr)(void);
     46 #endif
     47 #endif
     48 
     49 
     50 #ifdef __cplusplus
     51 }
     52 #endif
     53 #endif /* !Py_IMPORTDL_H */
     54