disas.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef _QEMU_DISAS_H
  2. #define _QEMU_DISAS_H
  3. #include "qemu-common.h"
  4. #ifdef NEED_CPU_H
  5. /* Disassemble this for me please... (debugging). */
  6. void disas(FILE *out, void *code, unsigned long size);
  7. void target_disas(FILE *out, target_ulong code, target_ulong size, int flags);
  8. void monitor_disas(Monitor *mon, CPUArchState *env,
  9. target_ulong pc, int nb_insn, int is_physical, int flags);
  10. /* Look up symbol for debugging purpose. Returns "" if unknown. */
  11. const char *lookup_symbol(target_ulong orig_addr);
  12. #endif
  13. struct syminfo;
  14. struct elf32_sym;
  15. struct elf64_sym;
  16. #if defined(CONFIG_USER_ONLY)
  17. typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_ulong orig_addr);
  18. #else
  19. typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_phys_addr_t orig_addr);
  20. #endif
  21. struct syminfo {
  22. lookup_symbol_t lookup_symbol;
  23. unsigned int disas_num_syms;
  24. union {
  25. struct elf32_sym *elf32;
  26. struct elf64_sym *elf64;
  27. } disas_symtab;
  28. const char *disas_strtab;
  29. struct syminfo *next;
  30. };
  31. /* Filled in by elfload.c. Simplistic, but will do for now. */
  32. extern struct syminfo *syminfos;
  33. #endif /* _QEMU_DISAS_H */