Introduce lwp_emuldata and the associated hooks. No hook is provided for the
exec case, as the emulation already has the ability to intercept that with the e_proc_exec hook. It is the responsability of the emulation to take appropriaye action about lwp_emuldata in e_proc_exec. Patch reviewed by Christos.
This commit is contained in:
parent
8f443ee26a
commit
b23b73b953
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: aout_exec.c,v 1.19 2003/12/05 21:12:42 jdolecek Exp $ */
|
||||
/* $NetBSD: aout_exec.c,v 1.20 2003/12/20 18:22:17 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: aout_exec.c,v 1.19 2003/12/05 21:12:42 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: aout_exec.c,v 1.20 2003/12/20 18:22:17 manu Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -96,6 +96,8 @@ const struct emul emul_netbsd_aout = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: aoutm68k_exec.c,v 1.15 2003/12/05 21:12:42 jdolecek Exp $ */
|
||||
/* $NetBSD: aoutm68k_exec.c,v 1.16 2003/12/20 18:22:17 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: aoutm68k_exec.c,v 1.15 2003/12/05 21:12:42 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: aoutm68k_exec.c,v 1.16 2003/12/20 18:22:17 manu Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -85,6 +85,8 @@ const struct emul emul_netbsd_aoutm68k = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
aoutm68k_syscall_intern,
|
||||
NULL,
|
||||
NULL,
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: darwin_exec.c,v 1.29 2003/12/09 00:48:54 christos Exp $ */
|
||||
/* $NetBSD: darwin_exec.c,v 1.30 2003/12/20 18:22:17 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2002 The NetBSD Foundation, Inc.
|
||||
@ -38,7 +38,7 @@
|
||||
|
||||
#include "opt_compat_darwin.h" /* For COMPAT_DARWIN in mach_port.h */
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: darwin_exec.c,v 1.29 2003/12/09 00:48:54 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: darwin_exec.c,v 1.30 2003/12/20 18:22:17 manu Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
|
||||
@ -124,6 +124,8 @@ const struct emul emul_darwin = {
|
||||
darwin_e_proc_exec,
|
||||
darwin_e_proc_fork,
|
||||
darwin_e_proc_exit,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
mach_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: freebsd_exec.c,v 1.23 2003/12/05 21:12:42 jdolecek Exp $ */
|
||||
/* $NetBSD: freebsd_exec.c,v 1.24 2003/12/20 18:22:17 manu Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1993, 1994 Christopher G. Demetriou
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: freebsd_exec.c,v 1.23 2003/12/05 21:12:42 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: freebsd_exec.c,v 1.24 2003/12/20 18:22:17 manu Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -73,6 +73,8 @@ const struct emul emul_freebsd = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
freebsd_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: hpux_exec.c,v 1.40 2003/12/05 21:12:42 jdolecek Exp $ */
|
||||
/* $NetBSD: hpux_exec.c,v 1.41 2003/12/20 18:22:18 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
|
||||
@ -70,7 +70,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: hpux_exec.c,v 1.40 2003/12/05 21:12:42 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: hpux_exec.c,v 1.41 2003/12/20 18:22:18 manu Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -130,6 +130,8 @@ const struct emul emul_hpux = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
hpux_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: ibcs2_exec.c,v 1.56 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: ibcs2_exec.c,v 1.57 2003/12/20 18:22:18 manu Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1994, 1995, 1998 Scott Bartram
|
||||
@ -35,7 +35,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: ibcs2_exec.c,v 1.56 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ibcs2_exec.c,v 1.57 2003/12/20 18:22:18 manu Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -90,6 +90,8 @@ const struct emul emul_ibcs2 = {
|
||||
ibcs2_e_proc_exec,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
ibcs2_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: irix_exec.c,v 1.35 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: irix_exec.c,v 1.36 2003/12/20 18:22:18 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2001-2002 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: irix_exec.c,v 1.35 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: irix_exec.c,v 1.36 2003/12/20 18:22:18 manu Exp $");
|
||||
|
||||
#ifdef _KERNEL_OPT
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -111,6 +111,8 @@ const struct emul emul_irix = {
|
||||
irix_e_proc_exec,
|
||||
irix_e_proc_fork,
|
||||
irix_e_proc_exit,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
irix_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: linux_exec.c,v 1.68 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: linux_exec.c,v 1.69 2003/12/20 18:22:18 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1994, 1995, 1998, 2000 The NetBSD Foundation, Inc.
|
||||
@ -38,7 +38,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_exec.c,v 1.68 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_exec.c,v 1.69 2003/12/20 18:22:18 manu Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -134,6 +134,8 @@ const struct emul emul_linux = {
|
||||
linux_e_proc_exec,
|
||||
linux_e_proc_fork,
|
||||
linux_e_proc_exit,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
linux_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: mach_exec.c,v 1.45 2003/12/18 01:10:20 grant Exp $ */
|
||||
/* $NetBSD: mach_exec.c,v 1.46 2003/12/20 18:22:18 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2001-2003 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: mach_exec.c,v 1.45 2003/12/18 01:10:20 grant Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: mach_exec.c,v 1.46 2003/12/20 18:22:18 manu Exp $");
|
||||
|
||||
#include "opt_syscall_debug.h"
|
||||
|
||||
@ -110,6 +110,8 @@ const struct emul emul_mach = {
|
||||
mach_e_proc_exec,
|
||||
mach_e_proc_fork,
|
||||
mach_e_proc_exit,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
mach_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: netbsd32_netbsd.c,v 1.78 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: netbsd32_netbsd.c,v 1.79 2003/12/20 18:22:18 manu Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1998, 2001 Matthew R. Green
|
||||
@ -29,7 +29,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.78 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.79 2003/12/20 18:22:18 manu Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_ddb.h"
|
||||
@ -135,6 +135,8 @@ const struct emul emul_netbsd32 = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
netbsd32_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: osf1_exec.c,v 1.34 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: osf1_exec.c,v 1.35 2003/12/20 18:22:18 manu Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1999 Christopher G. Demetriou. All rights reserved.
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: osf1_exec.c,v 1.34 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: osf1_exec.c,v 1.35 2003/12/20 18:22:18 manu Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -74,6 +74,8 @@ const struct emul emul_osf1 = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
osf1_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: pecoff_emul.c,v 1.8 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: pecoff_emul.c,v 1.9 2003/12/20 18:22:19 manu Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2000 Masaru OKI
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: pecoff_emul.c,v 1.8 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: pecoff_emul.c,v 1.9 2003/12/20 18:22:19 manu Exp $");
|
||||
|
||||
/*#define DEBUG_PECOFF*/
|
||||
|
||||
@ -101,6 +101,8 @@ const struct emul emul_pecoff = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: sunos_exec.c,v 1.43 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: sunos_exec.c,v 1.44 2003/12/20 18:22:19 manu Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1993 Theo de Raadt
|
||||
@ -28,7 +28,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: sunos_exec.c,v 1.43 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: sunos_exec.c,v 1.44 2003/12/20 18:22:19 manu Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -83,6 +83,8 @@ const struct emul emul_sunos = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
sunos_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: sunos32_exec.c,v 1.17 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: sunos32_exec.c,v 1.18 2003/12/20 18:22:19 manu Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2001 Matthew R. Green
|
||||
@ -29,7 +29,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: sunos32_exec.c,v 1.17 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: sunos32_exec.c,v 1.18 2003/12/20 18:22:19 manu Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -77,6 +77,8 @@ const struct emul emul_sunos = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
syscall,
|
||||
NULL,
|
||||
NULL,
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: svr4_exec.c,v 1.52 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: svr4_exec.c,v 1.53 2003/12/20 18:22:19 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1994, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: svr4_exec.c,v 1.52 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: svr4_exec.c,v 1.53 2003/12/20 18:22:19 manu Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
@ -80,6 +80,8 @@ const struct emul emul_svr4 = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
svr4_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: svr4_32_exec.c,v 1.12 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: svr4_32_exec.c,v 1.13 2003/12/20 18:22:19 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1994, 2000 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: svr4_32_exec.c,v 1.12 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: svr4_32_exec.c,v 1.13 2003/12/20 18:22:19 manu Exp $");
|
||||
|
||||
#define ELFSIZE 32 /* XXX should die */
|
||||
|
||||
@ -82,6 +82,8 @@ const struct emul emul_svr4_32 = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
svr4_32_syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: ultrix_misc.c,v 1.90 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: ultrix_misc.c,v 1.91 2003/12/20 18:22:19 manu Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1995, 1997 Jonathan Stone (hereinafter referred to as the author)
|
||||
@ -76,7 +76,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: ultrix_misc.c,v 1.90 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ultrix_misc.c,v 1.91 2003/12/20 18:22:19 manu Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_nfsserver.h"
|
||||
@ -178,6 +178,8 @@ const struct emul emul_ultrix = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: kern_exec.c,v 1.178 2003/12/05 21:12:43 jdolecek Exp $ */
|
||||
/* $NetBSD: kern_exec.c,v 1.179 2003/12/20 18:22:17 manu 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.178 2003/12/05 21:12:43 jdolecek Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.179 2003/12/20 18:22:17 manu Exp $");
|
||||
|
||||
#include "opt_ktrace.h"
|
||||
#include "opt_syscall_debug.h"
|
||||
@ -166,6 +166,8 @@ const struct emul emul_netbsd = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
syscall_intern,
|
||||
#else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: kern_lwp.c,v 1.15 2003/11/04 10:33:15 dsl Exp $ */
|
||||
/* $NetBSD: kern_lwp.c,v 1.16 2003/12/20 18:22:17 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2001 The NetBSD Foundation, Inc.
|
||||
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.15 2003/11/04 10:33:15 dsl Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.16 2003/12/20 18:22:17 manu Exp $");
|
||||
|
||||
#include "opt_multiprocessor.h"
|
||||
|
||||
@ -515,6 +515,9 @@ newlwp(struct lwp *l1, struct proc *p2, vaddr_t uaddr, boolean_t inmem,
|
||||
LIST_INSERT_HEAD(&alllwp, l2, l_list);
|
||||
proclist_unlock_write(s);
|
||||
|
||||
if (p2->p_emul->e_lwp_fork)
|
||||
(*p2->p_emul->e_lwp_fork)(l1, l2);
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -534,6 +537,9 @@ lwp_exit(struct lwp *l)
|
||||
DPRINTF((" nlwps: %d nrlwps %d nzlwps: %d\n",
|
||||
p->p_nlwps, p->p_nrlwps, p->p_nzlwps));
|
||||
|
||||
if (p->p_emul->e_lwp_exit)
|
||||
(*p->p_emul->e_lwp_exit)(l);
|
||||
|
||||
/*
|
||||
* If we are the last live LWP in a process, we need to exit
|
||||
* the entire process (if that's not already going on). We do
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: lwp.h,v 1.14 2003/11/17 22:52:09 cl Exp $ */
|
||||
/* $NetBSD: lwp.h,v 1.15 2003/12/20 18:22:16 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2001 The NetBSD Foundation, Inc.
|
||||
@ -86,9 +86,7 @@ struct lwp {
|
||||
#define l_endcopy l_private
|
||||
|
||||
void *l_private; /* svr4-style lwp-private data */
|
||||
#ifdef notyet
|
||||
void *l_emuldata; /* kernel lwp-private data */
|
||||
#endif
|
||||
|
||||
int l_locks; /* DEBUG: lockmgr count of held locks */
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: proc.h,v 1.182 2003/12/06 04:16:33 atatat Exp $ */
|
||||
/* $NetBSD: proc.h,v 1.183 2003/12/20 18:22:16 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1986, 1989, 1991, 1993
|
||||
@ -121,6 +121,8 @@ struct emul {
|
||||
struct exec_package *));
|
||||
void (*e_proc_fork) __P((struct proc *, struct proc *));
|
||||
void (*e_proc_exit) __P((struct proc *));
|
||||
void (*e_lwp_fork) __P((struct lwp *, struct lwp *));
|
||||
void (*e_lwp_exit) __P((struct lwp *));
|
||||
|
||||
#ifdef __HAVE_SYSCALL_INTERN
|
||||
void (*e_syscall_intern) __P((struct proc *));
|
||||
|
Loading…
Reference in New Issue
Block a user