blob: 48ad807a0b8a80ce49788e49935d081585166009 [file] [log] [blame]
David Gibson1fc8b4e2005-11-02 14:48:36 +11001#ifndef _ASM_POWERPC_SPARSEMEM_H
2#define _ASM_POWERPC_SPARSEMEM_H 1
Arnd Bergmann88ced032005-12-16 22:43:46 +01003#ifdef __KERNEL__
Andy Whitcroft145e6642005-06-23 00:08:03 -07004
5#ifdef CONFIG_SPARSEMEM
6/*
7 * SECTION_SIZE_BITS 2^N: how big each section will be
8 * MAX_PHYSADDR_BITS 2^N: how much physical address space we have
9 * MAX_PHYSMEM_BITS 2^N: how much memory we can have in that space
10 */
11#define SECTION_SIZE_BITS 24
Geoff Levand261efc32006-11-23 00:46:57 +010012
13#if defined(CONFIG_PS3_USE_LPAR_ADDR)
14#define MAX_PHYSADDR_BITS 47
15#define MAX_PHYSMEM_BITS 47
16#else
Anton Blancharda7df61a2005-11-11 15:02:03 +110017#define MAX_PHYSADDR_BITS 44
18#define MAX_PHYSMEM_BITS 44
Geoff Levand261efc32006-11-23 00:46:57 +010019#endif
Andy Whitcroft145e6642005-06-23 00:08:03 -070020
Mike Kravetz54b79242005-11-07 16:25:48 -080021#ifdef CONFIG_MEMORY_HOTPLUG
22extern void create_section_mapping(unsigned long start, unsigned long end);
Mike Kravetz237a0982005-12-05 12:06:42 -080023#ifdef CONFIG_NUMA
24extern int hot_add_scn_to_nid(unsigned long scn_addr);
25#else
26static inline int hot_add_scn_to_nid(unsigned long scn_addr)
27{
28 return 0;
29}
30#endif /* CONFIG_NUMA */
Mike Kravetz54b79242005-11-07 16:25:48 -080031#endif /* CONFIG_MEMORY_HOTPLUG */
32
Andy Whitcroft145e6642005-06-23 00:08:03 -070033#endif /* CONFIG_SPARSEMEM */
34
Arnd Bergmann88ced032005-12-16 22:43:46 +010035#endif /* __KERNEL__ */
David Gibson1fc8b4e2005-11-02 14:48:36 +110036#endif /* _ASM_POWERPC_SPARSEMEM_H */