| /* SPDX-License-Identifier: GPL-2.0 */ | 
 | /* | 
 |  * Written by Kanoj Sarcar (kanoj@sgi.com) Aug 99 | 
 |  * | 
 |  * PowerPC64 port: | 
 |  * Copyright (C) 2002 Anton Blanchard, IBM Corp. | 
 |  */ | 
 | #ifndef _ASM_MMZONE_H_ | 
 | #define _ASM_MMZONE_H_ | 
 | #ifdef __KERNEL__ | 
 |  | 
 | #include <linux/cpumask.h> | 
 |  | 
 | /* | 
 |  * generic non-linear memory support: | 
 |  * | 
 |  * 1) we will not split memory into more chunks than will fit into the | 
 |  *    flags field of the struct page | 
 |  */ | 
 |  | 
 | #ifdef CONFIG_NUMA | 
 |  | 
 | extern struct pglist_data *node_data[]; | 
 | /* | 
 |  * Return a pointer to the node data for node n. | 
 |  */ | 
 | #define NODE_DATA(nid)		(node_data[nid]) | 
 |  | 
 | /* | 
 |  * Following are specific to this numa platform. | 
 |  */ | 
 |  | 
 | extern int numa_cpu_lookup_table[]; | 
 | extern cpumask_var_t node_to_cpumask_map[]; | 
 | #ifdef CONFIG_MEMORY_HOTPLUG | 
 | extern unsigned long max_pfn; | 
 | u64 memory_hotplug_max(void); | 
 | #else | 
 | #define memory_hotplug_max() memblock_end_of_DRAM() | 
 | #endif | 
 |  | 
 | #else | 
 | #define memory_hotplug_max() memblock_end_of_DRAM() | 
 | #endif /* CONFIG_NUMA */ | 
 | #ifdef CONFIG_FA_DUMP | 
 | #define __HAVE_ARCH_RESERVED_KERNEL_PAGES | 
 | #endif | 
 |  | 
 | #ifdef CONFIG_MEMORY_HOTPLUG | 
 | extern int create_section_mapping(unsigned long start, unsigned long end, | 
 | 				  int nid, pgprot_t prot); | 
 | #endif | 
 |  | 
 | #endif /* __KERNEL__ */ | 
 | #endif /* _ASM_MMZONE_H_ */ |