1#ifndef __VSF_LINUX_DLFCN_H__
2#define __VSF_LINUX_DLFCN_H__
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED && VSF_LINUX_USE_SIMPLE_LIBC == ENABLED
20#if VSF_LINUX_CFG_WRAPPER == ENABLED
21#define dlopen VSF_LINUX_WRAPPER(dlopen)
22#define dlclose VSF_LINUX_WRAPPER(dlclose)
23#define dlsym VSF_LINUX_WRAPPER(dlsym)
24#define dlerror VSF_LINUX_WRAPPER(dlerror)
32#define RTLD_DEFAULT ((void *)0)
34#if VSF_LINUX_APPLET_USE_DLFCN == ENABLED
43# ifndef __VSF_APPLET__
48#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_DLFCN_LIB__))\
49 && VSF_LINUX_APPLET_USE_DLFCN == ENABLED
51#ifndef VSF_LINUX_APPLET_DLFCN_VPLT
52# if VSF_LINUX_USE_APPLET == ENABLED
53# define VSF_LINUX_APPLET_DLFCN_VPLT \
54 ((vsf_linux_dlfcn_vplt_t *)(VSF_LINUX_APPLET_VPLT->dlfcn_vplt))
56# define VSF_LINUX_APPLET_DLFCN_VPLT \
57 ((vsf_linux_dlfcn_vplt_t *)vsf_vplt((void *)0))
61#define VSF_LINUX_APPLET_DLFCN_ENTRY(__NAME) \
62 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_DLFCN_VPLT, __NAME)
63#define VSF_LINUX_APPLET_DLFCN_IMP(...) \
64 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_DLFCN_VPLT, __VA_ARGS__)
66VSF_LINUX_APPLET_DLFCN_IMP(
dlopen,
void *,
const char *pathname,
int mode) {
67 return VSF_LINUX_APPLET_DLFCN_ENTRY(
dlopen)(pathname, mode);
69VSF_LINUX_APPLET_DLFCN_IMP(
dlclose,
int,
void *handle) {
70 return VSF_LINUX_APPLET_DLFCN_ENTRY(
dlclose)(handle);
72VSF_LINUX_APPLET_DLFCN_IMP(
dlsym,
void *,
void *handle,
const char *name) {
73 return VSF_LINUX_APPLET_DLFCN_ENTRY(
dlsym)(handle, name);
75VSF_LINUX_APPLET_DLFCN_IMP(
dlerror,
char *,
void) {
76 return VSF_LINUX_APPLET_DLFCN_ENTRY(
dlerror)();
81#if VSF_USE_LOADER == ENABLED
84#if VSF_LOADER_USE_ELF == ENABLED
87#if VSF_LOADER_USE_PE == ENABLED
96void *
dlopen(
const char *pathname,
int mode);
98void *
dlsym(
void *handle,
const char *name);
Definition vsf_elfloader.h:60
Definition vsf_loader.h:176
Definition vsf_peloader.h:58
#define dlopen
Definition dlfcn.h:21
__VSF_VPLT_DECORATOR__ vsf_linux_dlfcn_vplt_t vsf_linux_dlfcn_vplt
Definition vsf_linux.c:4949
#define dlerror
Definition dlfcn.h:24
#define dlsym
Definition dlfcn.h:23
#define dlclose
Definition dlfcn.h:22
vsf_vplt_info_t info
Definition dlfcn.h:36
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(dlsym)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(dlopen)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(dlclose)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(dlerror)
vsf_elfloader_t elfloader
Definition dlfcn.h:85
vsf_loader_target_t target
Definition dlfcn.h:92
vsf_peloader_t peloader
Definition dlfcn.h:88
union vsf_linux_dynloader_t::@840 loader
Definition vsf_loader.h:132
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93