Fix up COMPAT_LINUX support for amd64. Still a work in progress, not

usable yet ("Hello World" runs, but many other things do not work).
This commit is contained in:
fvdl 2005-05-15 21:44:41 +00:00
parent 49395ac65e
commit 7d91366682
5 changed files with 21 additions and 7 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_syscall.c,v 1.1 2005/05/03 16:26:28 manu Exp $ */ /* $NetBSD: linux_syscall.c,v 1.2 2005/05/15 21:44:41 fvdl Exp $ */
/*- /*-
* Copyright (c) 2005 Emmanuel Dreyfus, all rights reserved. * Copyright (c) 2005 Emmanuel Dreyfus, all rights reserved.
@ -34,7 +34,7 @@
#include "opt_compat_linux.h" #include "opt_compat_linux.h"
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.1 2005/05/03 16:26:28 manu Exp $"); __KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.2 2005/05/15 21:44:41 fvdl Exp $");
#include <sys/types.h> #include <sys/types.h>
#include <sys/param.h> #include <sys/param.h>
@ -47,6 +47,7 @@ __KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.1 2005/05/03 16:26:28 manu Exp $
#include <compat/linux/common/linux_signal.h> #include <compat/linux/common/linux_signal.h>
#include <compat/linux/common/linux_siginfo.h> #include <compat/linux/common/linux_siginfo.h>
#include <compat/linux/arch/amd64/linux_siginfo.h> #include <compat/linux/arch/amd64/linux_siginfo.h>
#include <compat/linux/arch/amd64/linux_syscall.h>
#include <compat/linux/arch/amd64/linux_machdep.h> #include <compat/linux/arch/amd64/linux_machdep.h>
#define EMULNAME(x) __CONCAT(linux_,x) #define EMULNAME(x) __CONCAT(linux_,x)

View File

@ -1,4 +1,4 @@
# $NetBSD: files.amd64,v 1.14 2004/08/30 15:35:20 drochner Exp $ # $NetBSD: files.amd64,v 1.15 2005/05/15 21:44:42 fvdl Exp $
# #
# new style config file for amd64 architecture # new style config file for amd64 architecture
# #
@ -162,6 +162,13 @@ file arch/amd64/amd64/netbsd32_machdep.c compat_netbsd32
file arch/amd64/amd64/netbsd32_sigcode.S compat_netbsd32 & compat_16 file arch/amd64/amd64/netbsd32_sigcode.S compat_netbsd32 & compat_16
file arch/amd64/amd64/netbsd32_syscall.c compat_netbsd32 file arch/amd64/amd64/netbsd32_syscall.c compat_netbsd32
# Linux compatibility (COMPAT_LINUX)
include "compat/linux/files.linux"
include "compat/linux/arch/amd64/files.linux_amd64"
file arch/amd64/amd64/linux_sigcode.S compat_linux
file arch/amd64/amd64/linux_syscall.c compat_linux
file arch/amd64/amd64/linux_trap.c compat_linux
# OSS audio driver compatibility # OSS audio driver compatibility
include "compat/ossaudio/files.ossaudio" include "compat/ossaudio/files.ossaudio"

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_syscall.h,v 1.40 2002/01/14 23:14:34 bjh21 Exp $ */ /* $NetBSD: linux_syscall.h,v 1.41 2005/05/15 21:44:42 fvdl Exp $ */
/*- /*-
* Copyright (c) 1998 The NetBSD Foundation, Inc. * Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -51,6 +51,8 @@
#include <compat/linux/arch/mips/linux_syscall.h> #include <compat/linux/arch/mips/linux_syscall.h>
#elif defined(__arm__) #elif defined(__arm__)
#include <compat/linux/arch/arm/linux_syscall.h> #include <compat/linux/arch/arm/linux_syscall.h>
#elif defined(__amd64__)
#include <compat/linux/arch/amd64/linux_syscall.h>
#else #else
#define LINUX_SYS_MAXSYSCALL 0 #define LINUX_SYS_MAXSYSCALL 0
#endif #endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_syscallargs.h,v 1.38 2002/01/14 23:14:34 bjh21 Exp $ */ /* $NetBSD: linux_syscallargs.h,v 1.39 2005/05/15 21:44:42 fvdl Exp $ */
/*- /*-
* Copyright (c) 1998 The NetBSD Foundation, Inc. * Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -51,6 +51,8 @@
#include <compat/linux/arch/mips/linux_syscallargs.h> #include <compat/linux/arch/mips/linux_syscallargs.h>
#elif defined(__arm__) #elif defined(__arm__)
#include <compat/linux/arch/arm/linux_syscallargs.h> #include <compat/linux/arch/arm/linux_syscallargs.h>
#elif defined(__amd64__)
#include <compat/linux/arch/amd64/linux_syscallargs.h>
#else #else
#error Undefined linux_syscallargs.h machine type. #error Undefined linux_syscallargs.h machine type.
#endif #endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_syscalls.c,v 1.40 2002/01/14 23:14:34 bjh21 Exp $ */ /* $NetBSD: linux_syscalls.c,v 1.41 2005/05/15 21:44:42 fvdl Exp $ */
/*- /*-
* Copyright (c) 1998 The NetBSD Foundation, Inc. * Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -39,7 +39,7 @@
/* XXX XXX This exists to keep kdump and friends happy. */ /* XXX XXX This exists to keep kdump and friends happy. */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(1, "$NetBSD: linux_syscalls.c,v 1.40 2002/01/14 23:14:34 bjh21 Exp $"); __KERNEL_RCSID(1, "$NetBSD: linux_syscalls.c,v 1.41 2005/05/15 21:44:42 fvdl Exp $");
#if defined(__i386__) #if defined(__i386__)
#include "../../sys/compat/linux/arch/i386/linux_syscalls.c" #include "../../sys/compat/linux/arch/i386/linux_syscalls.c"
@ -53,6 +53,8 @@ __KERNEL_RCSID(1, "$NetBSD: linux_syscalls.c,v 1.40 2002/01/14 23:14:34 bjh21 Ex
#include "../../sys/compat/linux/arch/mips/linux_syscalls.c" #include "../../sys/compat/linux/arch/mips/linux_syscalls.c"
#elif defined(__arm__) #elif defined(__arm__)
#include "../../sys/compat/linux/arch/arm/linux_syscalls.c" #include "../../sys/compat/linux/arch/arm/linux_syscalls.c"
#elif defined(__amd64__)
#include "../../sys/compat/linux/arch/amd64/linux_syscalls.c"
#else #else
const char * const linux_syscallnames[] = { 0 }; const char * const linux_syscallnames[] = { 0 };
#endif #endif