summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_process.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-08-08 05:25:15 +0000
committerpeter <peter@FreeBSD.org>2001-08-08 05:25:15 +0000
commitbb5c43c4b860ad46968f5c811e6a704114915724 (patch)
tree9c1725fe17f3d99c873d801333a60db6ec49fb59 /sys/kern/sys_process.c
parent185e591533d493e9aa5e937d42e40833936ae6f4 (diff)
downloadFreeBSD-src-bb5c43c4b860ad46968f5c811e6a704114915724.zip
FreeBSD-src-bb5c43c4b860ad46968f5c811e6a704114915724.tar.gz
Zap 'ptrace(PT_READ_U, ...)' and 'ptrace(PT_WRITE_U, ...)' since they
are a really nasty interface that should have been killed long ago when 'ptrace(PT_[SG]ETREGS' etc came along. The entity that they operate on (struct user) will not be around much longer since it is part-per-process and part-per-thread in a post-KSE world. gdb does not actually use this except for the obscure 'info udot' command which does a hexdump of as much of the child's 'struct user' as it can get. It carries its own #defines so it doesn't break compiles.
Diffstat (limited to 'sys/kern/sys_process.c')
-rw-r--r--sys/kern/sys_process.c43
1 files changed, 0 insertions, 43 deletions
diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c
index 66d7e67..a81a768 100644
--- a/sys/kern/sys_process.c
+++ b/sys/kern/sys_process.c
@@ -256,10 +256,8 @@ ptrace(curp, uap)
case PT_READ_I:
case PT_READ_D:
- case PT_READ_U:
case PT_WRITE_I:
case PT_WRITE_D:
- case PT_WRITE_U:
case PT_CONTINUE:
case PT_KILL:
case PT_STEP:
@@ -448,47 +446,6 @@ ptrace(curp, uap)
}
return (error);
- case PT_READ_U:
- if ((uintptr_t)uap->addr > UPAGES * PAGE_SIZE - sizeof(int)) {
- return EFAULT;
- }
- if ((uintptr_t)uap->addr & (sizeof(int) - 1)) {
- return EFAULT;
- }
- if (ptrace_read_u_check(p,(vm_offset_t) uap->addr,
- sizeof(int))) {
- return EFAULT;
- }
- error = 0;
- PHOLD(p); /* user had damn well better be incore! */
- mtx_lock_spin(&sched_lock);
- if (p->p_sflag & PS_INMEM) {
- mtx_unlock_spin(&sched_lock);
- fill_kinfo_proc (p, &p->p_addr->u_kproc);
- curp->p_retval[0] = *(int *)
- ((uintptr_t)p->p_addr + (uintptr_t)uap->addr);
- } else {
- mtx_unlock_spin(&sched_lock);
- curp->p_retval[0] = 0;
- error = EFAULT;
- }
- PRELE(p);
- return error;
-
- case PT_WRITE_U:
- PHOLD(p); /* user had damn well better be incore! */
- mtx_lock_spin(&sched_lock);
- if (p->p_sflag & PS_INMEM) {
- mtx_unlock_spin(&sched_lock);
- fill_kinfo_proc (p, &p->p_addr->u_kproc);
- error = ptrace_write_u(p, (vm_offset_t)uap->addr, uap->data);
- } else {
- mtx_unlock_spin(&sched_lock);
- error = EFAULT;
- }
- PRELE(p);
- return error;
-
case PT_KILL:
uap->data = SIGKILL;
goto sendsig; /* in PT_CONTINUE above */
OpenPOWER on IntegriCloud