PATH:
usr
/
include
/* User functions for run-time dynamic loading. Copyright (C) 1995-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _DLFCN_H #define _DLFCN_H 1 #include <features.h> #define __need_size_t #include <stddef.h> /* Collect various system dependent definitions and declarations. */ #include <bits/dlfcn.h> #ifdef __USE_GNU #include <bits/dl_find_object.h> /* If the first argument of `dlsym' or `dlvsym' is set to RTLD_NEXT the run-time address of the symbol called NAME in the next shared object is returned. The "next" relation is defined by the order the shared objects were loaded. */ # define RTLD_NEXT ((void *) -1l) /* If the first argument to `dlsym' or `dlvsym' is set to RTLD_DEFAULT the run-time address of the symbol called NAME in the global scope is returned. */ # define RTLD_DEFAULT ((void *) 0) /* Type for namespace indices. */ typedef long int Lmid_t; /* Special namespace ID values. */ # define LM_ID_BASE 0 /* Initial namespace. */ # define LM_ID_NEWLM -1 /* For dlmopen: request new namespace. */ #endif __BEGIN_DECLS /* Open the shared object FILE and map it in; return a handle that can be passed to `dlsym' to get symbol values from it. */ extern void *dlopen (const char *__file, int __mode) __THROWNL; /* Unmap and close a shared object opened by `dlopen'. The handle cannot be used again after calling `dlclose'. */ extern int dlclose (void *__handle) __THROWNL __nonnull ((1)); /* Find the run-time address in the shared object HANDLE refers to of the symbol called NAME. */ extern void *dlsym (void *__restrict __handle, const char *__restrict __name) __THROW __nonnull ((2)); #ifdef __USE_GNU /* Like `dlopen', but request object to be allocated in a new namespace. */ extern void *dlmopen (Lmid_t __nsid, const char *__file, int __mode) __THROWNL; /* Find the run-time address in the shared object HANDLE refers to of the symbol called NAME with VERSION. */ extern void *dlvsym (void *__restrict __handle, const char *__restrict __name, const char *__restrict __version) __THROW __nonnull ((2, 3)); #endif /* When any of the above functions fails, call this function to return a string describing the error. Each call resets the error string so that a following call returns null. */ extern char *dlerror (void) __THROW; #ifdef __USE_GNU /* Structure containing information about object searched using `dladdr'. */ typedef struct { const char *dli_fname; /* File name of defining object. */ void *dli_fbase; /* Load address of that object. */ const char *dli_sname; /* Name of nearest symbol. */ void *dli_saddr; /* Exact value of nearest symbol. */ } Dl_info; /* Fill in *INFO with the following information about ADDRESS. Returns 0 iff no shared object's segments contain that address. */ extern int dladdr (const void *__address, Dl_info *__info) __THROW __nonnull ((2)); /* Same as `dladdr', but additionally sets *EXTRA_INFO according to FLAGS. */ extern int dladdr1 (const void *__address, Dl_info *__info, void **__extra_info, int __flags) __THROW __nonnull ((2)); /* These are the possible values for the FLAGS argument to `dladdr1'. This indicates what extra information is stored at *EXTRA_INFO. It may also be zero, in which case the EXTRA_INFO argument is not used. */ enum { /* Matching symbol table entry (const ElfNN_Sym *). */ RTLD_DL_SYMENT = 1, /* The object containing the address (struct link_map *). */ RTLD_DL_LINKMAP = 2 }; /* Get information about the shared object HANDLE refers to. REQUEST is from among the values below, and determines the use of ARG. On success, returns zero. On failure, returns -1 and records an error message to be fetched with `dlerror'. */ extern int dlinfo (void *__restrict __handle, int __request, void *__restrict __arg) __THROW __nonnull ((1, 3)); /* These are the possible values for the REQUEST argument to `dlinfo'. */ enum { /* Treat ARG as `lmid_t *'; store namespace ID for HANDLE there. */ RTLD_DI_LMID = 1, /* Treat ARG as `struct link_map **'; store the `struct link_map *' for HANDLE there. */ RTLD_DI_LINKMAP = 2, RTLD_DI_CONFIGADDR = 3, /* Unsupported, defined by Solaris. */ /* Treat ARG as `Dl_serinfo *' (see below), and fill in to describe the directories that will be searched for dependencies of this object. RTLD_DI_SERINFOSIZE fills in just the `dls_cnt' and `dls_size' entries to indicate the size of the buffer that must be passed to RTLD_DI_SERINFO to fill in the full information. */ RTLD_DI_SERINFO = 4, RTLD_DI_SERINFOSIZE = 5, /* Treat ARG as `char *', and store there the directory name used to expand $ORIGIN in this shared object's dependency file names. */ RTLD_DI_ORIGIN = 6, RTLD_DI_PROFILENAME = 7, /* Unsupported, defined by Solaris. */ RTLD_DI_PROFILEOUT = 8, /* Unsupported, defined by Solaris. */ /* Treat ARG as `size_t *', and store there the TLS module ID of this object's PT_TLS segment, as used in TLS relocations; store zero if this object does not define a PT_TLS segment. */ RTLD_DI_TLS_MODID = 9, /* Treat ARG as `void **', and store there a pointer to the calling thread's TLS block corresponding to this object's PT_TLS segment. Store a null pointer if this object does not define a PT_TLS segment, or if the calling thread has not allocated a block for it. */ RTLD_DI_TLS_DATA = 10, /* Treat ARG as const ElfW(Phdr) **, and store the address of the program header array at that location. The dlinfo call returns the number of program headers in the array. */ RTLD_DI_PHDR = 11, RTLD_DI_MAX = 11 }; /* This is the type of elements in `Dl_serinfo', below. The `dls_name' member points to space in the buffer passed to `dlinfo'. */ typedef struct { char *dls_name; /* Name of library search path directory. */ unsigned int dls_flags; /* Indicates where this directory came from. */ } Dl_serpath; /* This is the structure that must be passed (by reference) to `dlinfo' for the RTLD_DI_SERINFO and RTLD_DI_SERINFOSIZE requests. */ typedef struct { size_t dls_size; /* Size in bytes of the whole buffer. */ unsigned int dls_cnt; /* Number of elements in `dls_serpath'. */ # if __GNUC_PREREQ (3, 0) /* The zero-length array avoids an unwanted array subscript check by the compiler, while the surrounding anonymous union preserves the historic size of the type. At the time of writing, GNU C does not support structs with flexible array members in unions. */ __extension__ union { Dl_serpath dls_serpath[0]; /* Actually longer, dls_cnt elements. */ Dl_serpath __dls_serpath_pad[1]; }; # else Dl_serpath dls_serpath[1]; /* Actually longer, dls_cnt elements. */ # endif } Dl_serinfo; struct dl_find_object { __extension__ unsigned long long int dlfo_flags; void *dlfo_map_start; /* Beginning of mapping containing address. */ void *dlfo_map_end; /* End of mapping. */ struct link_map *dlfo_link_map; void *dlfo_eh_frame; /* Exception handling data of the object. */ # if DLFO_STRUCT_HAS_EH_DBASE void *dlfo_eh_dbase; /* Base address for DW_EH_PE_datarel. */ # if __WORDSIZE == 32 unsigned int __dlfo_eh_dbase_pad; # endif # endif # if DLFO_STRUCT_HAS_EH_COUNT int dlfo_eh_count; /* Number of exception handling entries. */ unsigned int __dlfo_eh_count_pad; # endif __extension__ unsigned long long int __dflo_reserved[7]; }; /* If ADDRESS is found in an object, fill in *RESULT and return 0. Otherwise, return -1. */ int _dl_find_object (void *__address, struct dl_find_object *__result) __THROW; #endif /* __USE_GNU */ __END_DECLS #endif /* dlfcn.h */
[+]
..
[-] iconv.h
[edit]
[-] evrpc.h
[edit]
[+]
gnu
[-] expat_config.h
[edit]
[-] ctype.h
[edit]
[-] limits.h
[edit]
[-] tar.h
[edit]
[-] evdns.h
[edit]
[-] mcheck.h
[edit]
[+]
libxslt
[-] utmp.h
[edit]
[-] printf.h
[edit]
[-] term.h
[edit]
[+]
gssrpc
[-] time.h
[edit]
[-] nl_types.h
[edit]
[-] gdfontl.h
[edit]
[+]
netipx
[+]
asm-generic
[-] termios.h
[edit]
[-] gd.h
[edit]
[-] pcre2.h
[edit]
[+]
fontconfig
[-] gpg-error.h
[edit]
[-] ftw.h
[edit]
[+]
c++
[-] maxminddb_config-64.h
[edit]
[-] features-time64.h
[edit]
[-] cpuidle.h
[edit]
[-] event.h
[edit]
[-] gnu-versions.h
[edit]
[+]
asm
[-] png.h
[edit]
[-] krb5.h
[edit]
[-] pcre_scanner.h
[edit]
[-] fts.h
[edit]
[-] threads.h
[edit]
[+]
gssapi
[-] jpeglib.h
[edit]
[-] utmpx.h
[edit]
[+]
sound
[-] complex.h
[edit]
[-] err.h
[edit]
[-] strings.h
[edit]
[-] pcrecpparg.h
[edit]
[-] spawn.h
[edit]
[+]
finclude
[-] panel.h
[edit]
[-] fmtmsg.h
[edit]
[+]
xcb
[+]
brotli
[-] tiffio.hxx
[edit]
[-] verto-module.h
[edit]
[-] idna.h
[edit]
[-] jconfig.h
[edit]
[-] tld.h
[edit]
[+]
rpc
[+]
netinet
[-] maxminddb.h
[edit]
[+]
drm
[-] thread_db.h
[edit]
[+]
neteconet
[-] autosprintf.h
[edit]
[+]
google
[-] dlfcn.h
[edit]
[-] ncurses_dll.h
[edit]
[-] tiff.h
[edit]
[+]
ext2fs
[-] monetary.h
[edit]
[-] gdfontt.h
[edit]
[-] wait.h
[edit]
[-] keyutils.h
[edit]
[+]
sepol
[-] sgtty.h
[edit]
[-] jerror.h
[edit]
[-] form.h
[edit]
[-] assert.h
[edit]
[-] tic.h
[edit]
[-] mntent.h
[edit]
[-] cursesm.h
[edit]
[-] stdio.h
[edit]
[-] error.h
[edit]
[-] execinfo.h
[edit]
[-] ieee754.h
[edit]
[-] menu.h
[edit]
[-] cursesp.h
[edit]
[+]
libmount
[-] ltdl.h
[edit]
[-] cursesw.h
[edit]
[-] jpegint.h
[edit]
[-] entities.h
[edit]
[+]
rdma
[-] lzma.h
[edit]
[-] zlib.h
[edit]
[-] pwd.h
[edit]
[+]
nfs
[+]
python3.9
[-] nc_tparm.h
[edit]
[-] gdfontg.h
[edit]
[-] gconv.h
[edit]
[-] termcap.h
[edit]
[-] etip.h
[edit]
[+]
libltdl
[+]
et
[+]
protobuf-c
[+]
bits
[+]
net
[-] ttyent.h
[edit]
[-] inttypes.h
[edit]
[-] nss.h
[edit]
[-] semaphore.h
[edit]
[-] kdb.h
[edit]
[+]
arpa
[-] alloca.h
[edit]
[-] ucontext.h
[edit]
[-] tgmath.h
[edit]
[-] tiffvers.h
[edit]
[-] fenv.h
[edit]
[-] gdfonts.h
[edit]
[-] string.h
[edit]
[-] ffitarget.h
[edit]
[-] lmdb.h
[edit]
[-] fpu_control.h
[edit]
[+]
unicode
[-] byteswap.h
[edit]
[-] setjmp.h
[edit]
[+]
sys
[-] pr29.h
[edit]
[-] zconf.h
[edit]
[-] stdint.h
[edit]
[-] errno.h
[edit]
[-] mqueue.h
[edit]
[-] evutil.h
[edit]
[+]
harfbuzz
[-] ffi-x86_64.h
[edit]
[-] grp.h
[edit]
[-] gdfontmb.h
[edit]
[-] stdc-predef.h
[edit]
[-] malloc.h
[edit]
[-] tiffconf.h
[edit]
[-] pnglibconf.h
[edit]
[-] tiffconf-64.h
[edit]
[-] resolv.h
[edit]
[-] FlexLexer.h
[edit]
[-] punycode.h
[edit]
[+]
blkid
[-] glob.h
[edit]
[-] unctrl.h
[edit]
[-] regex.h
[edit]
[+]
xen
[-] signal.h
[edit]
[+]
netrose
[+]
openssl
[-] ifaddrs.h
[edit]
[-] unistd.h
[edit]
[-] gssapi.h
[edit]
[+]
misc
[-] ffi.h
[edit]
[+]
kadm5
[+]
freetype2
[+]
video
[-] tiffio.h
[edit]
[-] wchar.h
[edit]
[-] elf.h
[edit]
[-] ncurses.h
[edit]
[-] proc_service.h
[edit]
[-] uchar.h
[edit]
[-] gdbm.h
[edit]
[-] langinfo.h
[edit]
[-] pcre.h
[edit]
[+]
webp
[-] values.h
[edit]
[+]
libexslt
[-] jconfig-64.h
[edit]
[-] netdb.h
[edit]
[-] cpio.h
[edit]
[-] libaio.h
[edit]
[-] powercap.h
[edit]
[-] dbm.h
[edit]
[-] pngconf.h
[edit]
[+]
netpacket
[-] cursslk.h
[edit]
[-] link.h
[edit]
[+]
security
[-] lastlog.h
[edit]
[-] wordexp.h
[edit]
[-] gd_io.h
[edit]
[+]
X11
[-] verto.h
[edit]
[-] curses.h
[edit]
[-] wctype.h
[edit]
[+]
netax25
[-] libintl.h
[edit]
[-] gettext-po.h
[edit]
[+]
netrom
[-] stringprep.h
[edit]
[-] argp.h
[edit]
[+]
lzma
[-] ulimit.h
[edit]
[+]
fwctl
[-] gnumake.h
[edit]
[-] krad.h
[edit]
[-] pcre_stringpiece.h
[edit]
[-] expat_external.h
[edit]
[-] shadow.h
[edit]
[-] expat.h
[edit]
[+]
pcp
[-] ar.h
[edit]
[-] endian.h
[edit]
[+]
gdbm
[-] fstab.h
[edit]
[-] envz.h
[edit]
[-] pty.h
[edit]
[-] eti.h
[edit]
[-] paths.h
[edit]
[-] argz.h
[edit]
[-] math.h
[edit]
[-] getopt.h
[edit]
[-] gpgrt.h
[edit]
[+]
ncurses
[-] gdcache.h
[edit]
[-] fstrm.h
[edit]
[-] obstack.h
[edit]
[-] maxminddb_config.h
[edit]
[+]
fstrm
[-] term_entry.h
[edit]
[-] sched.h
[edit]
[-] memory.h
[edit]
[-] gd_color_map.h
[edit]
[-] gdfx.h
[edit]
[+]
mysql
[+]
json-c
[+]
graphite2
[-] locale.h
[edit]
[+]
libxml2
[+]
e2p
[-] com_err.h
[edit]
[-] pcre2posix.h
[edit]
[+]
scsi
[+]
ncursesw
[+]
krb5
[-] gd_errors.h
[edit]
[+]
event2
[-] search.h
[edit]
[-] re_comp.h
[edit]
[-] fnmatch.h
[edit]
[+]
libpng16
[-] ndbm.h
[edit]
[-] syslog.h
[edit]
[-] sysexits.h
[edit]
[+]
netash
[-] cursesf.h
[edit]
[-] pthread.h
[edit]
[+]
linux
[-] pcrecpp.h
[edit]
[-] fcntl.h
[edit]
[-] syscall.h
[edit]
[-] libgen.h
[edit]
[-] ffitarget-x86_64.h
[edit]
[-] features.h
[edit]
[-] a.out.h
[edit]
[+]
glib-2.0
[-] evhttp.h
[edit]
[+]
gio-unix-2.0
[-] idn-free.h
[edit]
[-] gshadow.h
[edit]
[-] stdlib.h
[edit]
[-] dirent.h
[edit]
[-] pcreposix.h
[edit]
[-] crypt.h
[edit]
[+]
selinux
[-] regexp.h
[edit]
[-] aliases.h
[edit]
[-] stdio_ext.h
[edit]
[+]
netatalk
[-] utime.h
[edit]
[-] termio.h
[edit]
[-] poll.h
[edit]
[+]
GL
[+]
sysprof-4
[-] aio.h
[edit]
[-] gdpp.h
[edit]
[+]
mtd
[-] stab.h
[edit]
[-] idn-int.h
[edit]
[-] cursesapp.h
[edit]
[-] profile.h
[edit]
[-] jmorecfg.h
[edit]
[+]
bind9
[+]
protocols
[+]
netiucv
[-] bzlib.h
[edit]