cpython-withatomic / Python / dynload_os2.c

/* Support for dynamic loading of extension modules */

#include <os2.h>

#include "Python.h"
#include "importdl.h"

const struct filedescr _PyImport_DynLoadFiletab[] = {
    {".pyd", "rb", C_EXTENSION},
    {".dll", "rb", C_EXTENSION},
    {0, 0}

dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname,
                                    const char *pathname, FILE *fp)
    dl_funcptr p;
    APIRET  rc;
    char failreason[256];
    char funcname[258];

    rc = DosLoadModule(failreason,

    if (rc != NO_ERROR) {
        char errBuf[256];
        PyOS_snprintf(errBuf, sizeof(errBuf),
                      "DLL load failed, rc = %d: %.200s",
                      rc, failreason);
        PyErr_SetString(PyExc_ImportError, errBuf);
        return NULL;

    PyOS_snprintf(funcname, sizeof(funcname), "init%.200s", shortname);
    rc = DosQueryProcAddr(hDLL, 0L, funcname, &p);
    if (rc != NO_ERROR)
        p = NULL; /* Signify Failure to Acquire Entrypoint */
    return p;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.