git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd
[pandora-kernel.git]
/
arch
/
um
/
sys-x86_64
/
ptrace.c
diff --git
a/arch/um/sys-x86_64/ptrace.c
b/arch/um/sys-x86_64/ptrace.c
index
f436136
..
4005506
100644
(file)
--- a/
arch/um/sys-x86_64/ptrace.c
+++ b/
arch/um/sys-x86_64/ptrace.c
@@
-145,7
+145,7
@@
int is_syscall(unsigned long addr)
return instr == 0x050f;
}
return instr == 0x050f;
}
-int get_fpregs(struct user_i387_struct __user *buf, struct task_struct *child)
+
static
int get_fpregs(struct user_i387_struct __user *buf, struct task_struct *child)
{
int err, n, cpu = ((struct thread_info *) child->stack)->cpu;
long fpregs[HOST_FP_SIZE];
{
int err, n, cpu = ((struct thread_info *) child->stack)->cpu;
long fpregs[HOST_FP_SIZE];
@@
-162,7
+162,7
@@
int get_fpregs(struct user_i387_struct __user *buf, struct task_struct *child)
return n;
}
return n;
}
-int set_fpregs(struct user_i387_struct __user *buf, struct task_struct *child)
+
static
int set_fpregs(struct user_i387_struct __user *buf, struct task_struct *child)
{
int n, cpu = ((struct thread_info *) child->stack)->cpu;
long fpregs[HOST_FP_SIZE];
{
int n, cpu = ((struct thread_info *) child->stack)->cpu;
long fpregs[HOST_FP_SIZE];
@@
-182,12
+182,16
@@
long subarch_ptrace(struct task_struct *child, long request,
void __user *datap = (void __user *) data;
switch (request) {
void __user *datap = (void __user *) data;
switch (request) {
- case PTRACE_GETFP
X
REGS: /* Get the child FPU state. */
+ case PTRACE_GETFPREGS: /* Get the child FPU state. */
ret = get_fpregs(datap, child);
break;
ret = get_fpregs(datap, child);
break;
- case PTRACE_SETFP
X
REGS: /* Set the child FPU state. */
+ case PTRACE_SETFPREGS: /* Set the child FPU state. */
ret = set_fpregs(datap, child);
break;
ret = set_fpregs(datap, child);
break;
+ case PTRACE_ARCH_PRCTL:
+ /* XXX Calls ptrace on the host - needs some SMP thinking */
+ ret = arch_prctl(child, data, (void __user *) addr);
+ break;
}
return ret;
}
return ret;