Guido van Rossum | 9f65081 | 1999-12-20 21:22:24 +0000 | [diff] [blame] | 1 | #ifndef Py_IMPORTDL_H |
| 2 | #define Py_IMPORTDL_H |
| 3 | |
| 4 | #ifdef __cplusplus |
| 5 | extern "C" { |
| 6 | #endif |
| 7 | |
Guido van Rossum | 1ae940a | 1995-01-02 19:04:15 +0000 | [diff] [blame] | 8 | /*********************************************************** |
Guido van Rossum | fd71b9e | 2000-06-30 23:50:40 +0000 | [diff] [blame] | 9 | Copyright (c) 2000, BeOpen.com. |
| 10 | Copyright (c) 1995-2000, Corporation for National Research Initiatives. |
| 11 | Copyright (c) 1990-1995, Stichting Mathematisch Centrum. |
| 12 | All rights reserved. |
Guido van Rossum | 1ae940a | 1995-01-02 19:04:15 +0000 | [diff] [blame] | 13 | |
Guido van Rossum | fd71b9e | 2000-06-30 23:50:40 +0000 | [diff] [blame] | 14 | See the file "Misc/COPYRIGHT" for information on usage and |
| 15 | redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. |
Guido van Rossum | 1ae940a | 1995-01-02 19:04:15 +0000 | [diff] [blame] | 16 | ******************************************************************/ |
| 17 | |
| 18 | /* Definitions for dynamic loading of extension modules */ |
Guido van Rossum | aee0bad | 1997-09-05 07:33:22 +0000 | [diff] [blame] | 19 | enum filetype { |
| 20 | SEARCH_ERROR, |
| 21 | PY_SOURCE, |
| 22 | PY_COMPILED, |
| 23 | C_EXTENSION, |
| 24 | PY_RESOURCE, /* Mac only */ |
| 25 | PKG_DIRECTORY, |
| 26 | C_BUILTIN, |
Guido van Rossum | 9c241ba | 1998-08-06 13:36:43 +0000 | [diff] [blame] | 27 | PY_FROZEN, |
| 28 | PY_CODERESOURCE /* Mac only */ |
Guido van Rossum | aee0bad | 1997-09-05 07:33:22 +0000 | [diff] [blame] | 29 | }; |
Guido van Rossum | 1ae940a | 1995-01-02 19:04:15 +0000 | [diff] [blame] | 30 | |
Guido van Rossum | 9f65081 | 1999-12-20 21:22:24 +0000 | [diff] [blame] | 31 | struct filedescr { |
Guido van Rossum | 1ae940a | 1995-01-02 19:04:15 +0000 | [diff] [blame] | 32 | char *suffix; |
| 33 | char *mode; |
| 34 | enum filetype type; |
Guido van Rossum | 9f65081 | 1999-12-20 21:22:24 +0000 | [diff] [blame] | 35 | }; |
| 36 | extern struct filedescr * _PyImport_Filetab; |
| 37 | extern const struct filedescr _PyImport_DynLoadFiletab[]; |
Guido van Rossum | 1ae940a | 1995-01-02 19:04:15 +0000 | [diff] [blame] | 38 | |
Tim Peters | dbd9ba6 | 2000-07-09 03:09:57 +0000 | [diff] [blame] | 39 | extern PyObject *_PyImport_LoadDynamicModule(char *name, char *pathname, |
| 40 | FILE *); |
Guido van Rossum | 1ae940a | 1995-01-02 19:04:15 +0000 | [diff] [blame] | 41 | |
Guido van Rossum | ef3d02e | 1997-07-21 14:54:36 +0000 | [diff] [blame] | 42 | /* Max length of module suffix searched for -- accommodates "module.slb" */ |
| 43 | #define MAXSUFFIXSIZE 12 |
Guido van Rossum | 9f65081 | 1999-12-20 21:22:24 +0000 | [diff] [blame] | 44 | |
| 45 | #ifdef MS_WINDOWS |
Guido van Rossum | 9528886 | 1999-12-20 22:55:03 +0000 | [diff] [blame] | 46 | #include <windows.h> |
Guido van Rossum | 9f65081 | 1999-12-20 21:22:24 +0000 | [diff] [blame] | 47 | typedef FARPROC dl_funcptr; |
| 48 | #else |
| 49 | #ifdef PYOS_OS2 |
| 50 | typedef int (* APIENTRY dl_funcptr)(); |
| 51 | #else |
| 52 | typedef void (*dl_funcptr)(void); |
| 53 | #endif |
| 54 | #endif |
| 55 | |
| 56 | |
| 57 | #ifdef __cplusplus |
| 58 | } |
| 59 | #endif |
| 60 | #endif /* !Py_IMPORTDL_H */ |