diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-07-12 18:26:36 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2007-07-12 18:26:36 +0000 |
commit | 0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (patch) | |
tree | 2ea1f8305970753e4a657acb2ccc15ca3eec8e2c /include/dlfcn.h | |
parent | 7d58530341304d403a6626d7f7a1913165fe2f32 (diff) | |
download | glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.zip glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.gz glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.bz2 |
2.5-18.1
Diffstat (limited to 'include/dlfcn.h')
-rw-r--r-- | include/dlfcn.h | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/include/dlfcn.h b/include/dlfcn.h index bfa1b90..9144dd2 100644 --- a/include/dlfcn.h +++ b/include/dlfcn.h @@ -1,15 +1,31 @@ #ifndef _DLFCN_H #include <dlfcn/dlfcn.h> #include <link.h> /* For ElfW. */ +#include <stdbool.h> /* Internally used flag. */ #define __RTLD_DLOPEN 0x80000000 #define __RTLD_SPROF 0x40000000 #define __RTLD_OPENEXEC 0x20000000 #define __RTLD_CALLMAP 0x10000000 +#define __RTLD_AUDIT 0x08000000 #define __LM_ID_CALLER -2 +#ifdef SHARED +/* Locally stored program arguments. */ +extern int __dlfcn_argc attribute_hidden; +extern char **__dlfcn_argv attribute_hidden; +#else +/* These variables are defined and initialized in the startup code. */ +extern int __libc_argc attribute_hidden; +extern char **__libc_argv attribute_hidden; + +# define __dlfcn_argc __libc_argc +# define __dlfcn_argv __libc_argv +#endif + + /* Now define the internal interfaces. */ #define __libc_dlopen(name) \ @@ -29,18 +45,8 @@ extern int _dl_addr (const void *address, Dl_info *info, libc_hidden_proto (_dl_addr) #endif -/* Open the shared object NAME, relocate it, and run its initializer if it - hasn't already been run. MODE is as for `dlopen' (see <dlfcn.h>). If - the object is already opened, returns its existing map. */ -extern void *_dl_open (const char *name, int mode, const void *caller, - Lmid_t nsid) - internal_function; -libc_hidden_proto (_dl_open) - /* Close an object previously opened by _dl_open. */ -extern void _dl_close (void *map) - internal_function; -libc_hidden_proto (_dl_close) +extern void _dl_close (void *map) attribute_hidden; /* Look up NAME in shared object HANDLE (which may be RTLD_DEFAULT or RTLD_NEXT). WHO is the calling function, for RTLD_NEXT. Returns @@ -62,9 +68,10 @@ extern void *_dl_vsym (void *handle, const char *name, const char *version, and the error code passed is the return value and *OBJNAME is set to the object name which experienced the problems. ERRSTRING if nonzero points to a malloc'ed string which the caller has to free after use. - ARGS is passed as argument to OPERATE. */ + ARGS is passed as argument to OPERATE. MALLOCEDP is set to true only + if the returned string is allocated using the libc's malloc. */ extern int _dl_catch_error (const char **objname, const char **errstring, - void (*operate) (void *), + bool *mallocedp, void (*operate) (void *), void *args) internal_function; |