Linux 4.13.16
[linux/fpc-iii.git] / arch / powerpc / include / asm / sparsemem.h
blobc88930c9db7fb1e07a7d7ad06c11db3fe00ad753
1 #ifndef _ASM_POWERPC_SPARSEMEM_H
2 #define _ASM_POWERPC_SPARSEMEM_H 1
3 #ifdef __KERNEL__
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
11 #define SECTION_SIZE_BITS 24
13 #define MAX_PHYSADDR_BITS 46
14 #define MAX_PHYSMEM_BITS 46
16 #endif /* CONFIG_SPARSEMEM */
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);
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
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)
33 return 0;
35 #endif /* CONFIG_NUMA */
36 #endif /* CONFIG_MEMORY_HOTPLUG */
38 #endif /* __KERNEL__ */
39 #endif /* _ASM_POWERPC_SPARSEMEM_H */