diff options
author | David E. O'Brien <obrien@FreeBSD.org> | 2008-07-10 16:35:57 +0000 |
---|---|---|
committer | David E. O'Brien <obrien@FreeBSD.org> | 2008-07-10 16:35:57 +0000 |
commit | f55ffb399099f25810b65311f1cc8a9f9174170c (patch) | |
tree | 92d0e8015596d7f9eb108240bd2e3739f401378e /sys/sys/link_elf.h | |
parent | e1cb4a353cd5b4f4572cab1bca43adb92f375ffa (diff) | |
download | src-f55ffb399099f25810b65311f1cc8a9f9174170c.tar.gz src-f55ffb399099f25810b65311f1cc8a9f9174170c.zip |
Allow 'elf_file_t' to be used in a wider scope.
Notes
Notes:
svn path=/head/; revision=180431
Diffstat (limited to 'sys/sys/link_elf.h')
-rw-r--r-- | sys/sys/link_elf.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/sys/sys/link_elf.h b/sys/sys/link_elf.h index 6e6660f88bb8..b9a5aac2a39f 100644 --- a/sys/sys/link_elf.h +++ b/sys/sys/link_elf.h @@ -88,6 +88,57 @@ struct dl_phdr_info void *dlpi_tls_data; }; +#ifdef _KERNEL + +typedef struct elf_file { + struct linker_file lf; /* Common fields */ + int preloaded; /* Was file pre-loaded */ + caddr_t address; /* Relocation address */ +#ifdef SPARSE_MAPPING + vm_object_t object; /* VM object to hold file pages */ +#endif + Elf_Dyn* dynamic; /* Symbol table etc. */ + Elf_Hashelt nbuckets; /* DT_HASH info */ + Elf_Hashelt nchains; + const Elf_Hashelt* buckets; + const Elf_Hashelt* chains; + caddr_t hash; + caddr_t strtab; /* DT_STRTAB */ + int strsz; /* DT_STRSZ */ + const Elf_Sym* symtab; /* DT_SYMTAB */ + Elf_Addr* got; /* DT_PLTGOT */ + const Elf_Rel* pltrel; /* DT_JMPREL */ + int pltrelsize; /* DT_PLTRELSZ */ + const Elf_Rela* pltrela; /* DT_JMPREL */ + int pltrelasize; /* DT_PLTRELSZ */ + const Elf_Rel* rel; /* DT_REL */ + int relsize; /* DT_RELSZ */ + const Elf_Rela* rela; /* DT_RELA */ + int relasize; /* DT_RELASZ */ + caddr_t modptr; + const Elf_Sym* ddbsymtab; /* The symbol table we are using */ + long ddbsymcnt; /* Number of symbols */ + caddr_t ddbstrtab; /* String table */ + long ddbstrcnt; /* number of bytes in string table */ + caddr_t symbase; /* malloc'ed symbold base */ + caddr_t strbase; /* malloc'ed string base */ + caddr_t ctftab; /* CTF table */ + long ctfcnt; /* number of bytes in CTF table */ + caddr_t ctfoff; /* CTF offset table */ + caddr_t typoff; /* Type offset table */ + long typlen; /* Number of type entries. */ +#ifdef GDB + struct link_map gdb; /* hooks for gdb */ +#endif +} *elf_file_t; + +/* + * The kernel symbol table starts here. + */ +extern struct _dynamic _DYNAMIC; + +#endif /* _KERNEL */ + __BEGIN_DECLS typedef int (*__dl_iterate_hdr_callback)(struct dl_phdr_info *, size_t, |