]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Python/dynload_os2.c
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Python / dynload_os2.c
CommitLineData
4710c53d 1\r
2/* Support for dynamic loading of extension modules */\r
3\r
4#define INCL_DOSERRORS\r
5#define INCL_DOSMODULEMGR\r
6#include <os2.h>\r
7\r
8#include "Python.h"\r
9#include "importdl.h"\r
10\r
11\r
12const struct filedescr _PyImport_DynLoadFiletab[] = {\r
13 {".pyd", "rb", C_EXTENSION},\r
14 {".dll", "rb", C_EXTENSION},\r
15 {0, 0}\r
16};\r
17\r
18dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname,\r
19 const char *pathname, FILE *fp)\r
20{\r
21 dl_funcptr p;\r
22 APIRET rc;\r
23 HMODULE hDLL;\r
24 char failreason[256];\r
25 char funcname[258];\r
26\r
27 rc = DosLoadModule(failreason,\r
28 sizeof(failreason),\r
29 pathname,\r
30 &hDLL);\r
31\r
32 if (rc != NO_ERROR) {\r
33 char errBuf[256];\r
34 PyOS_snprintf(errBuf, sizeof(errBuf),\r
35 "DLL load failed, rc = %d: %.200s",\r
36 rc, failreason);\r
37 PyErr_SetString(PyExc_ImportError, errBuf);\r
38 return NULL;\r
39 }\r
40\r
41 PyOS_snprintf(funcname, sizeof(funcname), "init%.200s", shortname);\r
42 rc = DosQueryProcAddr(hDLL, 0L, funcname, &p);\r
43 if (rc != NO_ERROR)\r
44 p = NULL; /* Signify Failure to Acquire Entrypoint */\r
45 return p;\r
46}\r