|
@@ -1,5 +1,34 @@
|
|
|
+#ifndef _ASM_X86_SPARSEMEM_H
|
|
|
+#define _ASM_X86_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: size of each section
|
|
|
+ * MAX_PHYSADDR_BITS 2^n: max size of physical address space
|
|
|
+ * MAX_PHYSMEM_BITS 2^n: how much memory we can have in that space
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
#ifdef CONFIG_X86_32
|
|
|
-# include "sparsemem_32.h"
|
|
|
-#else
|
|
|
-# include "sparsemem_64.h"
|
|
|
+# 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
|
|
|
+#else /* CONFIG_X86_32 */
|
|
|
+# define SECTION_SIZE_BITS 27 /* matt - 128 is convenient right now */
|
|
|
+# define MAX_PHYSADDR_BITS 40
|
|
|
+# define MAX_PHYSMEM_BITS 40
|
|
|
+#endif
|
|
|
+
|
|
|
+#endif /* CONFIG_SPARSEMEM */
|
|
|
#endif
|