Wolfgang Thallergcc16 merge934c3885 months agoHistory
224 lines · 5.6 KB · D
RawDownload
/** * D header file for GNU/Linux * * $(LINK2 http://sourceware.org/git/?p=glibc.git;a=blob;f=dlfcn/dlfcn.h, glibc dlfcn/dlfcn.h) */module core.sys.linux.dlfcn; version (linux):extern (C):nothrow:@nogc: version (ARM)     version = ARM_Any;version (AArch64) version = ARM_Any;version (HPPA)    version = HPPA_Any;version (MIPS32)  version = MIPS_Any;version (MIPS64)  version = MIPS_Any;version (PPC)     version = PPC_Any;version (PPC64)   version = PPC_Any;version (RISCV32) version = RISCV_Any;version (RISCV64) version = RISCV_Any;version (S390)    version = IBMZ_Any;version (SPARC)   version = SPARC_Any;version (SPARC64) version = SPARC_Any;version (SystemZ) version = IBMZ_Any;version (X86)     version = X86_Any;version (X86_64)  version = X86_Any; public import core.sys.posix.dlfcn;import core.sys.linux.config; // <bits/dlfcn.h>version (X86_Any){    // http://sourceware.org/git/?p=glibc.git;a=blob;f=bits/dlfcn.h    static if (_GNU_SOURCE)    {        RT DL_CALL_FCT(RT, Args...)(RT function(Args) fctp, auto ref Args args)        {            _dl_mcount_wrapper_check(cast(void*)fctp);            return fctp(args);        }         void _dl_mcount_wrapper_check(void* __selfpc);    }}else version (HPPA_Any){    // http://sourceware.org/git/?p=glibc.git;a=blob;f=ports/sysdeps/hppa/bits/dlfcn.h    static if (_GNU_SOURCE)    {        RT DL_CALL_FCT(RT, Args...)(RT function(Args) fctp, auto ref Args args)        {            _dl_mcount_wrapper_check(cast(void*)fctp);            return fctp(args);        }         void _dl_mcount_wrapper_check(void* __selfpc);    }}else version (MIPS_Any){    // http://sourceware.org/git/?p=glibc.git;a=blob;f=ports/sysdeps/mips/bits/dlfcn.h    static if (_GNU_SOURCE)    {        RT DL_CALL_FCT(RT, Args...)(RT function(Args) fctp, auto ref Args args)        {            _dl_mcount_wrapper_check(cast(void*)fctp);            return fctp(args);        }         void _dl_mcount_wrapper_check(void* __selfpc);    }}else version (PPC_Any){    // http://sourceware.org/git/?p=glibc.git;a=blob;f=bits/dlfcn.h    static if (_GNU_SOURCE)    {        RT DL_CALL_FCT(RT, Args...)(RT function(Args) fctp, auto ref Args args)        {            _dl_mcount_wrapper_check(cast(void*)fctp);            return fctp(args);        }         void _dl_mcount_wrapper_check(void* __selfpc);    }}else version (ARM_Any){    // http://sourceware.org/git/?p=glibc.git;a=blob;f=bits/dlfcn.h    static if (_GNU_SOURCE)    {        RT DL_CALL_FCT(RT, Args...)(RT function(Args) fctp, auto ref Args args)        {            _dl_mcount_wrapper_check(cast(void*)fctp);            return fctp(args);        }         void _dl_mcount_wrapper_check(void* __selfpc);    }}else version (RISCV_Any){    // http://sourceware.org/git/?p=glibc.git;a=blob;f=bits/dlfcn.h    static if (_GNU_SOURCE)    {        RT DL_CALL_FCT(RT, Args...)(RT function(Args) fctp, auto ref Args args)        {            _dl_mcount_wrapper_check(cast(void*)fctp);            return fctp(args);        }         void _dl_mcount_wrapper_check(void* __selfpc);    }}else version (SPARC_Any){    // http://sourceware.org/git/?p=glibc.git;a=blob;f=bits/dlfcn.h    static if (_GNU_SOURCE)    {        RT DL_CALL_FCT(RT, Args...)(RT function(Args) fctp, auto ref Args args)        {            _dl_mcount_wrapper_check(cast(void*)fctp);            return fctp(args);        }         void _dl_mcount_wrapper_check(void* __selfpc);    }}else version (IBMZ_Any){    // http://sourceware.org/git/?p=glibc.git;a=blob;f=bits/dlfcn.h    static if (_GNU_SOURCE)    {        RT DL_CALL_FCT(RT, Args...)(RT function(Args) fctp, auto ref Args args)        {            _dl_mcount_wrapper_check(cast(void*)fctp);            return fctp(args);        }         void _dl_mcount_wrapper_check(void* __selfpc);    }}else version (LoongArch64){    // http://sourceware.org/git/?p=glibc.git;a=blob;f=bits/dlfcn.h    static if (_GNU_SOURCE)    {        RT DL_CALL_FCT(RT, Args...)(RT function(Args) fctp, auto ref Args args)        {            _dl_mcount_wrapper_check(cast(void*)fctp);            return fctp(args);        }         void _dl_mcount_wrapper_check(void* __selfpc);    }}else    static assert(0, "unimplemented"); // <bits/dlfcn.h> static if (_GNU_SOURCE){    enum RTLD_NEXT = cast(void *)-1L;    enum RTLD_DEFAULT = cast(void *)0;    alias Lmid_t = c_long;    enum LM_ID_BASE = 0;    enum LM_ID_NEWLM = -1;} // void* dlopen(const scope char* __file, int __mode); // POSIX// int dlclose(void* __handle); // POSIX// void* dlsym(void* __handle, const scope char* __name); // POSIX static if (_GNU_SOURCE){    void* dlmopen(Lmid_t __nsid, const scope char* __file, int __mode);    void* dlvsym(void* __handle, const scope char* __name, const scope char* __version);} // char* dlerror(); // POSIX static if (_GNU_SOURCE){    int dladdr1(void* __address, Dl_info* __info, void** __extra_info, int __flags);     enum    {        RTLD_DL_SYMENT = 1,        RTLD_DL_LINKMAP = 2,    }     int dlinfo(void* __handle, int __request, void* __arg);     enum    {        RTLD_DI_LMID = 1,        RTLD_DI_LINKMAP = 2,        RTLD_DI_CONFIGADDR = 3,        RTLD_DI_SERINFO = 4,        RTLD_DI_SERINFOSIZE = 5,        RTLD_DI_ORIGIN = 6,        RTLD_DI_PROFILENAME = 7,        RTLD_DI_PROFILEOUT = 8,        RTLD_DI_TLS_MODID = 9,        RTLD_DI_TLS_DATA = 10,        RTLD_DI_MAX = 10,    }     struct Dl_serpath    {        char* dls_name;        uint dls_flags;    }     struct Dl_serinfo    {        size_t dls_size;        uint dls_cnt;        Dl_serpath[1] dls_serpath;    }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t