diff options
Diffstat (limited to 'c/src/librdbg/src/m68k/rdbg_f.c')
-rw-r--r-- | c/src/librdbg/src/m68k/rdbg_f.c | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/c/src/librdbg/src/m68k/rdbg_f.c b/c/src/librdbg/src/m68k/rdbg_f.c deleted file mode 100644 index fd1416a6ec..0000000000 --- a/c/src/librdbg/src/m68k/rdbg_f.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - ************************************************************************** - * - * Component = - * - * Synopsis = rdbg/m68k/rdbg_f.c - * - * $Id$ - * - ************************************************************************** - */ - -#include <assert.h> -#include <errno.h> -#include <rdbg/reg.h> -#include <rdbg/remdeb.h> -#include <rdbg/rdbg.h> -#include <rtems/score/cpu.h> -#include <rtems/score/thread.h> - -m68k_isr_entry set_vector( - rtems_isr_entry handler, - rtems_vector_number vector, - int type -); - -void CtxToRegs (const CPU_Exception_frame * ctx, xdr_regs * regs) -{ - regs->r_dreg[0] = ctx->d0; - regs->r_dreg[1] = ctx->d1; - regs->r_dreg[2] = ctx->d2; - regs->r_dreg[3] = ctx->d3; - regs->r_dreg[4] = ctx->d4; - regs->r_dreg[5] = ctx->d5; - regs->r_dreg[6] = ctx->d6; - regs->r_dreg[7] = ctx->d7; - - regs->r_areg[0] = ctx->a0; - regs->r_areg[1] = ctx->a1; - regs->r_areg[2] = ctx->a2; - regs->r_areg[3] = ctx->a3; - regs->r_areg[4] = ctx->a4; - regs->r_areg[5] = ctx->a5; - regs->r_areg[6] = ctx->a6; - regs->r_areg[7] = ctx->a7; - - regs->r_sr = ctx->sr; - regs->r_pc = ctx->pc; - regs->r_vec = ctx->vecnum; -} - - void -RegsToCtx (const xdr_regs * regs, CPU_Exception_frame * ctx) -{ - ctx->d0 = regs->r_dreg[0]; - ctx->d1 = regs->r_dreg[1]; - ctx->d2 = regs->r_dreg[2]; - ctx->d3 = regs->r_dreg[3]; - ctx->d4 = regs->r_dreg[4]; - ctx->d5 = regs->r_dreg[5]; - ctx->d6 = regs->r_dreg[6]; - ctx->d7 = regs->r_dreg[7]; - - ctx->a0 = regs->r_areg[0]; - ctx->a1 = regs->r_areg[1]; - ctx->a2 = regs->r_areg[2]; - ctx->a3 = regs->r_areg[3]; - ctx->a4 = regs->r_areg[4]; - ctx->a5 = regs->r_areg[5]; - ctx->a6 = regs->r_areg[6]; - ctx->a7 = regs->r_areg[7]; - - ctx->sr = regs->r_sr; - ctx->pc = regs->r_pc; - ctx->vecnum = regs->r_vec; -} - - void -get_ctx_thread (Thread_Control * thread, CPU_Exception_frame * ctx) -{ - /* - * ISR stores d0-d1/a0-a1, calls _Thread_Dispatch - * _Thread_Dispatch calls _Context_Switch == _CPU_Context_switch - * _CPU_Context_switch stores/restores sr,d2-d7,a2-a7 - * so if my reasoning is correct, *sp points to a location in - * _Thread_Dispatch - */ - ctx->vecnum = 0xdeadbeef; - ctx->sr = thread->Registers.sr; - ctx->pc = *(uint32_t *) thread->Registers.a7_msp; - ctx->d0 = 0xdeadbeef; - ctx->d1 = 0xdeadbeef; - ctx->a0 = 0xdeadbeef; - ctx->a1 = 0xdeadbeef; - - ctx->a2 = (uint32_t) thread->Registers.a2; - ctx->a3 = (uint32_t) thread->Registers.a3; - ctx->a4 = (uint32_t) thread->Registers.a4; - ctx->a5 = (uint32_t) thread->Registers.a5; - ctx->a6 = (uint32_t) thread->Registers.a6; - ctx->a7 = (uint32_t) thread->Registers.a7_msp; - ctx->d2 = thread->Registers.d2; - ctx->d3 = thread->Registers.d3; - ctx->d4 = thread->Registers.d4; - ctx->d5 = thread->Registers.d5; - ctx->d6 = thread->Registers.d6; - ctx->d7 = thread->Registers.d7; -} - - void -set_ctx_thread (Thread_Control * thread, CPU_Exception_frame * ctx) -{ - thread->Registers.sr = ctx->sr; - thread->Registers.d2 = ctx->d2; - thread->Registers.d3 = ctx->d3; - thread->Registers.d4 = ctx->d4; - thread->Registers.d5 = ctx->d5; - thread->Registers.d6 = ctx->d6; - thread->Registers.d7 = ctx->d7; - thread->Registers.a2 = (void *) ctx->a2; - thread->Registers.a3 = (void *) ctx->a3; - thread->Registers.a4 = (void *) ctx->a4; - thread->Registers.a5 = (void *) ctx->a5; - thread->Registers.a6 = (void *) ctx->a6; - thread->Registers.a7_msp = (void *) ctx->a7; -} - - int -Single_Step (CPU_Exception_frame * ctx) -{ - if ((ctx->sr & (1 << 15)) != 0 || ExitForSingleStep != 0) { - /* - * Check coherency - */ - assert ((ctx->sr & (1 << 15)) != 0); - assert (ExitForSingleStep != 0); - return 0; - } - ctx->sr |= 1 << 15; - ++ExitForSingleStep; - return 0; -} - - int -CheckForSingleStep (CPU_Exception_frame * ctx) -{ - if (ExitForSingleStep) { - ctx->sr &= ~(1 << 15); - ExitForSingleStep = 0; - return 1; - } - return 0; -} - - void -CancelSingleStep (CPU_Exception_frame * ctx) -{ - /* - * Cancel scheduled SS - */ - ctx->sr &= ~(1 << 15); - ExitForSingleStep--; -} - -extern rtems_isr excHandler (); - - void -connect_rdbg_exception (void) -{ - set_vector (excHandler, 9, 0); - set_vector (excHandler, 47, 0); - set_vector (excHandler, 36, 0); -} - -void -disconnect_rdbg_exception (void) -{ -} |