[patch 4/4] x86: e820 unification: Extract common functions

From: Christoph Lameter
Date: Mon May 05 2008 - 15:04:18 EST


Extract the common functions to the common area. The parameters of
e820_any_mapped vary between 32 and 64 bit. Convert them to unsigned long
for 32 bit so that they match.

Signed-off-by: Christoph Lameter <clameter@xxxxxxx>

---
arch/x86/kernel/e820_32.c | 2 +-
include/asm-x86/e820.h | 43 +++++++++++++++----------------------------
2 files changed, 16 insertions(+), 29 deletions(-)

Index: linux-2.6/include/asm-x86/e820.h
===================================================================
--- linux-2.6.orig/include/asm-x86/e820.h 2008-05-05 11:59:56.000000000 -0700
+++ linux-2.6/include/asm-x86/e820.h 2008-05-05 12:00:58.000000000 -0700
@@ -44,29 +44,17 @@ struct e820map {

#ifndef __ASSEMBLY__

-#ifdef CONFIG_X86_32
-#define HIGH_MEMORY (1024*1024)
-
-extern void setup_memory_map(void);
extern void finish_e820_parsing(void);
-
extern struct e820map e820;
extern void update_e820(void);
-
extern int e820_all_mapped(unsigned long start, unsigned long end,
unsigned type);
-extern int e820_any_mapped(u64 start, u64 end, unsigned type);
-extern void propagate_e820_map(void);
-extern void register_bootmem_low_pages(unsigned long max_low_pfn);
+extern int e820_any_mapped(unsigned long start, unsigned long end,
+ unsigned type);
extern void add_memory_region(unsigned long long start,
unsigned long long size, int type);
extern u64 update_memory_range(u64 start, u64 size, unsigned old_type,
unsigned new_type);
-extern void e820_register_memory(void);
-extern void limit_regions(unsigned long long size);
-extern void init_iomem_resources(struct resource *code_resource,
- struct resource *data_resource,
- struct resource *bss_resource);

#if defined(CONFIG_PM) && defined(CONFIG_HIBERNATION)
extern void e820_mark_nosave_regions(void);
@@ -76,25 +64,29 @@ static inline void e820_mark_nosave_regi
}
#endif

+#ifdef CONFIG_X86_32
+#define HIGH_MEMORY (1024*1024)
+
+extern void setup_memory_map(void);
+
+extern void propagate_e820_map(void);
+extern void register_bootmem_low_pages(unsigned long max_low_pfn);
+extern void e820_register_memory(void);
+extern void limit_regions(unsigned long long size);
+extern void init_iomem_resources(struct resource *code_resource,
+ struct resource *data_resource,
+ struct resource *bss_resource);
+
#else /* X86_32 */
extern unsigned long find_e820_area(unsigned long start, unsigned long end,
unsigned long size, unsigned long align);
extern unsigned long find_e820_area_size(unsigned long start,
unsigned long *sizep,
unsigned long align);
-extern void add_memory_region(unsigned long start, unsigned long size,
- int type);
-extern u64 update_memory_range(u64 start, u64 size, unsigned old_type,
- unsigned new_type);
extern void setup_memory_region(void);
extern void contig_e820_setup(void);
extern unsigned long e820_end_of_ram(void);
extern void e820_reserve_resources(void);
-extern void e820_mark_nosave_regions(void);
-extern int e820_any_mapped(unsigned long start, unsigned long end,
- unsigned type);
-extern int e820_all_mapped(unsigned long start, unsigned long end,
- unsigned type);
extern int e820_any_non_reserved(unsigned long start, unsigned long end);
extern int is_memory_any_valid(unsigned long start, unsigned long end);
extern int e820_all_non_reserved(unsigned long start, unsigned long end);
@@ -105,11 +97,6 @@ extern void e820_setup_gap(void);
extern void e820_register_active_regions(int nid, unsigned long start_pfn,
unsigned long end_pfn);

-extern void finish_e820_parsing(void);
-
-extern struct e820map e820;
-extern void update_e820(void);
-
extern void reserve_early(unsigned long start, unsigned long end, char *name);
extern void free_early(unsigned long start, unsigned long end);
extern void early_res_to_bootmem(unsigned long start, unsigned long end);
Index: linux-2.6/arch/x86/kernel/e820_32.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/e820_32.c 2008-04-23 12:07:32.000000000 -0700
+++ linux-2.6/arch/x86/kernel/e820_32.c 2008-05-05 12:00:01.000000000 -0700
@@ -645,7 +645,7 @@ void __init limit_regions(unsigned long
* with type.
*/
int
-e820_any_mapped(u64 start, u64 end, unsigned type)
+e820_any_mapped(unsigned long start,unsigned long end, unsigned type)
{
int i;
for (i = 0; i < e820.nr_map; i++) {

--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/