Merge branch 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic...
[deliverable/linux.git] / arch / sparc / kernel / kgdb_32.c
index 757805ce02eea7e5133dc1c368dac83a89780897..539243b236fa4c1400ed827aef7eb264b5c2693b 100644 (file)
@@ -14,14 +14,14 @@ extern unsigned long trapbase;
 
 void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
 {
-       struct reg_window *win;
+       struct reg_window32 *win;
        int i;
 
        gdb_regs[GDB_G0] = 0;
        for (i = 0; i < 15; i++)
                gdb_regs[GDB_G1 + i] = regs->u_regs[UREG_G1 + i];
 
-       win = (struct reg_window *) regs->u_regs[UREG_FP];
+       win = (struct reg_window32 *) regs->u_regs[UREG_FP];
        for (i = 0; i < 8; i++)
                gdb_regs[GDB_L0 + i] = win->locals[i];
        for (i = 0; i < 8; i++)
@@ -43,7 +43,7 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
 void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p)
 {
        struct thread_info *t = task_thread_info(p);
-       struct reg_window *win;
+       struct reg_window32 *win;
        int i;
 
        for (i = GDB_G0; i < GDB_G6; i++)
@@ -55,7 +55,7 @@ void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p)
        gdb_regs[GDB_SP] = t->ksp;
        gdb_regs[GDB_O7] = 0;
 
-       win = (struct reg_window *) t->ksp;
+       win = (struct reg_window32 *) t->ksp;
        for (i = 0; i < 8; i++)
                gdb_regs[GDB_L0 + i] = win->locals[i];
        for (i = 0; i < 8; i++)
@@ -77,7 +77,7 @@ void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p)
 
 void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
 {
-       struct reg_window *win;
+       struct reg_window32 *win;
        int i;
 
        for (i = 0; i < 15; i++)
@@ -96,7 +96,7 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
        regs->npc = gdb_regs[GDB_NPC];
        regs->y = gdb_regs[GDB_Y];
 
-       win = (struct reg_window *) regs->u_regs[UREG_FP];
+       win = (struct reg_window32 *) regs->u_regs[UREG_FP];
        for (i = 0; i < 8; i++)
                win->locals[i] = gdb_regs[GDB_L0 + i];
        for (i = 0; i < 8; i++)
@@ -158,6 +158,12 @@ void kgdb_arch_exit(void)
 {
 }
 
+void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long ip)
+{
+       regs->pc = ip;
+       regs->npc = regs->pc + 4;
+}
+
 struct kgdb_arch arch_kgdb_ops = {
        /* Breakpoint instruction: ta 0x7d */
        .gdb_bpt_instr          = { 0x91, 0xd0, 0x20, 0x7d },
This page took 0.087183 seconds and 5 git commands to generate.