version 1.72, 2000/09/07 22:20:45 |
version 1.73, 2000/11/01 20:56:30 |
|
|
#include <sys/mbuf.h> |
#include <sys/mbuf.h> |
#include <sys/mman.h> |
#include <sys/mman.h> |
#include <sys/mount.h> |
#include <sys/mount.h> |
#include <sys/ptrace.h> |
|
#include <sys/reboot.h> |
#include <sys/reboot.h> |
#include <sys/resource.h> |
#include <sys/resource.h> |
#include <sys/resourcevar.h> |
#include <sys/resourcevar.h> |
|
|
#include <sys/utsname.h> |
#include <sys/utsname.h> |
#include <sys/unistd.h> |
#include <sys/unistd.h> |
|
|
|
#include <sys/ptrace.h> |
|
#include <machine/ptrace.h> |
|
|
#include <sys/syscallargs.h> |
#include <sys/syscallargs.h> |
|
|
#include <compat/linux/common/linux_types.h> |
#include <compat/linux/common/linux_types.h> |
|
|
#include <compat/linux/common/linux_ptrace.h> |
#include <compat/linux/common/linux_ptrace.h> |
#include <compat/linux/common/linux_reboot.h> |
#include <compat/linux/common/linux_reboot.h> |
|
|
int linux_ptrace_request_map[] = { |
const int linux_ptrace_request_map[] = { |
LINUX_PTRACE_TRACEME, PT_TRACE_ME, |
LINUX_PTRACE_TRACEME, PT_TRACE_ME, |
LINUX_PTRACE_PEEKTEXT, PT_READ_I, |
LINUX_PTRACE_PEEKTEXT, PT_READ_I, |
LINUX_PTRACE_PEEKDATA, PT_READ_D, |
LINUX_PTRACE_PEEKDATA, PT_READ_D, |
Line 117 int linux_ptrace_request_map[] = { |
|
Line 119 int linux_ptrace_request_map[] = { |
|
LINUX_PTRACE_KILL, PT_KILL, |
LINUX_PTRACE_KILL, PT_KILL, |
LINUX_PTRACE_ATTACH, PT_ATTACH, |
LINUX_PTRACE_ATTACH, PT_ATTACH, |
LINUX_PTRACE_DETACH, PT_DETACH, |
LINUX_PTRACE_DETACH, PT_DETACH, |
|
#ifdef PT_STEP |
|
LINUX_PTRACE_SINGLESTEP, PT_STEP, |
|
#endif |
-1 |
-1 |
}; |
}; |
|
|
Line 1078 linux_sys_ptrace(p, v, retval) |
|
Line 1083 linux_sys_ptrace(p, v, retval) |
|
syscallarg(T) addr; |
syscallarg(T) addr; |
syscallarg(T) data; |
syscallarg(T) data; |
} */ *uap = v; |
} */ *uap = v; |
int *ptr, request; |
const int *ptr; |
|
int request; |
|
|
ptr = linux_ptrace_request_map; |
ptr = linux_ptrace_request_map; |
request = SCARG(uap, request); |
request = SCARG(uap, request); |
Line 1094 linux_sys_ptrace(p, v, retval) |
|
Line 1100 linux_sys_ptrace(p, v, retval) |
|
SCARG(&pta, addr) = (caddr_t)SCARG(uap, addr); |
SCARG(&pta, addr) = (caddr_t)SCARG(uap, addr); |
SCARG(&pta, data) = SCARG(uap, data); |
SCARG(&pta, data) = SCARG(uap, data); |
|
|
|
/* |
|
* Linux ptrace(PTRACE_CONT, pid, 0, 0) means actually |
|
* to continue as the process left off previously, |
|
* i.e. same as if NetBSD ptrace called with |
|
* addr == (caddr_t) 1. |
|
*/ |
|
if (request == LINUX_PTRACE_CONT && SCARG(uap, addr)==0) |
|
SCARG(&pta, addr) = (caddr_t) 1; |
|
|
return sys_ptrace(p, &pta, retval); |
return sys_ptrace(p, &pta, retval); |
} |
} |
else |
else |