aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/include
diff options
context:
space:
mode:
authorNathan Whitehorn <nwhitehorn@FreeBSD.org>2010-03-11 14:49:06 +0000
committerNathan Whitehorn <nwhitehorn@FreeBSD.org>2010-03-11 14:49:06 +0000
commit841c0c7ec75bef3c9920cd811270f9f84791ee04 (patch)
treee7bb2301107c48074cb0dbfffd43ee1f7e425d97 /sys/amd64/include
parent343803ad831302c8914105ef7dec9e7544750d1e (diff)
downloadsrc-841c0c7ec75bef3c9920cd811270f9f84791ee04.tar.gz
src-841c0c7ec75bef3c9920cd811270f9f84791ee04.zip
Provide groundwork for 32-bit binary compatibility on non-x86 platforms,
for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32 option to COMPAT_FREEBSD32, removes some IA32-specific code from MI parts of the kernel and enhances the freebsd32 compatibility code to support big-endian platforms. Reviewed by: kib, jhb
Notes
Notes: svn path=/head/; revision=205014
Diffstat (limited to 'sys/amd64/include')
-rw-r--r--sys/amd64/include/elf.h1
-rw-r--r--sys/amd64/include/reg.h9
2 files changed, 10 insertions, 0 deletions
diff --git a/sys/amd64/include/elf.h b/sys/amd64/include/elf.h
index 88f439805ba1..678f5d3ba0f4 100644
--- a/sys/amd64/include/elf.h
+++ b/sys/amd64/include/elf.h
@@ -42,6 +42,7 @@
#include <sys/elf_generic.h>
#define ELF_ARCH EM_X86_64
+#define ELF_ARCH32 EM_386
#define ELF_MACHINE_OK(x) ((x) == EM_X86_64)
diff --git a/sys/amd64/include/reg.h b/sys/amd64/include/reg.h
index 89211a32651b..4a839181882e 100644
--- a/sys/amd64/include/reg.h
+++ b/sys/amd64/include/reg.h
@@ -37,6 +37,10 @@
#ifndef _MACHINE_REG_H_
#define _MACHINE_REG_H_
+#if defined(_KERNEL) && !defined(_STANDALONE)
+#include "opt_compat.h"
+#endif
+
/*
* Register set accessible via /proc/$pid/regs and PT_{SET,GET}REGS.
*/
@@ -116,6 +120,11 @@ struct dbreg {
#define DBREG_DRX(d,x) ((d)->dr[(x)]) /* reference dr0 - dr15 by
register number */
+#ifdef COMPAT_FREEBSD32
+#include <machine/fpu.h>
+#include <compat/ia32/ia32_reg.h>
+#endif
+
#ifdef _KERNEL
/*
* XXX these interfaces are MI, so they should be declared in a MI place.