blob: c88930c9db7fb1e07a7d7ad06c11db3fe00ad753 [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
Aneesh Kumar K.V048ee092012-09-10 02:52:55 +000013#define MAX_PHYSADDR_BITS 46
14#define MAX_PHYSMEM_BITS 46
Andy Whitcroft145e6642005-06-23 00:08:03 -070015
Tony Breedsdb7f37d2008-07-01 11:30:06 +100016#endif /* CONFIG_SPARSEMEM */
17
Mike Kravetz54b79242005-11-07 16:25:48 -080018#ifdef CONFIG_MEMORY_HOTPLUG
Anton Blancharda1194092011-08-10 20:44:24 +000019extern int create_section_mapping(unsigned long start, unsigned long end);
Badari Pulavarty52db9b42008-03-28 11:37:21 +110020extern int remove_section_mapping(unsigned long start, unsigned long end);
Michael Ellerman36b390f2017-02-15 19:54:55 +110021
22#ifdef CONFIG_PPC_BOOK3S_64
23extern void resize_hpt_for_hotplug(unsigned long new_mem_size);
24#else
25static inline void resize_hpt_for_hotplug(unsigned long new_mem_size) { }
26#endif
27
Mike Kravetz237a09892005-12-05 12:06:42 -080028#ifdef CONFIG_NUMA
29extern int hot_add_scn_to_nid(unsigned long scn_addr);
30#else
31static inline int hot_add_scn_to_nid(unsigned long scn_addr)
32{
33 return 0;
34}
35#endif /* CONFIG_NUMA */
Mike Kravetz54b79242005-11-07 16:25:48 -080036#endif /* CONFIG_MEMORY_HOTPLUG */
37
Arnd Bergmann88ced032005-12-16 22:43:46 +010038#endif /* __KERNEL__ */
David Gibson1fc8b4e2005-11-02 14:48:36 +110039#endif /* _ASM_POWERPC_SPARSEMEM_H */