1 /*
2 * include/asm-sh/machvec.h
3 *
4 * Copyright 2000 Stuart Menefy (stuart.menefy@st.com)
5 *
6 * May be copied or modified under the terms of the GNU General Public
7 * License. See linux/COPYING for more information.
8 */
9
10 #ifndef _ASM_SH_MACHVEC_H
11 #define _ASM_SH_MACHVEC_H 1
12
13 #include <linux/config.h>
14 #include <linux/types.h>
15
16 struct sh_machine_vector
17 {
18 const char *mv_name;
19
20 int mv_nr_irqs;
21
22 unsigned long (*mv_inb)(unsigned int);
23 unsigned long (*mv_inw)(unsigned int);
24 unsigned long (*mv_inl)(unsigned int);
25 void (*mv_outb)(unsigned long, unsigned int);
26 void (*mv_outw)(unsigned long, unsigned int);
27 void (*mv_outl)(unsigned long, unsigned int);
28
29 unsigned long (*mv_inb_p)(unsigned int);
30 unsigned long (*mv_inw_p)(unsigned int);
31 unsigned long (*mv_inl_p)(unsigned int);
32 void (*mv_outb_p)(unsigned long, unsigned int);
33 void (*mv_outw_p)(unsigned long, unsigned int);
34 void (*mv_outl_p)(unsigned long, unsigned int);
35
36 void (*mv_insb)(unsigned int port, void *addr, unsigned long count);
37 void (*mv_insw)(unsigned int port, void *addr, unsigned long count);
38 void (*mv_insl)(unsigned int port, void *addr, unsigned long count);
39 void (*mv_outsb)(unsigned int port, const void *addr, unsigned long count);
40 void (*mv_outsw)(unsigned int port, const void *addr, unsigned long count);
41 void (*mv_outsl)(unsigned int port, const void *addr, unsigned long count);
42
43 unsigned long (*mv_readb)(unsigned long);
44 unsigned long (*mv_readw)(unsigned long);
45 unsigned long (*mv_readl)(unsigned long);
46 void (*mv_writeb)(unsigned char, unsigned long);
47 void (*mv_writew)(unsigned short, unsigned long);
48 void (*mv_writel)(unsigned int, unsigned long);
49
50 void* (*mv_ioremap)(unsigned long offset, unsigned long size);
51 void* (*mv_ioremap_nocache)(unsigned long offset, unsigned long size);
52 void (*mv_iounmap)(void *addr);
53
54 unsigned long (*mv_port2addr)(unsigned long offset);
55 unsigned long (*mv_isa_port2addr)(unsigned long offset);
56
57 int (*mv_irq_demux)(int irq);
58
59 void (*mv_init_arch)(void);
60 void (*mv_init_irq)(void);
61 void (*mv_init_pci)(void);
62 void (*mv_kill_arch)(int);
63
64 void (*mv_heartbeat)(void);
65
66 unsigned int mv_hw_se : 1;
67 unsigned int mv_hw_hp600 : 1;
68 unsigned int mv_hw_hd64461 : 1;
69 };
70
71 extern struct sh_machine_vector sh_mv;
72
73 /* Machine check macros */
74 #ifdef CONFIG_SH_GENERIC
75 #define MACH_SE (sh_mv.mv_hw_se)
76 #define MACH_HP600 (sh_mv.mv_hw_hp600)
77 #define MACH_HD64461 (sh_mv.mv_hw_hd64461)
78 #else
79 # ifdef CONFIG_SH_SOLUTION_ENGINE
80 # define MACH_SE 1
81 # else
82 # define MACH_SE 0
83 # endif
84 # ifdef CONFIG_SH_HP600
85 # define MACH_HP600 1
86 # else
87 # define MACH_HP600 0
88 # endif
89 # ifdef CONFIG_HD64461
90 # define MACH_HD64461 1
91 # else
92 # define MACH_HD64461 0
93 # endif
94 #endif
95
96 #endif /* _ASM_SH_MACHVEC_H */
97
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.