]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/sh/kernel/ptrace_32.c
ptrace: change signature of arch_ptrace()
[net-next-2.6.git] / arch / sh / kernel / ptrace_32.c
index 6c4bbba2a67573e2d1a72d2362bc28b4af4e2428..34bf03745e86dcae5a3b4cf59e90e5fa8bf48f32 100644 (file)
@@ -274,6 +274,33 @@ static int dspregs_active(struct task_struct *target,
 }
 #endif
 
+const struct pt_regs_offset regoffset_table[] = {
+       REGS_OFFSET_NAME(0),
+       REGS_OFFSET_NAME(1),
+       REGS_OFFSET_NAME(2),
+       REGS_OFFSET_NAME(3),
+       REGS_OFFSET_NAME(4),
+       REGS_OFFSET_NAME(5),
+       REGS_OFFSET_NAME(6),
+       REGS_OFFSET_NAME(7),
+       REGS_OFFSET_NAME(8),
+       REGS_OFFSET_NAME(9),
+       REGS_OFFSET_NAME(10),
+       REGS_OFFSET_NAME(11),
+       REGS_OFFSET_NAME(12),
+       REGS_OFFSET_NAME(13),
+       REGS_OFFSET_NAME(14),
+       REGS_OFFSET_NAME(15),
+       REG_OFFSET_NAME(pc),
+       REG_OFFSET_NAME(pr),
+       REG_OFFSET_NAME(sr),
+       REG_OFFSET_NAME(gbr),
+       REG_OFFSET_NAME(mach),
+       REG_OFFSET_NAME(macl),
+       REG_OFFSET_NAME(tra),
+       REG_OFFSET_END,
+};
+
 /*
  * These are our native regset flavours.
  */
@@ -338,7 +365,8 @@ const struct user_regset_view *task_user_regset_view(struct task_struct *task)
        return &user_sh_native_view;
 }
 
-long arch_ptrace(struct task_struct *child, long request, long addr, long data)
+long arch_ptrace(struct task_struct *child, long request,
+                unsigned long addr, unsigned long data)
 {
        struct user * dummy = NULL;
        unsigned long __user *datap = (unsigned long __user *)data;
@@ -356,17 +384,17 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
 
                if (addr < sizeof(struct pt_regs))
                        tmp = get_stack_long(child, addr);
-               else if (addr >= (long) &dummy->fpu &&
-                        addr < (long) &dummy->u_fpvalid) {
+               else if (addr >= (unsigned long) &dummy->fpu &&
+                        addr < (unsigned long) &dummy->u_fpvalid) {
                        if (!tsk_used_math(child)) {
-                               if (addr == (long)&dummy->fpu.fpscr)
+                               if (addr == (unsigned long)&dummy->fpu.fpscr)
                                        tmp = FPSCR_INIT;
                                else
                                        tmp = 0;
                        } else
-                               tmp = ((long *)child->thread.xstate)
+                               tmp = ((unsigned long *)child->thread.xstate)
                                        [(addr - (long)&dummy->fpu) >> 2];
-               } else if (addr == (long) &dummy->u_fpvalid)
+               } else if (addr == (unsigned long) &dummy->u_fpvalid)
                        tmp = !!tsk_used_math(child);
                else if (addr == PT_TEXT_ADDR)
                        tmp = child->mm->start_code;
@@ -390,13 +418,13 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
 
                if (addr < sizeof(struct pt_regs))
                        ret = put_stack_long(child, addr, data);
-               else if (addr >= (long) &dummy->fpu &&
-                        addr < (long) &dummy->u_fpvalid) {
+               else if (addr >= (unsigned long) &dummy->fpu &&
+                        addr < (unsigned long) &dummy->u_fpvalid) {
                        set_stopped_child_used_math(child);
-                       ((long *)child->thread.xstate)
+                       ((unsigned long *)child->thread.xstate)
                                [(addr - (long)&dummy->fpu) >> 2] = data;
                        ret = 0;
-               } else if (addr == (long) &dummy->u_fpvalid) {
+               } else if (addr == (unsigned long) &dummy->u_fpvalid) {
                        conditional_stopped_child_used_math(data, child);
                        ret = 0;
                }