disas.h (1248B)
1#ifndef QEMU_DISAS_H 2#define QEMU_DISAS_H 3 4#include "exec/hwaddr.h" 5 6#ifdef NEED_CPU_H 7#include "cpu.h" 8 9/* Disassemble this for me please... (debugging). */ 10void disas(FILE *out, const void *code, unsigned long size); 11void target_disas(FILE *out, CPUState *cpu, target_ulong code, 12 target_ulong size); 13 14void monitor_disas(Monitor *mon, CPUState *cpu, 15 target_ulong pc, int nb_insn, int is_physical); 16 17char *plugin_disas(CPUState *cpu, uint64_t addr, size_t size); 18 19/* Look up symbol for debugging purpose. Returns "" if unknown. */ 20const char *lookup_symbol(target_ulong orig_addr); 21#endif 22 23struct syminfo; 24struct elf32_sym; 25struct elf64_sym; 26 27#if defined(CONFIG_USER_ONLY) 28typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_ulong orig_addr); 29#else 30typedef const char *(*lookup_symbol_t)(struct syminfo *s, hwaddr orig_addr); 31#endif 32 33struct syminfo { 34 lookup_symbol_t lookup_symbol; 35 unsigned int disas_num_syms; 36 union { 37 struct elf32_sym *elf32; 38 struct elf64_sym *elf64; 39 } disas_symtab; 40 const char *disas_strtab; 41 struct syminfo *next; 42}; 43 44/* Filled in by elfload.c. Simplistic, but will do for now. */ 45extern struct syminfo *syminfos; 46 47#endif /* QEMU_DISAS_H */