| 1 |
|
| 2 | #ifndef __ALPHA_MACHVEC_H
|
| 3 | #define __ALPHA_MACHVEC_H 1
|
| 4 |
|
| 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 | |
| 15 | from the generic kernel to the hardware specific backend.
|
| 16 |
|
| 17 | struct task_struct;
|
| 18 | struct mm_struct;
|
| 19 | struct vm_area_struct;
|
| 20 | struct linux_hose_info;
|
| 21 | struct pci_dev;
|
| 22 | struct pci_ops;
|
| 23 | struct pci_controller;
|
| 24 | struct _alpha_agp_info;
|
| 25 | struct rtc_time;
|
| 26 |
|
| 27 | struct alpha_machine_vector
|
| 28 | {
|
| 29 | |
| 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 | int rtc_boot_cpu_only;
|
| 38 | unsigned int max_asn;
|
| 39 | unsigned long max_isa_dma_address;
|
| 40 | unsigned long irq_probe_mask;
|
| 41 | unsigned long iack_sc;
|
| 42 | unsigned long min_io_address;
|
| 43 | unsigned long min_mem_address;
|
| 44 | unsigned long pci_dac_offset;
|
| 45 |
|
| 46 | void (*mv_pci_tbi)(struct pci_controller *hose,
|
| 47 | dma_addr_t start, dma_addr_t end);
|
| 48 |
|
| 49 | u8 (*mv_ioread8)(const void __iomem *);
|
| 50 | u16 (*mv_ioread16)(const void __iomem *);
|
| 51 | u32 (*mv_ioread32)(const void __iomem *);
|
| 52 | u64 (*mv_ioread64)(const void __iomem *);
|
| 53 |
|
| 54 | void (*mv_iowrite8)(u8, void __iomem *);
|
| 55 | void (*mv_iowrite16)(u16, void __iomem *);
|
| 56 | void (*mv_iowrite32)(u32, void __iomem *);
|
| 57 | void (*mv_iowrite64)(u64, void __iomem *);
|
| 58 |
|
| 59 | u8 (*mv_readb)(const volatile void __iomem *);
|
| 60 | u16 (*mv_readw)(const volatile void __iomem *);
|
| 61 | u32 (*mv_readl)(const volatile void __iomem *);
|
| 62 | u64 (*mv_readq)(const volatile void __iomem *);
|
| 63 |
|
| 64 | void (*mv_writeb)(u8, volatile void __iomem *);
|
| 65 | void (*mv_writew)(u16, volatile void __iomem *);
|
| 66 | void (*mv_writel)(u32, volatile void __iomem *);
|
| 67 | void (*mv_writeq)(u64, volatile void __iomem *);
|
| 68 |
|
| 69 | void __iomem *(*mv_ioportmap)(unsigned long);
|
| 70 | void __iomem *(*mv_ioremap)(unsigned long, unsigned long);
|
| 71 | void (*mv_iounmap)(volatile void __iomem *);
|
| 72 | int (*mv_is_ioaddr)(unsigned long);
|
| 73 | int (*mv_is_mmio)(const volatile void __iomem *);
|
| 74 |
|
| 75 | void (*update_irq_hw)(unsigned long, unsigned long, int);
|
| 76 | void (*ack_irq)(unsigned long);
|
| 77 | void (*device_interrupt)(unsigned long vector);
|
| 78 | void (*machine_check)(unsigned long vector, unsigned long la);
|
| 79 |
|
| 80 | void (*smp_callin)(void);
|
| 81 | void (*init_arch)(void);
|
| 82 | void (*init_irq)(void);
|
| 83 | void (*init_rtc)(void);
|
| 84 | void (*init_pci)(void);
|
| 85 | void (*kill_arch)(int);
|
| 86 |
|
| 87 | u8 (*pci_swizzle)(struct pci_dev *, u8 *);
|
| 88 | int (*pci_map_irq)(const struct pci_dev *, u8, u8);
|
| 89 | struct pci_ops *pci_ops;
|
| 90 |
|
| 91 | struct _alpha_agp_info *(*agp_info)(void);
|
| 92 |
|
| 93 | const char *vector_name;
|
| 94 |
|
| 95 |
|
| 96 | union {
|
| 97 | struct {
|
| 98 | unsigned long gru_int_req_bits;
|
| 99 | } cia;
|
| 100 |
|
| 101 | struct {
|
| 102 | unsigned long gamma_bias;
|
| 103 | } t2;
|
| 104 |
|
| 105 | struct {
|
| 106 | unsigned int route_tab;
|
| 107 | } sio;
|
| 108 | } sys;
|
| 109 | };
|
| 110 |
|
| 111 | extern struct alpha_machine_vector alpha_mv;
|
| 112 |
|
| 113 | #ifdef CONFIG_ALPHA_GENERIC
|
| 114 | extern int alpha_using_srm;
|
| 115 | extern int alpha_using_qemu;
|
| 116 | #else
|
| 117 | # ifdef CONFIG_ALPHA_SRM
|
| 118 | # define alpha_using_srm 1
|
| 119 | # else
|
| 120 | # define alpha_using_srm 0
|
| 121 | # endif
|
| 122 | # ifdef CONFIG_ALPHA_QEMU
|
| 123 | # define alpha_using_qemu 1
|
| 124 | # else
|
| 125 | # define alpha_using_qemu 0
|
| 126 | # endif
|
| 127 | #endif
|
| 128 |
|
| 129 | #endif
|
| 130 | #endif
|