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
23extern 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
33extern int numa_cpu_lookup_table[];
34extern cpumask_var_t node_to_cpumask_map[];
35#ifdef CONFIG_MEMORY_HOTPLUG
36extern unsigned long max_pfn;
37u64 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
46#ifdef CONFIG_MEMORY_HOTPLUG
47extern int create_section_mapping(unsigned long start, unsigned long end,
48				  int nid, pgprot_t prot);
49#endif
50
51#endif /* __KERNEL__ */
52#endif /* _ASM_MMZONE_H_ */
53