blob: 219abdab0e16315f7d34b9ab6ba19825719fc208 [file] [log] [blame]
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -08001#ifndef GDBSTUB_H
2#define GDBSTUB_H
3
4#define DEFAULT_GDBSTUB_PORT "1234"
5
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -07006/* 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
David Turner3b290c32010-09-09 23:49:44 +020013#ifdef NEED_CPU_H
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080014typedef void (*gdb_syscall_complete_cb)(CPUState *env,
15 target_ulong ret, target_ulong err);
16
17void gdb_do_syscall(gdb_syscall_complete_cb cb, const char *fmt, ...);
18int use_gdb_syscalls(void);
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070019void gdb_set_stop_cpu(CPUState *env);
David Turner3b290c32010-09-09 23:49:44 +020020void gdb_exit(CPUState *, int);
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080021#ifdef CONFIG_USER_ONLY
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070022int gdb_queuesig (void);
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080023int gdb_handlesig (CPUState *, int);
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070024void gdb_signalled(CPUState *, int);
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070025void gdbserver_fork(CPUState *);
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080026#endif
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070027/* Get or set a register. Returns the size of the register. */
28typedef int (*gdb_reg_cb)(CPUState *env, uint8_t *buf, int reg);
29void gdb_register_coprocessor(CPUState *env,
30 gdb_reg_cb get_reg, gdb_reg_cb set_reg,
31 int num_regs, const char *xml, int g_pos);
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080032
33#endif
David Turner3b290c32010-09-09 23:49:44 +020034
35#ifdef CONFIG_USER_ONLY
36int gdbserver_start(int);
37#else
38int gdbserver_start(const char *port);
39#endif
40
41#endif