Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/compat/netbsd32 allow to start other emulations (eg nati...



details:   https://anonhg.NetBSD.org/src/rev/da1e53a28f8c
branches:  trunk
changeset: 558742:da1e53a28f8c
user:      drochner <drochner%NetBSD.org@localhost>
date:      Wed Feb 25 18:15:45 2004 +0000

description:
allow to start other emulations (eg native code)
from here: set p_execsw to the new thing, and call
the new emulation's syscall_intern()

XXX there are more differences to kern_exec.c, sa/ras
related afaics, this is harmliss for now since
netbsd32 doesn't support multithreaded programs yet --
one day one execve() implementation should be shared
by native and netbsd32 code.

diffstat:

 sys/compat/netbsd32/netbsd32_execve.c |  10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diffs (31 lines):

diff -r 28db85ccd1f2 -r da1e53a28f8c sys/compat/netbsd32/netbsd32_execve.c
--- a/sys/compat/netbsd32/netbsd32_execve.c     Wed Feb 25 15:00:59 2004 +0000
+++ b/sys/compat/netbsd32/netbsd32_execve.c     Wed Feb 25 18:15:45 2004 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: netbsd32_execve.c,v 1.17 2003/06/29 22:29:37 fvdl Exp $        */
+/*     $NetBSD: netbsd32_execve.c,v 1.18 2004/02/25 18:15:45 drochner Exp $    */
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_execve.c,v 1.17 2003/06/29 22:29:37 fvdl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_execve.c,v 1.18 2004/02/25 18:15:45 drochner Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ktrace.h"
@@ -462,6 +462,12 @@
        /* update p_emul, the old value is no longer needed */
        p->p_emul = pack.ep_es->es_emul;
 
+       /* ...and the same for p_execsw */
+       p->p_execsw = pack.ep_es;
+
+#ifdef __HAVE_SYSCALL_INTERN
+       (*p->p_emul->e_syscall_intern)(p);
+#endif
 #ifdef KTRACE
        if (KTRPOINT(p, KTR_EMUL))
                ktremul(p);



Home | Main Index | Thread Index | Old Index