1 #ifndef _ASM_POWERPC_SPARSEMEM_H 2 #define _ASM_POWERPC_SPARSEMEM_H 1 3 #ifdef __KERNEL__ 4 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 12 13 #define MAX_PHYSADDR_BITS 46 14 #define MAX_PHYSMEM_BITS 46 15 16 #endif /* CONFIG_SPARSEMEM */ 17 18 #ifdef CONFIG_MEMORY_HOTPLUG 19 extern int create_section_mapping(unsigned long start, unsigned long end); 20 extern int remove_section_mapping(unsigned long start, unsigned long end); 21 22 #ifdef CONFIG_PPC_BOOK3S_64 23 extern void resize_hpt_for_hotplug(unsigned long new_mem_size); 24 #else 25 static inline void resize_hpt_for_hotplug(unsigned long new_mem_size) { } 26 #endif 27 28 #ifdef CONFIG_NUMA 29 extern int hot_add_scn_to_nid(unsigned long scn_addr); 30 #else 31 static inline int hot_add_scn_to_nid(unsigned long scn_addr) 32 { 33 return 0; 34 } 35 #endif /* CONFIG_NUMA */ 36 #endif /* CONFIG_MEMORY_HOTPLUG */ 37 38 #endif /* __KERNEL__ */ 39 #endif /* _ASM_POWERPC_SPARSEMEM_H */ 40