implement PT_SYSCALL
This commit is contained in:
parent
753afc00ad
commit
a4495f4cec
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: linux_syscall.c,v 1.15 2005/12/11 12:16:10 christos Exp $ */
|
||||
/* $NetBSD: linux_syscall.c,v 1.16 2006/03/05 07:21:37 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2000 The NetBSD Foundation, Inc.
|
||||
@ -102,7 +102,7 @@
|
||||
|
||||
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
|
||||
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.15 2005/12/11 12:16:10 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.16 2006/03/05 07:21:37 christos Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -153,7 +153,10 @@ linux_syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = linux_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = linux_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = linux_syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: osf1_syscall.c,v 1.17 2005/12/11 12:16:10 christos Exp $ */
|
||||
/* $NetBSD: osf1_syscall.c,v 1.18 2006/03/05 07:21:37 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2000 The NetBSD Foundation, Inc.
|
||||
@ -102,7 +102,7 @@
|
||||
|
||||
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
|
||||
|
||||
__KERNEL_RCSID(0, "$NetBSD: osf1_syscall.c,v 1.17 2005/12/11 12:16:10 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: osf1_syscall.c,v 1.18 2006/03/05 07:21:37 christos Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -149,7 +149,10 @@ osf1_syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = osf1_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = osf1_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = osf1_syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.18 2005/12/11 12:16:10 christos Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.19 2006/03/05 07:21:37 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2000 The NetBSD Foundation, Inc.
|
||||
@ -100,7 +100,7 @@
|
||||
|
||||
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
|
||||
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.18 2005/12/11 12:16:10 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.19 2006/03/05 07:21:37 christos Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -142,7 +142,10 @@ syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* $NetBSD: linux32_syscall.c,v 1.1 2006/02/09 19:18:56 manu Exp $ */
|
||||
/* $NetBSD: linux32_syscall.c,v 1.2 2006/03/05 07:21:37 christos Exp $ */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux32_syscall.c,v 1.1 2006/02/09 19:18:56 manu Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux32_syscall.c,v 1.2 2006/03/05 07:21:37 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_ktrace.h"
|
||||
@ -50,7 +50,10 @@ linux32_syscall_intern(p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = linux32_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = linux32_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = linux32_syscall_plain;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: linux_syscall.c,v 1.4 2005/12/07 19:02:36 rjs Exp $ */
|
||||
/* $NetBSD: linux_syscall.c,v 1.5 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.4 2005/12/07 19:02:36 rjs Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.5 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_ktrace.h"
|
||||
@ -96,7 +96,10 @@ linux_syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = linux_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = linux_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = linux_syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: netbsd32_syscall.c,v 1.8 2006/01/20 00:10:33 cube Exp $ */
|
||||
/* $NetBSD: netbsd32_syscall.c,v 1.9 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscall.c,v 1.8 2006/01/20 00:10:33 cube Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscall.c,v 1.9 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_ktrace.h"
|
||||
@ -84,7 +84,10 @@ netbsd32_syscall_intern(p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = netbsd32_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = netbsd32_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = netbsd32_syscall_plain;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.14 2005/12/11 12:16:21 christos Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.15 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.14 2005/12/11 12:16:21 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.15 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_ktrace.h"
|
||||
@ -109,7 +109,10 @@ syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: linux_syscall.c,v 1.14 2005/12/11 12:16:41 christos Exp $ */
|
||||
/* $NetBSD: linux_syscall.c,v 1.15 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2000, 2003 The NetBSD Foundation, Inc.
|
||||
@ -80,7 +80,7 @@
|
||||
|
||||
#include <sys/param.h>
|
||||
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.14 2005/12/11 12:16:41 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.15 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include <sys/device.h>
|
||||
#include <sys/errno.h>
|
||||
@ -129,7 +129,10 @@ linux_syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = linux_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = linux_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = linux_syscall_plain;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.29 2005/12/11 12:16:41 christos Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.30 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2000, 2003 The NetBSD Foundation, Inc.
|
||||
@ -82,7 +82,7 @@
|
||||
|
||||
#include <sys/param.h>
|
||||
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.29 2005/12/11 12:16:41 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.30 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include <sys/device.h>
|
||||
#include <sys/errno.h>
|
||||
@ -229,7 +229,10 @@ syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: freebsd_syscall.c,v 1.19 2005/12/11 12:17:41 christos Exp $ */
|
||||
/* $NetBSD: freebsd_syscall.c,v 1.20 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: freebsd_syscall.c,v 1.19 2005/12/11 12:17:41 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: freebsd_syscall.c,v 1.20 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -90,7 +90,10 @@ freebsd_syscall_intern(p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = freebsd_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = freebsd_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = freebsd_syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: ibcs2_syscall.c,v 1.28 2005/12/11 12:17:41 christos Exp $ */
|
||||
/* $NetBSD: ibcs2_syscall.c,v 1.29 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: ibcs2_syscall.c,v 1.28 2005/12/11 12:17:41 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ibcs2_syscall.c,v 1.29 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -91,7 +91,10 @@ ibcs2_syscall_intern(p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = ibcs2_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = ibcs2_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = ibcs2_syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: linux_syscall.c,v 1.32 2005/12/11 12:17:41 christos Exp $ */
|
||||
/* $NetBSD: linux_syscall.c,v 1.33 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.32 2005/12/11 12:17:41 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.33 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -92,7 +92,10 @@ linux_syscall_intern(p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = linux_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = linux_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = linux_syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: mach_syscall.c,v 1.14 2005/12/11 12:17:41 christos Exp $ */
|
||||
/* $NetBSD: mach_syscall.c,v 1.15 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: mach_syscall.c,v 1.14 2005/12/11 12:17:41 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: mach_syscall.c,v 1.15 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_vm86.h"
|
||||
@ -87,7 +87,10 @@ mach_syscall_intern(p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = mach_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = mach_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = mach_syscall_plain;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: svr4_syscall.c,v 1.27 2005/12/11 12:17:41 christos Exp $ */
|
||||
/* $NetBSD: svr4_syscall.c,v 1.28 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: svr4_syscall.c,v 1.27 2005/12/11 12:17:41 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: svr4_syscall.c,v 1.28 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -90,7 +90,10 @@ svr4_syscall_intern(p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = svr4_syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = svr4_syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = svr4_syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.33 2006/02/04 14:11:34 dsl Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.34 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.33 2006/02/04 14:11:34 dsl Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.34 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_vm86.h"
|
||||
@ -87,7 +87,10 @@ syscall_intern(p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: linux_syscall.c,v 1.10 2005/12/11 12:17:59 christos Exp $ */
|
||||
/* $NetBSD: linux_syscall.c,v 1.11 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Portions Copyright (c) 2000 The NetBSD Foundation, Inc.
|
||||
@ -110,7 +110,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.10 2005/12/11 12:17:59 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.11 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_execfmt.h"
|
||||
@ -147,15 +147,20 @@ linux_syscall_intern(struct proc *p)
|
||||
{
|
||||
|
||||
#ifdef KTRACE
|
||||
if (p->p_traceflag & (KTRFAC_SYSCALL | KTRFAC_SYSRET))
|
||||
if (p->p_traceflag & (KTRFAC_SYSCALL | KTRFAC_SYSRET)) {
|
||||
p->p_md.md_syscall = linux_syscall_fancy;
|
||||
else
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef SYSTRACE
|
||||
if (ISSET(p->p_flag, P_SYSTRACE))
|
||||
if (ISSET(p->p_flag, P_SYSTRACE)) {
|
||||
p->p_md.md_syscall = linux_syscall_fancy;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = linux_syscall_fancy;
|
||||
else
|
||||
#endif
|
||||
p->p_md.md_syscall = linux_syscall_plain;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: m68k_syscall.c,v 1.17 2005/12/11 12:17:59 christos Exp $ */
|
||||
/* $NetBSD: m68k_syscall.c,v 1.18 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Portions Copyright (c) 2000 The NetBSD Foundation, Inc.
|
||||
@ -110,7 +110,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: m68k_syscall.c,v 1.17 2005/12/11 12:17:59 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: m68k_syscall.c,v 1.18 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_execfmt.h"
|
||||
@ -187,15 +187,20 @@ syscall_intern(struct proc *p)
|
||||
{
|
||||
|
||||
#ifdef KTRACE
|
||||
if (p->p_traceflag & (KTRFAC_SYSCALL | KTRFAC_SYSRET))
|
||||
if (p->p_traceflag & (KTRFAC_SYSCALL | KTRFAC_SYSRET)) {
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef SYSTRACE
|
||||
if (ISSET(p->p_flag, P_SYSTRACE))
|
||||
if (ISSET(p->p_flag, P_SYSTRACE)) {
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
#endif
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: sunos_syscall.c,v 1.9 2005/12/11 12:17:59 christos Exp $ */
|
||||
/* $NetBSD: sunos_syscall.c,v 1.10 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Portions Copyright (c) 2000 The NetBSD Foundation, Inc.
|
||||
@ -110,7 +110,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: sunos_syscall.c,v 1.9 2005/12/11 12:17:59 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: sunos_syscall.c,v 1.10 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_execfmt.h"
|
||||
@ -150,15 +150,20 @@ sunos_syscall_intern(struct proc *p)
|
||||
{
|
||||
|
||||
#ifdef KTRACE
|
||||
if (p->p_traceflag & (KTRFAC_SYSCALL | KTRFAC_SYSRET))
|
||||
if (p->p_traceflag & (KTRFAC_SYSCALL | KTRFAC_SYSRET)) {
|
||||
p->p_md.md_syscall = sunos_syscall_fancy;
|
||||
else
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef SYSTRACE
|
||||
if (ISSET(p->p_flag, P_SYSTRACE))
|
||||
if (ISSET(p->p_flag, P_SYSTRACE)) {
|
||||
p->p_md.md_syscall = sunos_syscall_fancy;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = sunos_syscall_fancy;
|
||||
else
|
||||
#endif
|
||||
p->p_md.md_syscall = sunos_syscall_plain;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.24 2005/12/11 12:18:09 christos Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.25 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2001 The NetBSD Foundation, Inc.
|
||||
@ -114,7 +114,7 @@
|
||||
|
||||
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
|
||||
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.24 2005/12/11 12:18:09 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.25 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_ktrace.h"
|
||||
@ -176,7 +176,10 @@ EMULNAME(syscall_intern)(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = EMULNAME(syscall_plain);
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = EMULNAME(syscall_fancy);
|
||||
else
|
||||
p->p_md.md_syscall = EMULNAME(syscall_plain);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.25 2005/12/11 12:18:46 christos Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.26 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2002 Matt Thomas
|
||||
@ -69,7 +69,7 @@
|
||||
#define EMULNAME(x) (x)
|
||||
#define EMULNAMEU(x) (x)
|
||||
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.25 2005/12/11 12:18:46 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.26 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
void
|
||||
child_return(void *arg)
|
||||
@ -339,5 +339,8 @@ EMULNAME(syscall_intern)(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = EMULNAME(syscall_plain);
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = EMULNAME(syscall_fancy);
|
||||
else
|
||||
p->p_md.md_syscall = EMULNAME(syscall_plain);
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.2 2005/12/11 12:19:00 christos Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.3 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2002 The NetBSD Foundation, Inc. All rights reserved.
|
||||
@ -122,7 +122,10 @@ syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.15 2005/12/11 12:19:02 christos Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.16 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2002 Wasabi Systems, Inc.
|
||||
@ -130,7 +130,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.15 2005/12/11 12:19:02 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.16 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_ktrace.h"
|
||||
@ -166,15 +166,20 @@ syscall_intern(struct proc *p)
|
||||
{
|
||||
|
||||
#ifdef KTRACE
|
||||
if (p->p_traceflag & (KTRFAC_SYSCALL | KTRFAC_SYSRET))
|
||||
if (p->p_traceflag & (KTRFAC_SYSCALL | KTRFAC_SYSRET)) {
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef SYSTRACE
|
||||
if (ISSET(p->p_flag, P_SYSTRACE))
|
||||
if (ISSET(p->p_flag, P_SYSTRACE)) {
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
#endif
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.5 2005/12/24 20:07:37 perry Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.6 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996
|
||||
@ -49,7 +49,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.5 2005/12/24 20:07:37 perry Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.6 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
#include "opt_ktrace.h"
|
||||
@ -201,7 +201,10 @@ syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: syscall.c,v 1.11 2005/12/24 20:07:37 perry Exp $ */
|
||||
/* $NetBSD: syscall.c,v 1.12 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2005 The NetBSD Foundation, Inc.
|
||||
@ -86,7 +86,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.11 2005/12/24 20:07:37 perry Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.12 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#define NEW_FPSTATE
|
||||
|
||||
@ -268,7 +268,10 @@ syscall_intern(struct proc *p)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
if (ISSET(p->p_flag, P_SYSCALL))
|
||||
p->p_md.md_syscall = syscall_fancy;
|
||||
else
|
||||
p->p_md.md_syscall = syscall_plain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: kern_exec.c,v 1.213 2006/02/09 19:18:57 manu Exp $ */
|
||||
/* $NetBSD: kern_exec.c,v 1.214 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (C) 1993, 1994, 1996 Christopher G. Demetriou
|
||||
@ -33,7 +33,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.213 2006/02/09 19:18:57 manu Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.214 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_ktrace.h"
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -831,7 +831,7 @@ execve1(struct lwp *l, const char *path, char * const *args,
|
||||
goto exec_abort;
|
||||
}
|
||||
|
||||
if (p->p_flag & P_TRACED)
|
||||
if ((p->p_flag & (P_TRACED|P_SYSCALL)) == P_TRACED)
|
||||
psignal(p, SIGTRAP);
|
||||
|
||||
free(pack.ep_hdr, M_EXEC);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: kern_exit.c,v 1.154 2005/12/11 12:24:29 christos Exp $ */
|
||||
/* $NetBSD: kern_exit.c,v 1.155 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
|
||||
@ -74,7 +74,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_exit.c,v 1.154 2005/12/11 12:24:29 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_exit.c,v 1.155 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_ktrace.h"
|
||||
#include "opt_perfctrs.h"
|
||||
@ -423,7 +423,7 @@ exit1(struct lwp *l, int rv)
|
||||
q->p_opptr = NULL;
|
||||
} else
|
||||
proc_reparent(q, initproc);
|
||||
q->p_flag &= ~(P_TRACED|P_WAITED|P_FSTRACE);
|
||||
q->p_flag &= ~(P_TRACED|P_WAITED|P_FSTRACE|P_SYSCALL);
|
||||
killproc(q, "orphaned traced process");
|
||||
} else {
|
||||
proc_reparent(q, initproc);
|
||||
@ -803,7 +803,7 @@ proc_free(struct proc *p)
|
||||
parent = initproc;
|
||||
proc_reparent(p, parent);
|
||||
p->p_opptr = NULL;
|
||||
p->p_flag &= ~(P_TRACED|P_WAITED|P_FSTRACE);
|
||||
p->p_flag &= ~(P_TRACED|P_WAITED|P_FSTRACE|P_SYSCALL);
|
||||
if (p->p_exitsig != 0) {
|
||||
exit_psignal(p, parent, &ksi);
|
||||
kpsignal(parent, &ksi, NULL);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: kern_sig.c,v 1.215 2006/02/04 12:09:50 yamt Exp $ */
|
||||
/* $NetBSD: kern_sig.c,v 1.216 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1989, 1991, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.215 2006/02/04 12:09:50 yamt Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.216 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_ktrace.h"
|
||||
#include "opt_compat_sunos.h"
|
||||
@ -82,7 +82,6 @@ __KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.215 2006/02/04 12:09:50 yamt Exp $");
|
||||
#include <uvm/uvm.h>
|
||||
#include <uvm/uvm_extern.h>
|
||||
|
||||
static void child_psignal(struct proc *, int);
|
||||
static int build_corename(struct proc *, char *, const char *, size_t);
|
||||
static void ksiginfo_exithook(struct proc *, void *);
|
||||
static void ksiginfo_put(struct proc *, const ksiginfo_t *);
|
||||
@ -957,7 +956,7 @@ trapsignal(struct lwp *l, const ksiginfo_t *ksi)
|
||||
/*
|
||||
* Fill in signal information and signal the parent for a child status change.
|
||||
*/
|
||||
static void
|
||||
void
|
||||
child_psignal(struct proc *p, int dolock)
|
||||
{
|
||||
ksiginfo_t ksi;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: kern_subr.c,v 1.127 2006/03/01 22:12:09 cube Exp $ */
|
||||
/* $NetBSD: kern_subr.c,v 1.128 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997, 1998, 1999, 2002 The NetBSD Foundation, Inc.
|
||||
@ -86,7 +86,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_subr.c,v 1.127 2006/03/01 22:12:09 cube Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_subr.c,v 1.128 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include "opt_ddb.h"
|
||||
#include "opt_md.h"
|
||||
@ -106,6 +106,7 @@ __KERNEL_RCSID(0, "$NetBSD: kern_subr.c,v 1.127 2006/03/01 22:12:09 cube Exp $")
|
||||
#include <sys/queue.h>
|
||||
#include <sys/systrace.h>
|
||||
#include <sys/ktrace.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/fcntl.h>
|
||||
|
||||
#include <uvm/uvm_extern.h>
|
||||
@ -1342,6 +1343,9 @@ trace_enter(struct lwp *l, register_t code,
|
||||
ktrsyscall(l, code, realcode, callp, args);
|
||||
#endif /* KTRACE */
|
||||
|
||||
if ((p->p_flag & (P_SYSCALL|P_TRACED)) == (P_SYSCALL|P_TRACED))
|
||||
process_stoptrace(l);
|
||||
|
||||
#ifdef SYSTRACE
|
||||
if (ISSET(p->p_flag, P_SYSTRACE))
|
||||
return systrace_enter(p, code, args);
|
||||
@ -1375,6 +1379,9 @@ trace_exit(struct lwp *l, register_t code, void *args, register_t rval[],
|
||||
KERNEL_PROC_UNLOCK(l);
|
||||
}
|
||||
#endif /* KTRACE */
|
||||
|
||||
if ((p->p_flag & (P_SYSCALL|P_TRACED)) == (P_SYSCALL|P_TRACED))
|
||||
process_stoptrace(l);
|
||||
|
||||
#ifdef SYSTRACE
|
||||
if (ISSET(p->p_flag, P_SYSTRACE)) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: sys_process.c,v 1.98 2006/03/01 12:38:21 yamt Exp $ */
|
||||
/* $NetBSD: sys_process.c,v 1.99 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1982, 1986, 1989, 1993
|
||||
@ -89,7 +89,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: sys_process.c,v 1.98 2006/03/01 12:38:21 yamt Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: sys_process.c,v 1.99 2006/03/05 07:21:38 christos Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -213,6 +213,7 @@ sys_ptrace(struct lwp *l, void *v, register_t *retval)
|
||||
case PT_KILL:
|
||||
case PT_DETACH:
|
||||
case PT_LWPINFO:
|
||||
case PT_SYSCALL:
|
||||
#ifdef PT_STEP
|
||||
case PT_STEP:
|
||||
#endif
|
||||
@ -381,7 +382,20 @@ sys_ptrace(struct lwp *l, void *v, register_t *retval)
|
||||
*/
|
||||
#endif
|
||||
case PT_CONTINUE:
|
||||
case PT_SYSCALL:
|
||||
case PT_DETACH:
|
||||
if (SCARG(uap, req) == PT_SYSCALL) {
|
||||
if (!ISSET(t->p_flag, P_SYSCALL)) {
|
||||
SET(t->p_flag, P_SYSCALL);
|
||||
(*t->p_emul->e_syscall_intern)(t);
|
||||
}
|
||||
} else {
|
||||
if (ISSET(t->p_flag, P_SYSCALL)) {
|
||||
CLR(t->p_flag, P_SYSCALL);
|
||||
(*t->p_emul->e_syscall_intern)(t);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* From the 4.4BSD PRM:
|
||||
* "The data argument is taken as a signal number and the
|
||||
@ -427,7 +441,7 @@ sys_ptrace(struct lwp *l, void *v, register_t *retval)
|
||||
/* not being traced any more */
|
||||
t->p_opptr = NULL;
|
||||
proclist_unlock_write(s);
|
||||
CLR(t->p_flag, P_TRACED|P_WAITED);
|
||||
CLR(t->p_flag, P_TRACED|P_WAITED|P_SYSCALL|P_FSTRACE);
|
||||
}
|
||||
|
||||
sendsig:
|
||||
@ -808,3 +822,29 @@ process_checkioperm(struct lwp *l, struct proc *t)
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
void
|
||||
process_stoptrace(struct lwp *l)
|
||||
{
|
||||
int s = 0, dolock = (l->l_flag & L_SINTR) == 0;
|
||||
struct proc *p = l->l_proc, *pp = p->p_pptr;
|
||||
|
||||
if (pp->p_pid == 1) {
|
||||
CLR(p->p_flag, P_SYSCALL);
|
||||
return;
|
||||
}
|
||||
|
||||
p->p_xstat = SIGTRAP;
|
||||
child_psignal(pp, dolock);
|
||||
|
||||
if (dolock)
|
||||
SCHED_LOCK(s);
|
||||
|
||||
proc_stop(p, 1);
|
||||
|
||||
mi_switch(l, NULL);
|
||||
SCHED_ASSERT_UNLOCKED();
|
||||
|
||||
if (dolock)
|
||||
splx(s);
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: proc.h,v 1.213 2006/03/01 12:38:32 yamt Exp $ */
|
||||
/* $NetBSD: proc.h,v 1.214 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1986, 1989, 1991, 1993
|
||||
@ -284,6 +284,7 @@ struct proc {
|
||||
/* These flags are kept in p_flag. */
|
||||
#define P_ADVLOCK 0x00000001 /* Process may hold a POSIX advisory lock */
|
||||
#define P_CONTROLT 0x00000002 /* Has a controlling terminal */
|
||||
#define P_SYSCALL 0x00000004 /* process has PT_SYSCALL enabled */
|
||||
#define P_NOCLDSTOP 0x00000008 /* No SIGCHLD when children stop */
|
||||
#define P_PPWAIT 0x00000010 /* Parent is waiting for child exec/exit */
|
||||
#define P_PROFIL 0x00000020 /* Has started profiling */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: ptrace.h,v 1.35 2005/12/11 12:25:21 christos Exp $ */
|
||||
/* $NetBSD: ptrace.h,v 1.36 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1984, 1993
|
||||
@ -46,6 +46,7 @@
|
||||
#define PT_IO 11 /* do I/O to/from the stopped process */
|
||||
#define PT_DUMPCORE 12 /* make the child generate a core dump */
|
||||
#define PT_LWPINFO 13 /* get info about the LWP */
|
||||
#define PT_SYSCALL 14 /* stop on syscall entry/exit */
|
||||
#define PT_FIRSTMACH 32 /* for machine-specific requests */
|
||||
#include <machine/ptrace.h> /* machine-specific requests, if any */
|
||||
|
||||
@ -95,6 +96,8 @@ int process_validfpregs(struct lwp *);
|
||||
int process_domem(struct lwp *, struct lwp *, struct uio *);
|
||||
int process_checkioperm(struct lwp *, struct proc *);
|
||||
|
||||
void process_stoptrace(struct lwp *);
|
||||
|
||||
void proc_reparent(struct proc *, struct proc *);
|
||||
#ifdef PT_GETFPREGS
|
||||
int process_read_fpregs(struct lwp *, struct fpreg *);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: signalvar.h,v 1.62 2005/12/11 12:25:21 christos Exp $ */
|
||||
/* $NetBSD: signalvar.h,v 1.63 2006/03/05 07:21:38 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1991, 1993
|
||||
@ -155,6 +155,7 @@ void kpsignal1(struct proc *, struct ksiginfo *, void *, int);
|
||||
#define kpsignal(p, ksi, data) kpsignal1((p), (ksi), (data), 1)
|
||||
#define psignal(p, sig) psignal1((p), (sig), 1)
|
||||
#define sched_psignal(p, sig) psignal1((p), (sig), 0)
|
||||
void child_psignal(struct proc *, int);
|
||||
void siginit(struct proc *);
|
||||
void trapsignal(struct lwp *, const struct ksiginfo *);
|
||||
void sigexit(struct lwp *, int);
|
||||
|
Loading…
Reference in New Issue
Block a user