ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / asm-mips / sn / hub.h
1 #ifndef __ASM_SN_HUB_H
2 #define __ASM_SN_HUB_H
3
4 #include <linux/types.h>
5 #include <linux/cpumask.h>
6 #include <asm/sn/types.h>
7 #include <asm/sn/io.h>
8 #include <asm/sn/klkernvars.h>
9 #include <asm/xtalk/xtalk.h>
10
11 #define LEVELS_PER_SLICE        128
12
13 struct slice_data {
14         unsigned long irq_alloc_mask[2];
15         unsigned long irq_enable_mask[2];
16         int level_to_irq[LEVELS_PER_SLICE];
17 };
18
19 struct hub_data {
20         kern_vars_t     kern_vars;
21         DECLARE_BITMAP  (h_bigwin_used, HUB_NUM_BIG_WINDOW);
22         cpumask_t       h_cpus;
23         unsigned long slice_map;
24         struct slice_data slice[2];
25 };
26
27 extern struct hub_data *hub_data[];
28 #define HUB_DATA(n)             (hub_data[(n)])
29
30 /* ip27-hubio.c */
31 extern unsigned long hub_pio_map(cnodeid_t cnode, xwidgetnum_t widget,
32                           unsigned long xtalk_addr, size_t size);
33 extern void hub_pio_init(cnodeid_t cnode);
34
35 #endif /* __ASM_SN_HUB_H */