~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/alpha/include/asm/machvec.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  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 /* 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 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         /* 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         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         /* System specific parameters.  */
 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 /* GENERIC */
128 
129 #endif /* __KERNEL__ */
130 #endif /* __ALPHA_MACHVEC_H */
131 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php