Architectural Support: x86_64 (#37)
[lunaix-os.git] / lunaix-os / arch / x86 / includes / sys / gdbstub.h
1 #ifndef __LUNAIX_ARCH_GDBSTUB_ARCH_H
2 #define __LUNAIX_ARCH_GDBSTUB_ARCH_H
3
4 #include "sys/hart.h"
5
6 enum GDB_REGISTER
7 {
8     GDB_CPU_I386_REG_EAX = 0,
9     GDB_CPU_I386_REG_ECX = 1,
10     GDB_CPU_I386_REG_EDX = 2,
11     GDB_CPU_I386_REG_EBX = 3,
12     GDB_CPU_I386_REG_ESP = 4,
13     GDB_CPU_I386_REG_EBP = 5,
14     GDB_CPU_I386_REG_ESI = 6,
15     GDB_CPU_I386_REG_EDI = 7,
16     GDB_CPU_I386_REG_PC = 8,
17     GDB_CPU_I386_REG_PS = 9,
18     GDB_CPU_I386_REG_CS = 10,
19     GDB_CPU_I386_REG_SS = 11,
20     GDB_CPU_I386_REG_DS = 12,
21     GDB_CPU_I386_REG_ES = 13,
22     GDB_CPU_I386_REG_FS = 14,
23     GDB_CPU_I386_REG_GS = 15,
24     GDB_CPU_NUM_REGISTERS
25 };
26
27 struct gdb_state;
28
29 void
30 arch_gdbstub_setup_state(struct gdb_state* state, struct hart_state* hstate);
31
32 void
33 arch_gdbstub_save_regs(struct gdb_state* state, struct hart_state* hstate);
34
35 void
36 arch_gdbstub_restore_regs(struct gdb_state* state, struct hart_state* hstate);
37
38 int
39 gdb_sys_continue(struct gdb_state* state);
40
41 int
42 gdb_sys_step(struct gdb_state* state);
43
44 #endif /* __LUNAIX_ARCH_GDBSTUB_ARCH_H */