]>
Commit | Line | Data |
---|---|---|
1 | #ifndef GDBSTUB_H | |
2 | #define GDBSTUB_H | |
3 | ||
4 | #define DEFAULT_GDBSTUB_PORT "1234" | |
5 | ||
6 | /* GDB breakpoint/watchpoint types */ | |
7 | #define GDB_BREAKPOINT_SW 0 | |
8 | #define GDB_BREAKPOINT_HW 1 | |
9 | #define GDB_WATCHPOINT_WRITE 2 | |
10 | #define GDB_WATCHPOINT_READ 3 | |
11 | #define GDB_WATCHPOINT_ACCESS 4 | |
12 | ||
13 | ||
14 | /* Get or set a register. Returns the size of the register. */ | |
15 | typedef int (*gdb_get_reg_cb)(CPUArchState *env, GByteArray *buf, int reg); | |
16 | typedef int (*gdb_set_reg_cb)(CPUArchState *env, uint8_t *buf, int reg); | |
17 | void gdb_register_coprocessor(CPUState *cpu, | |
18 | gdb_get_reg_cb get_reg, gdb_set_reg_cb set_reg, | |
19 | int num_regs, const char *xml, int g_pos); | |
20 | ||
21 | /** | |
22 | * gdbserver_start: start the gdb server | |
23 | * @port_or_device: connection spec for gdb | |
24 | * | |
25 | * For CONFIG_USER this is either a tcp port or a path to a fifo. For | |
26 | * system emulation you can use a full chardev spec for your gdbserver | |
27 | * port. | |
28 | */ | |
29 | int gdbserver_start(const char *port_or_device); | |
30 | ||
31 | void gdb_set_stop_cpu(CPUState *cpu); | |
32 | ||
33 | /** | |
34 | * gdb_has_xml: | |
35 | * This is an ugly hack to cope with both new and old gdb. | |
36 | * If gdb sends qXfer:features:read then assume we're talking to a newish | |
37 | * gdb that understands target descriptions. | |
38 | */ | |
39 | extern bool gdb_has_xml; | |
40 | ||
41 | /* in gdbstub-xml.c, generated by scripts/feature_to_c.sh */ | |
42 | extern const char *const xml_builtin[][2]; | |
43 | ||
44 | #endif |