aboutsummaryrefslogtreecommitdiff
path: root/include/dlfcn.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/dlfcn.h')
-rw-r--r--include/dlfcn.h33
1 files changed, 13 insertions, 20 deletions
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 9144dd2f3f..bfa1b9041b 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -1,31 +1,15 @@
#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) \
@@ -45,8 +29,18 @@ 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) attribute_hidden;
+extern void _dl_close (void *map)
+ internal_function;
+libc_hidden_proto (_dl_close)
/* Look up NAME in shared object HANDLE (which may be RTLD_DEFAULT or
RTLD_NEXT). WHO is the calling function, for RTLD_NEXT. Returns
@@ -68,10 +62,9 @@ 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. MALLOCEDP is set to true only
- if the returned string is allocated using the libc's malloc. */
+ ARGS is passed as argument to OPERATE. */
extern int _dl_catch_error (const char **objname, const char **errstring,
- bool *mallocedp, void (*operate) (void *),
+ void (*operate) (void *),
void *args)
internal_function;