1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Written by Kanoj Sarcar (kanoj@sgi.com) Aug 99
4  *
5  * PowerPC64 port:
6  * Copyright (C) 2002 Anton Blanchard, IBM Corp.
7  */
8 #ifndef _ASM_MMZONE_H_
9 #define _ASM_MMZONE_H_
10 #ifdef __KERNEL__
11 
12 #include <linux/cpumask.h>
13 
14 /*
15  * generic non-linear memory support:
16  *
17  * 1) we will not split memory into more chunks than will fit into the
18  *    flags field of the struct page
19  */
20 
21 #ifdef CONFIG_NUMA
22 
23 extern struct pglist_data *node_data[];
24 /*
25  * Return a pointer to the node data for node n.
26  */
27 #define NODE_DATA(nid)		(node_data[nid])
28 
29 /*
30  * Following are specific to this numa platform.
31  */
32 
33 extern int numa_cpu_lookup_table[];
34 extern cpumask_var_t node_to_cpumask_map[];
35 #ifdef CONFIG_MEMORY_HOTPLUG
36 extern unsigned long max_pfn;
37 u64 memory_hotplug_max(void);
38 #else
39 #define memory_hotplug_max() memblock_end_of_DRAM()
40 #endif
41 
42 #else
43 #define memory_hotplug_max() memblock_end_of_DRAM()
44 #endif /* CONFIG_NUMA */
45 #ifdef CONFIG_FA_DUMP
46 #define __HAVE_ARCH_RESERVED_KERNEL_PAGES
47 #endif
48 
49 #ifdef CONFIG_MEMORY_HOTPLUG
50 extern int create_section_mapping(unsigned long start, unsigned long end,
51 				  int nid, pgprot_t prot);
52 #endif
53 
54 #endif /* __KERNEL__ */
55 #endif /* _ASM_MMZONE_H_ */
56