diff options
author | jdp <jdp@FreeBSD.org> | 1999-08-30 01:50:41 +0000 |
---|---|---|
committer | jdp <jdp@FreeBSD.org> | 1999-08-30 01:50:41 +0000 |
commit | 7a67a7ee048e83361dbd4afda5c84ff0b8646542 (patch) | |
tree | 997498cd3ff38258372b4f509859c44bd0498400 /libexec/rtld-elf/rtld.h | |
parent | 4382ccec34f7f0bb2721459e301575176a175688 (diff) | |
download | FreeBSD-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.h | 5 |
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 *); |