X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/32b9a6d76790c73d3d2d36d9081a2581cc65d184..28c176b668c841a3b7fb093faccf0efa39257603:/lunaix-os/arch/i386/gdbstub.c diff --git a/lunaix-os/arch/i386/gdbstub.c b/lunaix-os/arch/i386/gdbstub.c deleted file mode 100644 index 78c3165..0000000 --- a/lunaix-os/arch/i386/gdbstub.c +++ /dev/null @@ -1,77 +0,0 @@ -#include -#include - -void -arch_gdbstub_setup_state(struct gdb_state* state, struct hart_state* hstate) -{ - /* Translate vector to signal */ - switch (hstate->execp->vector) { - case 1: - state->signum = 5; - break; - case 3: - state->signum = 5; - break; - default: - state->signum = 7; - } -} - -void -arch_gdbstub_save_regs(struct gdb_state* state, struct hart_state* hstate) -{ - /* Load Registers */ - state->registers[GDB_CPU_I386_REG_EAX] = hstate->registers.eax; - state->registers[GDB_CPU_I386_REG_ECX] = hstate->registers.ecx; - state->registers[GDB_CPU_I386_REG_EDX] = hstate->registers.edx; - state->registers[GDB_CPU_I386_REG_EBX] = hstate->registers.ebx; - state->registers[GDB_CPU_I386_REG_ESP] = hstate->esp; - state->registers[GDB_CPU_I386_REG_EBP] = hstate->registers.ebp; - state->registers[GDB_CPU_I386_REG_ESI] = hstate->registers.esi; - state->registers[GDB_CPU_I386_REG_EDI] = hstate->registers.edi; - state->registers[GDB_CPU_I386_REG_PC] = hstate->execp->eip; - state->registers[GDB_CPU_I386_REG_CS] = hstate->execp->cs; - state->registers[GDB_CPU_I386_REG_PS] = hstate->execp->eflags; - state->registers[GDB_CPU_I386_REG_SS] = hstate->execp->ss; - state->registers[GDB_CPU_I386_REG_DS] = hstate->registers.ds; - state->registers[GDB_CPU_I386_REG_ES] = hstate->registers.es; - state->registers[GDB_CPU_I386_REG_FS] = hstate->registers.fs; - state->registers[GDB_CPU_I386_REG_GS] = hstate->registers.gs; -} - -void -arch_gdbstub_restore_regs(struct gdb_state* state, struct hart_state* hstate) -{ - /* Restore Registers */ - hstate->registers.eax = state->registers[GDB_CPU_I386_REG_EAX]; - hstate->registers.ecx = state->registers[GDB_CPU_I386_REG_ECX]; - hstate->registers.edx = state->registers[GDB_CPU_I386_REG_EDX]; - hstate->registers.ebx = state->registers[GDB_CPU_I386_REG_EBX]; - hstate->esp = state->registers[GDB_CPU_I386_REG_ESP]; - hstate->registers.ebp = state->registers[GDB_CPU_I386_REG_EBP]; - hstate->registers.esi = state->registers[GDB_CPU_I386_REG_ESI]; - hstate->registers.edi = state->registers[GDB_CPU_I386_REG_EDI]; - hstate->execp->eip = state->registers[GDB_CPU_I386_REG_PC]; - hstate->execp->cs = state->registers[GDB_CPU_I386_REG_CS]; - hstate->execp->eflags = state->registers[GDB_CPU_I386_REG_PS]; - hstate->execp->ss = state->registers[GDB_CPU_I386_REG_SS]; - hstate->registers.ds = state->registers[GDB_CPU_I386_REG_DS]; - hstate->registers.es = state->registers[GDB_CPU_I386_REG_ES]; - hstate->registers.fs = state->registers[GDB_CPU_I386_REG_FS]; - hstate->registers.gs = state->registers[GDB_CPU_I386_REG_GS]; -} - - -int -gdb_sys_continue(struct gdb_state* state) -{ - state->registers[GDB_CPU_I386_REG_PS] &= ~(1 << 8); - return 0; -} - -int -gdb_sys_step(struct gdb_state* state) -{ - state->registers[GDB_CPU_I386_REG_PS] |= 1 << 8; - return 0; -} \ No newline at end of file