root / disas.h @ e4c7d2ae
History | View | Annotate | Download (1.2 kB)
1 |
#ifndef _QEMU_DISAS_H
|
---|---|
2 |
#define _QEMU_DISAS_H
|
3 |
|
4 |
#include "qemu-common.h" |
5 |
|
6 |
#ifdef NEED_CPU_H
|
7 |
/* Disassemble this for me please... (debugging). */
|
8 |
void disas(FILE *out, void *code, unsigned long size); |
9 |
void target_disas(FILE *out, target_ulong code, target_ulong size, int flags); |
10 |
|
11 |
/* The usual mess... FIXME: Remove this condition once dyngen-exec.h is gone */
|
12 |
#ifndef __DYNGEN_EXEC_H__
|
13 |
void monitor_disas(Monitor *mon, CPUState *env,
|
14 |
target_ulong pc, int nb_insn, int is_physical, int flags); |
15 |
#endif
|
16 |
|
17 |
/* Look up symbol for debugging purpose. Returns "" if unknown. */
|
18 |
const char *lookup_symbol(target_ulong orig_addr); |
19 |
#endif
|
20 |
|
21 |
struct syminfo;
|
22 |
struct elf32_sym;
|
23 |
struct elf64_sym;
|
24 |
|
25 |
#if defined(CONFIG_USER_ONLY)
|
26 |
typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_ulong orig_addr); |
27 |
#else
|
28 |
typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_phys_addr_t orig_addr); |
29 |
#endif
|
30 |
|
31 |
struct syminfo {
|
32 |
lookup_symbol_t lookup_symbol; |
33 |
unsigned int disas_num_syms; |
34 |
union {
|
35 |
struct elf32_sym *elf32;
|
36 |
struct elf64_sym *elf64;
|
37 |
} disas_symtab; |
38 |
const char *disas_strtab; |
39 |
struct syminfo *next;
|
40 |
}; |
41 |
|
42 |
/* Filled in by elfload.c. Simplistic, but will do for now. */
|
43 |
extern struct syminfo *syminfos; |
44 |
|
45 |
#endif /* _QEMU_DISAS_H */ |