[PATCH] sparc64: task_pt_regs()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
ee3eea165e
commit
26ecbdea4b
|
@ -296,7 +296,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||||
case PTRACE_GETREGS: {
|
case PTRACE_GETREGS: {
|
||||||
struct pt_regs32 __user *pregs =
|
struct pt_regs32 __user *pregs =
|
||||||
(struct pt_regs32 __user *) addr;
|
(struct pt_regs32 __user *) addr;
|
||||||
struct pt_regs *cregs = child->thread_info->kregs;
|
struct pt_regs *cregs = task_pt_regs(child);
|
||||||
int rval;
|
int rval;
|
||||||
|
|
||||||
if (__put_user(tstate_to_psr(cregs->tstate), (&pregs->psr)) ||
|
if (__put_user(tstate_to_psr(cregs->tstate), (&pregs->psr)) ||
|
||||||
|
@ -320,7 +320,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||||
|
|
||||||
case PTRACE_GETREGS64: {
|
case PTRACE_GETREGS64: {
|
||||||
struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
|
struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
|
||||||
struct pt_regs *cregs = child->thread_info->kregs;
|
struct pt_regs *cregs = task_pt_regs(child);
|
||||||
unsigned long tpc = cregs->tpc;
|
unsigned long tpc = cregs->tpc;
|
||||||
int rval;
|
int rval;
|
||||||
|
|
||||||
|
@ -348,7 +348,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||||
case PTRACE_SETREGS: {
|
case PTRACE_SETREGS: {
|
||||||
struct pt_regs32 __user *pregs =
|
struct pt_regs32 __user *pregs =
|
||||||
(struct pt_regs32 __user *) addr;
|
(struct pt_regs32 __user *) addr;
|
||||||
struct pt_regs *cregs = child->thread_info->kregs;
|
struct pt_regs *cregs = task_pt_regs(child);
|
||||||
unsigned int psr, pc, npc, y;
|
unsigned int psr, pc, npc, y;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -381,7 +381,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||||
|
|
||||||
case PTRACE_SETREGS64: {
|
case PTRACE_SETREGS64: {
|
||||||
struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
|
struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
|
||||||
struct pt_regs *cregs = child->thread_info->kregs;
|
struct pt_regs *cregs = task_pt_regs(child);
|
||||||
unsigned long tstate, tpc, tnpc, y;
|
unsigned long tstate, tpc, tnpc, y;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -562,8 +562,8 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||||
#ifdef DEBUG_PTRACE
|
#ifdef DEBUG_PTRACE
|
||||||
printk("CONT: %s [%d]: set exit_code = %x %lx %lx\n", child->comm,
|
printk("CONT: %s [%d]: set exit_code = %x %lx %lx\n", child->comm,
|
||||||
child->pid, child->exit_code,
|
child->pid, child->exit_code,
|
||||||
child->thread_info->kregs->tpc,
|
task_pt_regs(child)->tpc,
|
||||||
child->thread_info->kregs->tnpc);
|
task_pt_regs(child)->tnpc);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
wake_up_process(child);
|
wake_up_process(child);
|
||||||
|
|
|
@ -119,7 +119,7 @@ typedef struct {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
|
#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
|
||||||
({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread_info->kregs); 1; })
|
({ ELF_CORE_COPY_REGS((*(__elf_regs)), task_pt_regs(__tsk)); 1; })
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is used to ensure we don't load something for the wrong architecture.
|
* This is used to ensure we don't load something for the wrong architecture.
|
||||||
|
|
|
@ -186,8 +186,9 @@ extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
|
||||||
|
|
||||||
extern unsigned long get_wchan(struct task_struct *task);
|
extern unsigned long get_wchan(struct task_struct *task);
|
||||||
|
|
||||||
#define KSTK_EIP(tsk) ((tsk)->thread_info->kregs->tpc)
|
#define task_pt_regs(tsk) (task_thread_info(tsk)->kregs)
|
||||||
#define KSTK_ESP(tsk) ((tsk)->thread_info->kregs->u_regs[UREG_FP])
|
#define KSTK_EIP(tsk) (task_pt_regs(tsk)->tpc)
|
||||||
|
#define KSTK_ESP(tsk) (task_pt_regs(tsk)->u_regs[UREG_FP])
|
||||||
|
|
||||||
#define cpu_relax() barrier()
|
#define cpu_relax() barrier()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue