summaryrefslogtreecommitdiff
path: root/sys/compat/linux
diff options
context:
space:
mode:
authorthorpej <thorpej@NetBSD.org>2003-03-01 04:36:38 +0000
committerthorpej <thorpej@NetBSD.org>2003-03-01 04:36:38 +0000
commit5afa6838bf6bdc19b5e14c7e899a5a51a6caead3 (patch)
tree5281ee003978fca7279fb99d9bfb063f2ad0c7e5 /sys/compat/linux
parentb1a286afffb7ed6cc2e15dec3513d31e3ed60be7 (diff)
Do the syscall_plain/syscall_fancy dance on ARM. Shaves a fair number
of cycles off the syscall overhead. Since all COMPAT_LINUX platforms now support __HAVE_SYSCALL_INTERN, garbage-collect the LINUX_SYSCALL_FUNCTION stuff.
Diffstat (limited to 'sys/compat/linux')
-rw-r--r--sys/compat/linux/arch/arm/linux_exec.h4
-rw-r--r--sys/compat/linux/arch/arm/linux_machdep.h4
-rw-r--r--sys/compat/linux/arch/powerpc/linux_exec.h5
-rw-r--r--sys/compat/linux/common/linux_exec.c9
4 files changed, 8 insertions, 14 deletions
diff --git a/sys/compat/linux/arch/arm/linux_exec.h b/sys/compat/linux/arch/arm/linux_exec.h
index 6bcae0ba29e..7cb9ed84784 100644
--- a/sys/compat/linux/arch/arm/linux_exec.h
+++ b/sys/compat/linux/arch/arm/linux_exec.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_exec.h,v 1.3 2002/11/13 15:16:30 jdolecek Exp $ */
+/* $NetBSD: linux_exec.h,v 1.4 2003/03/01 04:36:39 thorpej Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -45,6 +45,4 @@
#define LINUX_ELF_AUX_ARGSIZ \
(howmany(LINUX_ELF_AUX_ENTRIES * sizeof(Aux32Info), sizeof(Elf32_Addr)))
-#define LINUX_SYSCALL_FUNCTION linux_syscall
-
#endif /* !_I386_LINUX_EXEC_H */
diff --git a/sys/compat/linux/arch/arm/linux_machdep.h b/sys/compat/linux/arch/arm/linux_machdep.h
index 26da9cb3ba8..659e449aadb 100644
--- a/sys/compat/linux/arch/arm/linux_machdep.h
+++ b/sys/compat/linux/arch/arm/linux_machdep.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_machdep.h,v 1.3 2002/02/15 16:47:59 christos Exp $ */
+/* $NetBSD: linux_machdep.h,v 1.4 2003/03/01 04:36:39 thorpej Exp $ */
/*-
* Copyright (c) 1995, 2000 The NetBSD Foundation, Inc.
@@ -77,4 +77,6 @@ struct linux_sigframe {
unsigned long sf_extramask[LINUX__NSIG_WORDS - 1];
};
+void linux_syscall_intern __P((struct proc *));
+
#endif
diff --git a/sys/compat/linux/arch/powerpc/linux_exec.h b/sys/compat/linux/arch/powerpc/linux_exec.h
index 5654e937288..48c8aa9c0eb 100644
--- a/sys/compat/linux/arch/powerpc/linux_exec.h
+++ b/sys/compat/linux/arch/powerpc/linux_exec.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_exec.h,v 1.13 2002/11/13 15:16:31 jdolecek Exp $ */
+/* $NetBSD: linux_exec.h,v 1.14 2003/03/01 04:36:39 thorpej Exp $ */
/*-
* Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
@@ -103,7 +103,4 @@
/* we have special powerpc ELF copyargs */
#define LINUX_MACHDEP_ELF_COPYARGS
-/* NetBSD/powerpc doesn't use e_syscall, so use the default. */
-#define LINUX_SYSCALL_FUNCTION syscall
-
#endif /* !_POWERPC_LINUX_EXEC_H */
diff --git a/sys/compat/linux/common/linux_exec.c b/sys/compat/linux/common/linux_exec.c
index 36a402cd6a1..2e82bcf514a 100644
--- a/sys/compat/linux/common/linux_exec.c
+++ b/sys/compat/linux/common/linux_exec.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_exec.c,v 1.61 2003/01/18 08:02:51 thorpej Exp $ */
+/* $NetBSD: linux_exec.c,v 1.62 2003/03/01 04:36:39 thorpej 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.61 2003/01/18 08:02:51 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_exec.c,v 1.62 2003/03/01 04:36:39 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -73,9 +73,6 @@ __KERNEL_RCSID(0, "$NetBSD: linux_exec.c,v 1.61 2003/01/18 08:02:51 thorpej Exp
extern struct sysent linux_sysent[];
extern const char * const linux_syscallnames[];
extern char linux_sigcode[], linux_esigcode[];
-#ifndef __HAVE_SYSCALL_INTERN
-void LINUX_SYSCALL_FUNCTION __P((void));
-#endif
static void linux_e_proc_exec __P((struct proc *, struct exec_package *));
static void linux_e_proc_fork __P((struct proc *, struct proc *));
@@ -136,7 +133,7 @@ const struct emul emul_linux = {
#ifdef __HAVE_SYSCALL_INTERN
linux_syscall_intern,
#else
- LINUX_SYSCALL_FUNCTION,
+#error Implement __HAVE_SYSCALL_INTERN for this platform
#endif
linux_sysctl,
NULL,