diff options
Diffstat (limited to 'include/asm-alpha/machvec.h')
-rw-r--r-- | include/asm-alpha/machvec.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/include/asm-alpha/machvec.h b/include/asm-alpha/machvec.h new file mode 100644 index 000000000000..ece166a203ec --- /dev/null +++ b/include/asm-alpha/machvec.h | |||
@@ -0,0 +1,136 @@ | |||
1 | #ifndef __ALPHA_MACHVEC_H | ||
2 | #define __ALPHA_MACHVEC_H 1 | ||
3 | |||
4 | #include <linux/config.h> | ||
5 | #include <linux/types.h> | ||
6 | |||
7 | /* | ||
8 | * This file gets pulled in by asm/io.h from user space. We don't | ||
9 | * want most of this escaping. | ||
10 | */ | ||
11 | |||
12 | #ifdef __KERNEL__ | ||
13 | |||
14 | /* The following structure vectors all of the I/O and IRQ manipulation | ||
15 | from the generic kernel to the hardware specific backend. */ | ||
16 | |||
17 | struct task_struct; | ||
18 | struct mm_struct; | ||
19 | struct pt_regs; | ||
20 | struct vm_area_struct; | ||
21 | struct linux_hose_info; | ||
22 | struct pci_dev; | ||
23 | struct pci_ops; | ||
24 | struct pci_controller; | ||
25 | struct _alpha_agp_info; | ||
26 | |||
27 | struct alpha_machine_vector | ||
28 | { | ||
29 | /* This "belongs" down below with the rest of the runtime | ||
30 | variables, but it is convenient for entry.S if these | ||
31 | two slots are at the beginning of the struct. */ | ||
32 | unsigned long hae_cache; | ||
33 | unsigned long *hae_register; | ||
34 | |||
35 | int nr_irqs; | ||
36 | int rtc_port; | ||
37 | unsigned int max_asn; | ||
38 | unsigned long max_isa_dma_address; | ||
39 | unsigned long irq_probe_mask; | ||
40 | unsigned long iack_sc; | ||
41 | unsigned long min_io_address; | ||
42 | unsigned long min_mem_address; | ||
43 | unsigned long pci_dac_offset; | ||
44 | |||
45 | void (*mv_pci_tbi)(struct pci_controller *hose, | ||
46 | dma_addr_t start, dma_addr_t end); | ||
47 | |||
48 | unsigned int (*mv_ioread8)(void __iomem *); | ||
49 | unsigned int (*mv_ioread16)(void __iomem *); | ||
50 | unsigned int (*mv_ioread32)(void __iomem *); | ||
51 | |||
52 | void (*mv_iowrite8)(u8, void __iomem *); | ||
53 | void (*mv_iowrite16)(u16, void __iomem *); | ||
54 | void (*mv_iowrite32)(u32, void __iomem *); | ||
55 | |||
56 | u8 (*mv_readb)(const volatile void __iomem *); | ||
57 | u16 (*mv_readw)(const volatile void __iomem *); | ||
58 | u32 (*mv_readl)(const volatile void __iomem *); | ||
59 | u64 (*mv_readq)(const volatile void __iomem *); | ||
60 | |||
61 | void (*mv_writeb)(u8, volatile void __iomem *); | ||
62 | void (*mv_writew)(u16, volatile void __iomem *); | ||
63 | void (*mv_writel)(u32, volatile void __iomem *); | ||
64 | void (*mv_writeq)(u64, volatile void __iomem *); | ||
65 | |||
66 | void __iomem *(*mv_ioportmap)(unsigned long); | ||
67 | void __iomem *(*mv_ioremap)(unsigned long, unsigned long); | ||
68 | void (*mv_iounmap)(volatile void __iomem *); | ||
69 | int (*mv_is_ioaddr)(unsigned long); | ||
70 | int (*mv_is_mmio)(const volatile void __iomem *); | ||
71 | |||
72 | void (*mv_switch_mm)(struct mm_struct *, struct mm_struct *, | ||
73 | struct task_struct *); | ||
74 | void (*mv_activate_mm)(struct mm_struct *, struct mm_struct *); | ||
75 | |||
76 | void (*mv_flush_tlb_current)(struct mm_struct *); | ||
77 | void (*mv_flush_tlb_current_page)(struct mm_struct * mm, | ||
78 | struct vm_area_struct *vma, | ||
79 | unsigned long addr); | ||
80 | |||
81 | void (*update_irq_hw)(unsigned long, unsigned long, int); | ||
82 | void (*ack_irq)(unsigned long); | ||
83 | void (*device_interrupt)(unsigned long vector, struct pt_regs *regs); | ||
84 | void (*machine_check)(u64 vector, u64 la, struct pt_regs *regs); | ||
85 | |||
86 | void (*smp_callin)(void); | ||
87 | void (*init_arch)(void); | ||
88 | void (*init_irq)(void); | ||
89 | void (*init_rtc)(void); | ||
90 | void (*init_pci)(void); | ||
91 | void (*kill_arch)(int); | ||
92 | |||
93 | u8 (*pci_swizzle)(struct pci_dev *, u8 *); | ||
94 | int (*pci_map_irq)(struct pci_dev *, u8, u8); | ||
95 | struct pci_ops *pci_ops; | ||
96 | |||
97 | struct _alpha_agp_info *(*agp_info)(void); | ||
98 | |||
99 | const char *vector_name; | ||
100 | |||
101 | /* NUMA information */ | ||
102 | int (*pa_to_nid)(unsigned long); | ||
103 | int (*cpuid_to_nid)(int); | ||
104 | unsigned long (*node_mem_start)(int); | ||
105 | unsigned long (*node_mem_size)(int); | ||
106 | |||
107 | /* System specific parameters. */ | ||
108 | union { | ||
109 | struct { | ||
110 | unsigned long gru_int_req_bits; | ||
111 | } cia; | ||
112 | |||
113 | struct { | ||
114 | unsigned long gamma_bias; | ||
115 | } t2; | ||
116 | |||
117 | struct { | ||
118 | unsigned int route_tab; | ||
119 | } sio; | ||
120 | } sys; | ||
121 | }; | ||
122 | |||
123 | extern struct alpha_machine_vector alpha_mv; | ||
124 | |||
125 | #ifdef CONFIG_ALPHA_GENERIC | ||
126 | extern int alpha_using_srm; | ||
127 | #else | ||
128 | #ifdef CONFIG_ALPHA_SRM | ||
129 | #define alpha_using_srm 1 | ||
130 | #else | ||
131 | #define alpha_using_srm 0 | ||
132 | #endif | ||
133 | #endif /* GENERIC */ | ||
134 | |||
135 | #endif | ||
136 | #endif /* __ALPHA_MACHVEC_H */ | ||