Merge remote-tracking branch 'remotes/palmer/tags/riscv-for-master-4.1-sf1-v3' into...
[qemu/ar7.git] / include / disas / disas.h
blob15da511f49c766bb5d368cc848177bcc4c8638b1
1 #ifndef QEMU_DISAS_H
2 #define QEMU_DISAS_H
5 #ifdef NEED_CPU_H
6 #include "cpu.h"
8 /* Disassemble this for me please... (debugging). */
9 void disas(FILE *out, void *code, unsigned long size);
10 void target_disas(FILE *out, CPUState *cpu, target_ulong code,
11 target_ulong size);
13 void monitor_disas(Monitor *mon, CPUState *cpu,
14 target_ulong pc, int nb_insn, int is_physical);
16 /* Look up symbol for debugging purpose. Returns "" if unknown. */
17 const char *lookup_symbol(target_ulong orig_addr);
18 #endif
20 struct syminfo;
21 struct elf32_sym;
22 struct elf64_sym;
24 #if defined(CONFIG_USER_ONLY)
25 typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_ulong orig_addr);
26 #else
27 typedef const char *(*lookup_symbol_t)(struct syminfo *s, hwaddr orig_addr);
28 #endif
30 struct syminfo {
31 lookup_symbol_t lookup_symbol;
32 unsigned int disas_num_syms;
33 union {
34 struct elf32_sym *elf32;
35 struct elf64_sym *elf64;
36 } disas_symtab;
37 const char *disas_strtab;
38 struct syminfo *next;
41 /* Filled in by elfload.c. Simplistic, but will do for now. */
42 extern struct syminfo *syminfos;
44 #endif /* QEMU_DISAS_H */