summaryrefslogtreecommitdiffstats
path: root/include/asm-i386/sparsemem.h
diff options
context:
space:
mode:
authorAndy Whitcroft <apw@shadowen.org>2005-06-23 00:07:57 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-23 09:45:05 -0700
commit05b79bdcb48c18cd9b580c39e3efb9a1ab078151 (patch)
tree1767aaa7a4621ff4cf1a85c2078229de54272f30 /include/asm-i386/sparsemem.h
parentd41dee369bff3b9dcb6328d4d822926c28cc2594 (diff)
downloadlinux-05b79bdcb48c18cd9b580c39e3efb9a1ab078151.tar.gz
linux-05b79bdcb48c18cd9b580c39e3efb9a1ab078151.tar.bz2
linux-05b79bdcb48c18cd9b580c39e3efb9a1ab078151.zip
[PATCH] sparsemem memory model for i386
Provide the architecture specific implementation for SPARSEMEM for i386 SMP and NUMA systems. Signed-off-by: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Dave Hansen <haveblue@us.ibm.com> Signed-off-by: Martin Bligh <mbligh@aracnet.com> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-i386/sparsemem.h')
-rw-r--r--include/asm-i386/sparsemem.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/include/asm-i386/sparsemem.h b/include/asm-i386/sparsemem.h
new file mode 100644
index 000000000000..cfeed990585f
--- /dev/null
+++ b/include/asm-i386/sparsemem.h
@@ -0,0 +1,31 @@
+#ifndef _I386_SPARSEMEM_H
+#define _I386_SPARSEMEM_H
+#ifdef CONFIG_SPARSEMEM
+
+/*
+ * generic non-linear memory support:
+ *
+ * 1) we will not split memory into more chunks than will fit into the
+ * flags field of the struct page
+ */
+
+/*
+ * SECTION_SIZE_BITS 2^N: how big each section will be
+ * MAX_PHYSADDR_BITS 2^N: how much physical address space we have
+ * MAX_PHYSMEM_BITS 2^N: how much memory we can have in that space
+ */
+#ifdef CONFIG_X86_PAE
+#define SECTION_SIZE_BITS 30
+#define MAX_PHYSADDR_BITS 36
+#define MAX_PHYSMEM_BITS 36
+#else
+#define SECTION_SIZE_BITS 26
+#define MAX_PHYSADDR_BITS 32
+#define MAX_PHYSMEM_BITS 32
+#endif
+
+/* XXX: FIXME -- wli */
+#define kern_addr_valid(kaddr) (0)
+
+#endif /* CONFIG_SPARSEMEM */
+#endif /* _I386_SPARSEMEM_H */