2 * include/asm-sh/machvec.h
4 * Copyright 2000 Stuart Menefy (stuart.menefy@st.com)
6 * May be copied or modified under the terms of the GNU General Public
7 * License. See linux/COPYING for more information.
10 #ifndef _ASM_SH_MACHVEC_H
11 #define _ASM_SH_MACHVEC_H
13 #include <linux/types.h>
14 #include <linux/time.h>
15 #include <asm/machtypes.h>
19 struct sh_machine_vector
{
20 void (*mv_setup
)(char **cmdline_p
);
24 u8 (*mv_inb
)(unsigned long);
25 u16 (*mv_inw
)(unsigned long);
26 u32 (*mv_inl
)(unsigned long);
27 void (*mv_outb
)(u8
, unsigned long);
28 void (*mv_outw
)(u16
, unsigned long);
29 void (*mv_outl
)(u32
, unsigned long);
31 u8 (*mv_inb_p
)(unsigned long);
32 u16 (*mv_inw_p
)(unsigned long);
33 u32 (*mv_inl_p
)(unsigned long);
34 void (*mv_outb_p
)(u8
, unsigned long);
35 void (*mv_outw_p
)(u16
, unsigned long);
36 void (*mv_outl_p
)(u32
, unsigned long);
38 void (*mv_insb
)(unsigned long, void *dst
, unsigned long count
);
39 void (*mv_insw
)(unsigned long, void *dst
, unsigned long count
);
40 void (*mv_insl
)(unsigned long, void *dst
, unsigned long count
);
41 void (*mv_outsb
)(unsigned long, const void *src
, unsigned long count
);
42 void (*mv_outsw
)(unsigned long, const void *src
, unsigned long count
);
43 void (*mv_outsl
)(unsigned long, const void *src
, unsigned long count
);
45 u8 (*mv_readb
)(void __iomem
*);
46 u16 (*mv_readw
)(void __iomem
*);
47 u32 (*mv_readl
)(void __iomem
*);
48 void (*mv_writeb
)(u8
, void __iomem
*);
49 void (*mv_writew
)(u16
, void __iomem
*);
50 void (*mv_writel
)(u32
, void __iomem
*);
52 int (*mv_irq_demux
)(int irq
);
54 void (*mv_init_irq
)(void);
55 void (*mv_init_pci
)(void);
57 void (*mv_heartbeat
)(void);
59 void __iomem
*(*mv_ioport_map
)(unsigned long port
, unsigned int size
);
60 void (*mv_ioport_unmap
)(void __iomem
*);
63 extern struct sh_machine_vector sh_mv
;
65 #define get_system_type() sh_mv.mv_name
68 __used __section(.machvec.init)
70 #endif /* _ASM_SH_MACHVEC_H */