aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/types.h
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-05-31 15:39:28 +0000
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-05-31 15:39:28 +0000
commit88198ec1b0bd2094cbabd600baae1ebe3026e7ad (patch)
tree9791c2750f1f9561f652a8887c43e3ab95d16f2c /xen/include/asm-x86/types.h
parent59f83bdc8f5ba87cb8bd1235f42bd27c1fff39c0 (diff)
downloadxen-88198ec1b0bd2094cbabd600baae1ebe3026e7ad.tar.gz
xen-88198ec1b0bd2094cbabd600baae1ebe3026e7ad.tar.bz2
xen-88198ec1b0bd2094cbabd600baae1ebe3026e7ad.zip
bitkeeper revision 1.1615.1.1 (429c8530L_ZtVuxsQcKwKB3yPuljog)
Subject: PAE support This patch adds initial support for PAE paging to xen. This patch does: * boot Xen itself with PAE paging enabled. * add PAE support to the dom0 domain builder. Some notes on the design and the changes: * There are two new config options: CONFIG_X86_PAE (boolean, same name Linux uses to simply things) and CONFIG_PAGING_LEVELS (int, possible values are 2,3,4). I've used #if CONFIG_PAGING_LEVELS for stuff which simply depends on the number of paging levels in the code common for x86-32/64, and CONFIG_X86_PAE for special PAE quirks or i386-only stuff. I've tried to avoid ifdefs if possible though, often I rearranged code to make it work in both PAE and non-PAE case instead. * idle_pg_table: 3rd level is statically initialized, 2nd level is contignous in physical and virtual memory, so it can be addressed linear (the dom0 builder uses the same trick to simplify things a bit btw.). There are two new symbols: idle_pg_table_l3 and idle_pg_table_l2 for the two tables. idle_pg_table is aliased to the toplevel page table, i.e. idle_pg_table_l3 in PAE mode and idle_pg_table_l2 in non-pae mode. The idle l3 table is actually never ever touched after boot, the l2 table is accessed via idle_pg_table_l2 and addressed linear in both PAE and non-PAE mode. * I've added a "intpte_t" type and a PRIpte define, modeled after the C99 inttypes.h header, for page table entries. Signed-off-by: Gerd Knorr <kraxel@bytesex.org>
Diffstat (limited to 'xen/include/asm-x86/types.h')
-rw-r--r--xen/include/asm-x86/types.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/xen/include/asm-x86/types.h b/xen/include/asm-x86/types.h
index 9bb1f6ec85..5dd6c6c1af 100644
--- a/xen/include/asm-x86/types.h
+++ b/xen/include/asm-x86/types.h
@@ -44,11 +44,17 @@ typedef signed long long s64;
typedef unsigned long long u64;
#define BITS_PER_LONG 32
typedef unsigned int size_t;
+#if defined(CONFIG_X86_PAE)
+typedef u64 physaddr_t;
+#else
+typedef u32 physaddr_t;
+#endif
#elif defined(__x86_64__)
typedef signed long s64;
typedef unsigned long u64;
#define BITS_PER_LONG 64
typedef unsigned long size_t;
+typedef u64 physaddr_t;
#endif
/* DMA addresses come in generic and 64-bit flavours. */