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

Linux Cross Reference
Linux/include/asm-alpha/machvec.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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_controler;
 25 
 26 struct alpha_machine_vector
 27 {
 28         /* This "belongs" down below with the rest of the runtime
 29            variables, but it is convenient for entry.S if these 
 30            two slots are at the beginning of the struct.  */
 31         unsigned long hae_cache;
 32         unsigned long *hae_register;
 33 
 34         int nr_irqs;
 35         int rtc_port;
 36         int max_asn;
 37         unsigned long max_dma_address;
 38         unsigned long irq_probe_mask;
 39         unsigned long iack_sc;
 40         unsigned long min_io_address;
 41         unsigned long min_mem_address;
 42 
 43         void (*mv_pci_tbi)(struct pci_controler *hose,
 44                            dma_addr_t start, dma_addr_t end);
 45 
 46         unsigned int (*mv_inb)(unsigned long);
 47         unsigned int (*mv_inw)(unsigned long);
 48         unsigned int (*mv_inl)(unsigned long);
 49 
 50         void (*mv_outb)(unsigned char, unsigned long);
 51         void (*mv_outw)(unsigned short, unsigned long);
 52         void (*mv_outl)(unsigned int, unsigned long);
 53         
 54         unsigned long (*mv_readb)(unsigned long);
 55         unsigned long (*mv_readw)(unsigned long);
 56         unsigned long (*mv_readl)(unsigned long);
 57         unsigned long (*mv_readq)(unsigned long);
 58 
 59         void (*mv_writeb)(unsigned char, unsigned long);
 60         void (*mv_writew)(unsigned short, unsigned long);
 61         void (*mv_writel)(unsigned int, unsigned long);
 62         void (*mv_writeq)(unsigned long, unsigned long);
 63 
 64         unsigned long (*mv_ioremap)(unsigned long);
 65         int (*mv_is_ioaddr)(unsigned long);
 66 
 67         void (*mv_switch_mm)(struct mm_struct *, struct mm_struct *,
 68                              struct task_struct *, long);
 69         void (*mv_activate_mm)(struct mm_struct *, struct mm_struct *);
 70 
 71         void (*mv_flush_tlb_current)(struct mm_struct *);
 72         void (*mv_flush_tlb_current_page)(struct mm_struct * mm,
 73                                           struct vm_area_struct *vma,
 74                                           unsigned long addr);
 75 
 76         void (*update_irq_hw)(unsigned long, unsigned long, int);
 77         void (*ack_irq)(unsigned long);
 78         void (*device_interrupt)(unsigned long vector, struct pt_regs *regs);
 79         void (*machine_check)(u64 vector, u64 la, struct pt_regs *regs);
 80 
 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)(struct pci_dev *, u8, u8);
 89         struct pci_ops *pci_ops;
 90 
 91         const char *vector_name;
 92 
 93         /* System specific parameters.  */
 94         union {
 95             struct {
 96                 unsigned long gru_int_req_bits;
 97             } cia;
 98 
 99             struct {
100                 unsigned long gamma_bias;
101             } t2;
102 
103             struct {
104                 unsigned int route_tab;
105             } sio;
106         } sys;
107 };
108 
109 extern struct alpha_machine_vector alpha_mv;
110 
111 #ifdef CONFIG_ALPHA_GENERIC
112 extern int alpha_using_srm;
113 #else
114 #ifdef CONFIG_ALPHA_SRM
115 #define alpha_using_srm 1
116 #else
117 #define alpha_using_srm 0
118 #endif
119 #endif /* GENERIC */
120 
121 #endif
122 #endif /* __ALPHA_MACHVEC_H */
123 

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

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.