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
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
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
45extern struct syminfo *syminfos;
46
47#endif
48