X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=disas.h;h=f9287f73e107a6fd85f223cd78ddee2753657da7;hb=29e5badadffe2cc70a911a95e258d1fb01f2db71;hp=c4a251ff8f0c2b7a9b42d9ce04962eb75c8019e0;hpb=9307c4c1d93939db9b04117b654253af5113dc21;p=qemu.git diff --git a/disas.h b/disas.h index c4a251ff8..f9287f73e 100644 --- a/disas.h +++ b/disas.h @@ -1,15 +1,42 @@ #ifndef _QEMU_DISAS_H #define _QEMU_DISAS_H +#include "qemu-common.h" + +#ifdef NEED_CPU_H /* Disassemble this for me please... (debugging). */ -void disas(FILE *out, void *code, unsigned long size, int is_host, int flags); -void monitor_disas(target_ulong pc, int nb_insn, int is_physical, int flags); +void disas(FILE *out, void *code, unsigned long size); +void target_disas(FILE *out, target_ulong code, target_ulong size, int flags); + +void monitor_disas(Monitor *mon, CPUState *env, + target_ulong pc, int nb_insn, int is_physical, int flags); /* Look up symbol for debugging purpose. Returns "" if unknown. */ -const char *lookup_symbol(void *orig_addr); +const char *lookup_symbol(target_ulong orig_addr); +#endif + +struct syminfo; +struct elf32_sym; +struct elf64_sym; + +#if defined(CONFIG_USER_ONLY) +typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_ulong orig_addr); +#else +typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_phys_addr_t orig_addr); +#endif + +struct syminfo { + lookup_symbol_t lookup_symbol; + unsigned int disas_num_syms; + union { + struct elf32_sym *elf32; + struct elf64_sym *elf64; + } disas_symtab; + const char *disas_strtab; + struct syminfo *next; +}; /* Filled in by elfload.c. Simplistic, but will do for now. */ -extern unsigned int disas_num_syms; -extern void *disas_symtab; /* FIXME: includes are a mess --RR */ -extern const char *disas_strtab; +extern struct syminfo *syminfos; + #endif /* _QEMU_DISAS_H */