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_NEED_MULTIPLE_NODES 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_NEED_MULTIPLE_NODES */ 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