use NetBSD utrace(2) facilities for FreeBSD utrace(2) emulation;

use id 'FreeBSD utrace'
This commit is contained in:
jdolecek 2000-12-28 11:18:01 +00:00
parent 7899fd7798
commit 1e46d6c702
1 changed files with 7 additions and 24 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: freebsd_misc.c,v 1.11 2000/12/18 08:53:39 jdolecek Exp $ */
/* $NetBSD: freebsd_misc.c,v 1.12 2000/12/28 11:18:01 jdolecek Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -59,11 +59,6 @@
#include <compat/freebsd/freebsd_timex.h>
#include <compat/freebsd/freebsd_signal.h>
#ifdef KTRACE
void ktrinitheader(struct ktr_header *, struct proc *, int);
int ktrwrite(struct proc *, struct ktr_header *);
#endif
int
freebsd_sys_msync(p, v, retval)
struct proc *p;
@ -173,25 +168,13 @@ freebsd_sys_utrace(p, v, retval)
syscallarg(void *) addr;
syscallarg(size_t) len;
} */ *uap = v;
struct ktr_header kth;
register caddr_t cp;
int error = 0;
if (!KTRPOINT(p, KTR_USER))
return (0);
p->p_traceflag |= KTRFAC_ACTIVE;
ktrinitheader(&kth, p, KTR_USER);
cp = (caddr_t) malloc(SCARG(uap, len), M_TEMP, M_WAITOK);
if ((error = copyin(SCARG(uap, addr), cp, SCARG(uap, len))) == 0) {
kth.ktr_buf = cp;
kth.ktr_len = SCARG(uap, len);
error = ktrwrite(p, &kth);
}
free(cp, M_TEMP);
p->p_traceflag &= ~KTRFAC_ACTIVE;
return (error);
if (KTRPOINT(p, KTR_USER))
ktruser(p, "FreeBSD utrace", SCARG(uap, addr), SCARG(uap, len),
0);
return (0);
#else
return ENOSYS;
return (ENOSYS);
#endif
}