diff options
| author | thorpej <thorpej@NetBSD.org> | 2003-03-01 04:36:38 +0000 |
|---|---|---|
| committer | thorpej <thorpej@NetBSD.org> | 2003-03-01 04:36:38 +0000 |
| commit | 5afa6838bf6bdc19b5e14c7e899a5a51a6caead3 (patch) | |
| tree | 5281ee003978fca7279fb99d9bfb063f2ad0c7e5 /sys/compat/linux | |
| parent | b1a286afffb7ed6cc2e15dec3513d31e3ed60be7 (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.h | 4 | ||||
| -rw-r--r-- | sys/compat/linux/arch/arm/linux_machdep.h | 4 | ||||
| -rw-r--r-- | sys/compat/linux/arch/powerpc/linux_exec.h | 5 | ||||
| -rw-r--r-- | sys/compat/linux/common/linux_exec.c | 9 |
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, |
