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>
17 struct sh_machine_vector
{
18 void (*mv_setup
)(char **cmdline_p
);
22 u8 (*mv_inb
)(unsigned long);
23 u16 (*mv_inw
)(unsigned long);
24 u32 (*mv_inl
)(unsigned long);
25 void (*mv_outb
)(u8
, unsigned long);
26 void (*mv_outw
)(u16
, unsigned long);
27 void (*mv_outl
)(u32
, unsigned long);
29 u8 (*mv_inb_p
)(unsigned long);
30 u16 (*mv_inw_p
)(unsigned long);
31 u32 (*mv_inl_p
)(unsigned long);
32 void (*mv_outb_p
)(u8
, unsigned long);
33 void (*mv_outw_p
)(u16
, unsigned long);
34 void (*mv_outl_p
)(u32
, unsigned long);
36 void (*mv_insb
)(unsigned long, void *dst
, unsigned long count
);
37 void (*mv_insw
)(unsigned long, void *dst
, unsigned long count
);
38 void (*mv_insl
)(unsigned long, void *dst
, unsigned long count
);
39 void (*mv_outsb
)(unsigned long, const void *src
, unsigned long count
);
40 void (*mv_outsw
)(unsigned long, const void *src
, unsigned long count
);
41 void (*mv_outsl
)(unsigned long, const void *src
, unsigned long count
);
43 int (*mv_irq_demux
)(int irq
);
45 void (*mv_init_irq
)(void);
47 void __iomem
*(*mv_ioport_map
)(unsigned long port
, unsigned int size
);
48 void (*mv_ioport_unmap
)(void __iomem
*);
50 int (*mv_clk_init
)(void);
51 int (*mv_mode_pins
)(void);
54 extern struct sh_machine_vector sh_mv
;
56 #define get_system_type() sh_mv.mv_name
59 __used __section(.machvec.init)
61 #endif /* _ASM_SH_MACHVEC_H */