symbian-qemu-0.9.1-12/python-2.6.1/Python/dynload_atheos.c
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 
       
     2 /* Support for dynamic loading of extension modules */
       
     3 
       
     4 #include <atheos/image.h>
       
     5 #include <errno.h>
       
     6 
       
     7 #include "Python.h"
       
     8 #include "importdl.h"
       
     9 
       
    10 
       
    11 const struct filedescr _PyImport_DynLoadFiletab[] = {
       
    12 	{".so", "rb", C_EXTENSION},
       
    13 	{"module.so", "rb", C_EXTENSION},
       
    14 	{0, 0}
       
    15 };
       
    16 
       
    17 dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname,
       
    18 				    const char *pathname, FILE *fp)
       
    19 {
       
    20 	void *p;
       
    21 	int lib;
       
    22 	char funcname[258];
       
    23 
       
    24 	if (Py_VerboseFlag)
       
    25 		printf("load_library %s\n", pathname);
       
    26 
       
    27 	lib = load_library(pathname, 0);
       
    28 	if (lib < 0) {
       
    29 		char buf[512];
       
    30 		if (Py_VerboseFlag)
       
    31 			perror(pathname);
       
    32 		PyOS_snprintf(buf, sizeof(buf), "Failed to load %.200s: %.200s",
       
    33 			      pathname, strerror(errno));
       
    34 		PyErr_SetString(PyExc_ImportError, buf);
       
    35 		return NULL;
       
    36 	}
       
    37 	PyOS_snprintf(funcname, sizeof(funcname), "init%.200s", shortname);
       
    38 	if (Py_VerboseFlag)
       
    39 		printf("get_symbol_address %s\n", funcname);
       
    40 	if (get_symbol_address(lib, funcname, -1, &p) < 0) {
       
    41 		p = NULL;
       
    42 		if (Py_VerboseFlag)
       
    43 			perror(funcname);
       
    44 	}
       
    45 
       
    46 	return (dl_funcptr) p;
       
    47 }