1 /* 2 Compatibility with the linux kernel environment 3 */ 4 5 #include <nlist.h> 6 #include <errno.h> 7 #include <string.h> 8 #include <sys/types.h> 9 10 #define ElfW(type) Elf_ ## type 11 typedef unsigned long Elf_Addr; 12 typedef unsigned long Elf_Word; 13 14 void kallsyms_sections(void *infop, 15 int (*fp)(void *token, const char *modname, const char *secname, 16 ElfW(Addr) secstart, ElfW(Addr) secend, ElfW(Word) secflags)); 17 18 void printk(char *fmt, ...); 19 20 #include "ddb.h" 21 #include "db_machdep.h" 22 int kallsyms_address_to_symbol(db_expr_t off, 23 const char * *mod_name, unsigned long *mod_start, unsigned long *mod_end, 24 const char * *sec_name, unsigned long *sec_start, unsigned long *sec_end, 25 const char * *sym_name, unsigned long *sym_start, unsigned long *sym_end); 26 27 int read_nlist(const char *filenamer, struct nlist **nlist_table); 28 29 unsigned long text_read_ul(void *addr); 30 unsigned char text_read_ub(void *addr); 31 void text_write_ul(void *addr, unsigned long value); 32 void text_write_ub(void *addr, unsigned char value); 33 34 extern pid_t victim_pid; 35 extern char *victim_exe; 36 37 void load_nlist(char *exe_name, unsigned long *btextp, unsigned long *etextp); 38