* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * @(#)kern_ktrace.c 7.15 (Berkeley) 6/21/91
+ * from: @(#)kern_ktrace.c 7.15 (Berkeley) 6/21/91
+ * $Id: kern_ktrace.c,v 1.5 1993/11/25 01:33:00 wollman Exp $
*/
#ifdef KTRACE
#include "param.h"
+#include "systm.h"
#include "proc.h"
#include "file.h"
#include "namei.h"
#include "malloc.h"
#include "syslog.h"
-struct ktr_header *
+static void ktrwrite(struct vnode *, struct ktr_header *);
+static int ktrops(struct proc *, struct proc *, int, int, struct vnode *);
+static int ktrsetchildren(struct proc *, struct proc *, int, int, struct vnode *);
+static int ktrcanset(struct proc *, struct proc *);
+
+static struct ktr_header *
ktrgetheader(type)
+ int type;
{
register struct ktr_header *kth;
struct proc *p = curproc; /* XXX */
return (kth);
}
+void
ktrsyscall(vp, code, narg, args)
struct vnode *vp;
int code, narg, args[];
FREE(kth, M_TEMP);
}
+void
ktrsysret(vp, code, error, retval)
struct vnode *vp;
int code, error, retval;
FREE(kth, M_TEMP);
}
+void
ktrnamei(vp, path)
struct vnode *vp;
char *path;
FREE(kth, M_TEMP);
}
+void
ktrgenio(vp, fd, rw, iov, len, error)
struct vnode *vp;
int fd;
enum uio_rw rw;
register struct iovec *iov;
+ int len;
+ int error;
{
struct ktr_header *kth = ktrgetheader(KTR_GENIO);
register struct ktr_genio *ktp;
FREE(ktp, M_TEMP);
}
+void
ktrpsig(vp, sig, action, mask, code)
struct vnode *vp;
+ int sig;
sig_t action;
+ int mask;
+ int code;
{
struct ktr_header *kth = ktrgetheader(KTR_PSIG);
struct ktr_psig kp;
};
/* ARGSUSED */
+int
ktrace(curp, uap, retval)
struct proc *curp;
register struct ktrace_args *uap;
return (error);
}
+static int
ktrops(curp, p, ops, facs, vp)
struct proc *curp, *p;
+ int ops;
+ int facs;
struct vnode *vp;
{
return (1);
}
+static int
ktrsetchildren(curp, top, ops, facs, vp)
struct proc *curp, *top;
+ int ops;
+ int facs;
struct vnode *vp;
{
register struct proc *p;
/*NOTREACHED*/
}
+static void
ktrwrite(vp, kth)
struct vnode *vp;
register struct ktr_header *kth;
*
* TODO: check groups. use caller effective gid.
*/
+static int
ktrcanset(callp, targetp)
struct proc *callp, *targetp;
{