summaryrefslogtreecommitdiffstats
path: root/libexec/rtld-elf/rtld.h
diff options
context:
space:
mode:
authorjdp <jdp@FreeBSD.org>1999-08-30 01:50:41 +0000
committerjdp <jdp@FreeBSD.org>1999-08-30 01:50:41 +0000
commit7a67a7ee048e83361dbd4afda5c84ff0b8646542 (patch)
tree997498cd3ff38258372b4f509859c44bd0498400 /libexec/rtld-elf/rtld.h
parent4382ccec34f7f0bb2721459e301575176a175688 (diff)
downloadFreeBSD-src-7a67a7ee048e83361dbd4afda5c84ff0b8646542.zip
FreeBSD-src-7a67a7ee048e83361dbd4afda5c84ff0b8646542.tar.gz
When checking to see if a shared object is already loaded, look for
a device/inode match if no pathname match is found.
Diffstat (limited to 'libexec/rtld-elf/rtld.h')
-rw-r--r--libexec/rtld-elf/rtld.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/libexec/rtld-elf/rtld.h b/libexec/rtld-elf/rtld.h
index d23932b..ab26d01 100644
--- a/libexec/rtld-elf/rtld.h
+++ b/libexec/rtld-elf/rtld.h
@@ -49,6 +49,7 @@ typedef unsigned char bool;
#define false 0
#define true 1
+struct stat;
struct Struct_Obj_Entry;
typedef struct Struct_Objlist_Entry {
@@ -82,6 +83,8 @@ typedef struct Struct_Obj_Entry {
Objlist dldags; /* Object belongs to these dlopened DAGs (%) */
Objlist dagmembers; /* DAG has these members (%) */
char *path; /* Pathname of underlying file (%) */
+ dev_t dev; /* Object's filesystem's device */
+ ino_t ino; /* Object's inode number */
unsigned long mark; /* Set to "curmark" to avoid repeat visits */
int refcount;
int dl_refcount; /* Number of times loaded by dlopen */
@@ -135,7 +138,7 @@ typedef struct Struct_Obj_Entry {
#define RTLD_VERSION 1
extern void _rtld_error(const char *, ...) __printflike(1, 2);
-extern Obj_Entry *map_object(int, const char *);
+extern Obj_Entry *map_object(int, const char *, const struct stat *);
extern void *xcalloc(size_t);
extern void *xmalloc(size_t);
extern char *xstrdup(const char *);
OpenPOWER on IntegriCloud