aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/os-Linux/process.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-02-27 11:33:51 -0500
committerJeff Garzik <jeff@garzik.org>2006-02-27 11:33:51 -0500
commitdbfedbb98145375106cee7ec7269611d553819dc (patch)
tree81d2a6de51b1bb3c704e5385dbc90ca79efa69bc /arch/um/os-Linux/process.c
parent7b0386921db20add25afd8678ed34a9253e512fc (diff)
parente95a9ec1bb66e07b138861c743192f06e7b3e4de (diff)
Merge branch 'master'
Diffstat (limited to 'arch/um/os-Linux/process.c')
-rw-r--r--arch/um/os-Linux/process.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c
index 7f5e2dac2a35..d261888f39c4 100644
--- a/arch/um/os-Linux/process.c
+++ b/arch/um/os-Linux/process.c
@@ -19,6 +19,7 @@
19#include "irq_user.h" 19#include "irq_user.h"
20#include "kern_util.h" 20#include "kern_util.h"
21#include "longjmp.h" 21#include "longjmp.h"
22#include "skas_ptrace.h"
22 23
23#define ARBITRARY_ADDR -1 24#define ARBITRARY_ADDR -1
24#define FAILURE_PID -1 25#define FAILURE_PID -1
@@ -100,6 +101,21 @@ void os_kill_process(int pid, int reap_child)
100 101
101} 102}
102 103
104/* This is here uniquely to have access to the userspace errno, i.e. the one
105 * used by ptrace in case of error.
106 */
107
108long os_ptrace_ldt(long pid, long addr, long data)
109{
110 int ret;
111
112 ret = ptrace(PTRACE_LDT, pid, addr, data);
113
114 if (ret < 0)
115 return -errno;
116 return ret;
117}
118
103/* Kill off a ptraced child by all means available. kill it normally first, 119/* Kill off a ptraced child by all means available. kill it normally first,
104 * then PTRACE_KILL it, then PTRACE_CONT it in case it's in a run state from 120 * then PTRACE_KILL it, then PTRACE_CONT it in case it's in a run state from
105 * which it can't exit directly. 121 * which it can't exit directly.