summaryrefslogtreecommitdiffstats
path: root/sys/ia64
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/ia64
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/ia64')
-rw-r--r--sys/ia64/ia64/machdep.c53
-rw-r--r--sys/ia64/include/ptrace.h5
2 files changed, 0 insertions, 58 deletions
diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c
index 1bf4a78..f915782 100644
--- a/sys/ia64/ia64/machdep.c
+++ b/sys/ia64/ia64/machdep.c
@@ -1084,59 +1084,6 @@ ptrace_single_step(struct proc *p)
return 0;
}
-int ptrace_read_u_check(struct proc *p, vm_offset_t addr, size_t len)
-{
- vm_offset_t gap;
-
- if ((vm_offset_t) (addr + len) < addr)
- return EPERM;
- if ((vm_offset_t) (addr + len) <= sizeof(struct user))
- return 0;
-
- gap = (char *) p->p_frame - (char *) p->p_addr;
-
- if ((vm_offset_t) addr < gap)
- return EPERM;
- if ((vm_offset_t) (addr + len) <=
- (vm_offset_t) (gap + sizeof(struct trapframe)))
- return 0;
- return EPERM;
-}
-
-int
-ptrace_write_u(struct proc *p, vm_offset_t off, long data)
-{
- vm_offset_t min;
-#if 0
- struct trapframe frame_copy;
- struct trapframe *tp;
-#endif
-
- /*
- * Privileged kernel state is scattered all over the user area.
- * Only allow write access to parts of regs and to fpregs.
- */
- min = (char *)p->p_frame - (char *)p->p_addr;
- if (off >= min && off <= min + sizeof(struct trapframe) - sizeof(int)) {
-#if 0
- tp = p->p_frame;
- frame_copy = *tp;
- *(int *)((char *)&frame_copy + (off - min)) = data;
- if (!EFLAGS_SECURE(frame_copy.tf_eflags, tp->tf_eflags) ||
- !CS_SECURE(frame_copy.tf_cs))
- return (EINVAL);
-#endif
- *(int*)((char *)p->p_addr + off) = data;
- return (0);
- }
- min = offsetof(struct user, u_pcb);
- if (off >= min && off <= min + sizeof(struct pcb)) {
- *(int*)((char *)p->p_addr + off) = data;
- return (0);
- }
- return (EFAULT);
-}
-
int
ia64_pa_access(vm_offset_t pa)
{
diff --git a/sys/ia64/include/ptrace.h b/sys/ia64/include/ptrace.h
index 8a7ff84..2cf8f26 100644
--- a/sys/ia64/include/ptrace.h
+++ b/sys/ia64/include/ptrace.h
@@ -45,9 +45,4 @@
#define PT_GETFPREGS (PT_FIRSTMACH + 3)
#define PT_SETFPREGS (PT_FIRSTMACH + 4)
-#ifdef _KERNEL
-int ptrace_read_u_check __P((struct proc *p, vm_offset_t off, size_t len));
#endif
-
-#endif
-
OpenPOWER on IntegriCloud