1#ifndef __ASM_METAG_MMZONE_H
2#define __ASM_METAG_MMZONE_H
3
4#ifdef CONFIG_NEED_MULTIPLE_NODES
5#include <linux/numa.h>
6
7extern struct pglist_data *node_data[];
8#define NODE_DATA(nid)		(node_data[nid])
9
10static inline int pfn_to_nid(unsigned long pfn)
11{
12	int nid;
13
14	for (nid = 0; nid < MAX_NUMNODES; nid++)
15		if (pfn >= node_start_pfn(nid) && pfn <= node_end_pfn(nid))
16			break;
17
18	return nid;
19}
20
21static inline struct pglist_data *pfn_to_pgdat(unsigned long pfn)
22{
23	return NODE_DATA(pfn_to_nid(pfn));
24}
25
26/* arch/metag/mm/numa.c */
27void __init setup_bootmem_node(int nid, unsigned long start, unsigned long end);
28#else
29static inline void
30setup_bootmem_node(int nid, unsigned long start, unsigned long end)
31{
32}
33#endif /* CONFIG_NEED_MULTIPLE_NODES */
34
35#ifdef CONFIG_NUMA
36/* SoC specific mem init */
37void __init soc_mem_setup(void);
38#else
39static inline void __init soc_mem_setup(void) {};
40#endif
41
42#endif /* __ASM_METAG_MMZONE_H */
43