Linux-2.6.12-rc2
[safe/jmp/linux-2.6] / include / asm-mips / mach-ip27 / mmzone.h
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_alloc_mask[2];
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         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 */