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