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