GNU Linux-libre 4.14.332-gnu1
[releases.git] / arch / mips / include / asm / mach-ip27 / mmzone.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ASM_MACH_MMZONE_H
3 #define _ASM_MACH_MMZONE_H
4
5 #include <asm/sn/addrs.h>
6 #include <asm/sn/arch.h>
7 #include <asm/sn/hub.h>
8
9 #define pa_to_nid(addr)         NASID_TO_COMPACT_NODEID(NASID_GET(addr))
10
11 #define LEVELS_PER_SLICE        128
12
13 struct slice_data {
14         unsigned long irq_enable_mask[2];
15         int level_to_irq[LEVELS_PER_SLICE];
16 };
17
18 struct hub_data {
19         kern_vars_t     kern_vars;
20         DECLARE_BITMAP(h_bigwin_used, HUB_NUM_BIG_WINDOW);
21         cpumask_t       h_cpus;
22         unsigned long slice_map;
23         unsigned long irq_alloc_mask[2];
24         struct slice_data slice[2];
25 };
26
27 struct node_data {
28         struct pglist_data pglist;
29         struct hub_data hub;
30 };
31
32 extern struct node_data *__node_data[];
33
34 #define NODE_DATA(n)            (&__node_data[(n)]->pglist)
35 #define hub_data(n)             (&__node_data[(n)]->hub)
36
37 #endif /* _ASM_MACH_MMZONE_H */