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