ef.h revision 94414
1/* $FreeBSD: head/usr.sbin/kldxref/ef.h 94414 2002-04-11 09:30:15Z peter $ */ 2 3#ifndef _EF_H_ 4#define _EF_H_ 5 6#define EFT_KLD 1 7#define EFT_KERNEL 2 8 9typedef struct elf_file { 10 char* ef_name; 11 Elf_Phdr * ef_ph; 12 int ef_fd; 13 int ef_type; 14 Elf_Ehdr ef_hdr; 15 void* ef_fpage; /* First block of the file */ 16 int ef_fplen; /* length of first block */ 17 Elf_Dyn* ef_dyn; /* Symbol table etc. */ 18 Elf_Hashelt ef_nbuckets; 19 Elf_Hashelt ef_nchains; 20 Elf_Hashelt* ef_buckets; 21 Elf_Hashelt* ef_chains; 22 Elf_Hashelt* ef_hashtab; 23 Elf_Off ef_stroff; 24 caddr_t ef_strtab; 25 int ef_strsz; 26 Elf_Off ef_symoff; 27 Elf_Sym* ef_symtab; 28 int ef_nsegs; 29 Elf_Phdr * ef_segs[2]; 30 int ef_verbose; 31} *elf_file_t; 32 33__BEGIN_DECLS 34int ef_open(const char *, elf_file_t, int); 35int ef_close(elf_file_t ef); 36int ef_read(elf_file_t ef, Elf_Off offset, size_t len, void* dest); 37int ef_read_entry(elf_file_t ef, Elf_Off offset, size_t len, void **ptr); 38int ef_seg_read(elf_file_t ef, Elf_Off offset, size_t len, void *dest); 39int ef_seg_read_entry(elf_file_t ef, Elf_Off offset, size_t len, void**ptr); 40int ef_lookup_symbol(elf_file_t ef, const char* name, Elf_Sym** sym); 41__END_DECLS 42 43#endif /* _EF_H_*/ 44