parent
bcc034f634
commit
a0cbd235d6
|
|
@ -35,16 +35,16 @@ typedef shl_t ivl_dll_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__MINGW32__)
|
#if defined(__MINGW32__)
|
||||||
inline ivl_dll_t ivl_dlopen(const char *name)
|
static inline ivl_dll_t ivl_dlopen(const char *name)
|
||||||
{ return (void *)LoadLibrary(name); }
|
{ return (void *)LoadLibrary(name); }
|
||||||
|
|
||||||
inline void *ivl_dlsym(ivl_dll_t dll, const char *nm)
|
static inline void *ivl_dlsym(ivl_dll_t dll, const char *nm)
|
||||||
{ return (void *)GetProcAddress((HINSTANCE)dll,nm);}
|
{ return (void *)GetProcAddress((HINSTANCE)dll,nm);}
|
||||||
|
|
||||||
inline void ivl_dlclose(ivl_dll_t dll)
|
static inline void ivl_dlclose(ivl_dll_t dll)
|
||||||
{ (void)FreeLibrary((HINSTANCE)dll);}
|
{ (void)FreeLibrary((HINSTANCE)dll);}
|
||||||
|
|
||||||
inline const char *dlerror(void)
|
static inline const char *dlerror(void)
|
||||||
{
|
{
|
||||||
static char msg[256];
|
static char msg[256];
|
||||||
unsigned long err = GetLastError();
|
unsigned long err = GetLastError();
|
||||||
|
|
@ -61,10 +61,10 @@ inline const char *dlerror(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(HAVE_DLFCN_H)
|
#elif defined(HAVE_DLFCN_H)
|
||||||
inline ivl_dll_t ivl_dlopen(const char*name)
|
static inline ivl_dll_t ivl_dlopen(const char*name)
|
||||||
{ return dlopen(name,RTLD_LAZY); }
|
{ return dlopen(name,RTLD_LAZY); }
|
||||||
|
|
||||||
inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
static inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||||
{
|
{
|
||||||
void*sym = dlsym(dll, nm);
|
void*sym = dlsym(dll, nm);
|
||||||
/* Not found? try without the leading _ */
|
/* Not found? try without the leading _ */
|
||||||
|
|
@ -73,24 +73,24 @@ inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||||
return sym;
|
return sym;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void ivl_dlclose(ivl_dll_t dll)
|
static inline void ivl_dlclose(ivl_dll_t dll)
|
||||||
{ dlclose(dll); }
|
{ dlclose(dll); }
|
||||||
|
|
||||||
#elif defined(HAVE_DL_H)
|
#elif defined(HAVE_DL_H)
|
||||||
inline ivl_dll_t ivl_dlopen(const char*name)
|
static inline ivl_dll_t ivl_dlopen(const char*name)
|
||||||
{ return shl_load(name, BIND_IMMEDIATE, 0); }
|
{ return shl_load(name, BIND_IMMEDIATE, 0); }
|
||||||
|
|
||||||
inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
static inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||||
{
|
{
|
||||||
void*sym;
|
void*sym;
|
||||||
int rc = shl_findsym(&dll, nm, TYPE_PROCEDURE, &sym);
|
int rc = shl_findsym(&dll, nm, TYPE_PROCEDURE, &sym);
|
||||||
return (rc == 0) ? sym : 0;
|
return (rc == 0) ? sym : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void ivl_dlclose(ivl_dll_t dll)
|
static inline void ivl_dlclose(ivl_dll_t dll)
|
||||||
{ shl_unload(dll); }
|
{ shl_unload(dll); }
|
||||||
|
|
||||||
inline const char*dlerror(void)
|
static inline const char*dlerror(void)
|
||||||
{ return strerror( errno ); }
|
{ return strerror( errno ); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue