diff options
| author | 2015-05-05 02:13:46 +0000 | |
|---|---|---|
| committer | 2015-05-05 02:13:46 +0000 | |
| commit | 2df12b22ee779d3f10995325e7cbd0d4be5705a0 (patch) | |
| tree | 138b193ca0c53306246987525363f7e1a9d082bf /sys/kern/kern_sig.c | |
| parent | fix a return path that lacked a rw_exit_write() call (diff) | |
| download | wireguard-openbsd-2df12b22ee779d3f10995325e7cbd0d4be5705a0.tar.xz wireguard-openbsd-2df12b22ee779d3f10995325e7cbd0d4be5705a0.zip | |
emul_native is only used for kernel threads which can't dump core, so
delete coredump_trad(), uvm_coredump(), cpu_coredump(), struct md_coredump,
and various #includes that are superfluous.
This leaves compat_linux processes without a coredump callback. If that
ability is desired, someone should update it to use coredump_elf32() and
verify the results...
ok kettenis@
Diffstat (limited to 'sys/kern/kern_sig.c')
| -rw-r--r-- | sys/kern/kern_sig.c | 44 |
1 files changed, 4 insertions, 40 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index fe9e4c58cae..501d4011689 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_sig.c,v 1.179 2015/03/14 03:38:50 jsg Exp $ */ +/* $OpenBSD: kern_sig.c,v 1.180 2015/05/05 02:13:46 guenther Exp $ */ /* $NetBSD: kern_sig.c,v 1.54 1996/04/22 01:38:32 christos Exp $ */ /* @@ -1457,6 +1457,9 @@ coredump(struct proc *p) char name[MAXPATHLEN]; const char *dir = "/var/crash"; + if (pr->ps_emul->e_coredump == NULL) + return (EINVAL); + pr->ps_flags |= PS_COREDUMP; /* @@ -1559,45 +1562,6 @@ out: #endif } -int -coredump_trad(struct proc *p, void *cookie) -{ -#ifdef SMALL_KERNEL - return EPERM; -#else - struct coredump_iostate *io = cookie; - struct vmspace *vm = io->io_proc->p_vmspace; - struct vnode *vp = io->io_vp; - struct ucred *cred = io->io_cred; - struct core core; - int error; - - core.c_midmag = 0; - strlcpy(core.c_name, p->p_comm, sizeof(core.c_name)); - core.c_nseg = 0; - core.c_signo = p->p_sisig; - core.c_ucode = p->p_sitrapno; - core.c_cpusize = 0; - core.c_tsize = (u_long)ptoa(vm->vm_tsize); - core.c_dsize = (u_long)ptoa(vm->vm_dsize); - core.c_ssize = (u_long)round_page(ptoa(vm->vm_ssize)); - error = cpu_coredump(p, vp, cred, &core); - if (error) - return (error); - /* - * uvm_coredump() spits out all appropriate segments. - * All that's left to do is to write the core header. - */ - error = uvm_coredump(p, vp, cred, &core); - if (error) - return (error); - error = vn_rdwr(UIO_WRITE, vp, (caddr_t)&core, - (int)core.c_hdrsize, (off_t)0, - UIO_SYSSPACE, IO_UNIT, cred, NULL, p); - return (error); -#endif -} - #ifndef SMALL_KERNEL int coredump_write(void *cookie, enum uio_seg segflg, const void *data, size_t len) |
