File: machvec.h

package info (click to toggle)
kernel-source-2.4.14 2.4.14-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 139,160 kB
  • ctags: 428,423
  • sloc: ansic: 2,435,554; asm: 141,119; makefile: 8,258; sh: 3,099; perl: 2,561; yacc: 1,177; cpp: 755; tcl: 577; lex: 352; awk: 251; lisp: 218; sed: 72
file content (167 lines) | stat: -rw-r--r-- 4,298 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
/*
 * include/asm-sh/machvec.h
 *
 * Copyright 2000 Stuart Menefy (stuart.menefy@st.com)
 *
 * May be copied or modified under the terms of the GNU General Public
 * License.  See linux/COPYING for more information.
 */

#ifndef _ASM_SH_MACHVEC_H
#define _ASM_SH_MACHVEC_H 1

#include <linux/config.h>
#include <linux/types.h>

struct timeval;

struct sh_machine_vector
{
	const char *mv_name;

	int mv_nr_irqs;

	unsigned char (*mv_inb)(unsigned long);
	unsigned short (*mv_inw)(unsigned long);
	unsigned int (*mv_inl)(unsigned long);
	void (*mv_outb)(unsigned char, unsigned long);
	void (*mv_outw)(unsigned short, unsigned long);
	void (*mv_outl)(unsigned int, unsigned long);

	unsigned char (*mv_inb_p)(unsigned long);
	unsigned short (*mv_inw_p)(unsigned long);
	unsigned int (*mv_inl_p)(unsigned long);
	void (*mv_outb_p)(unsigned char, unsigned long);
	void (*mv_outw_p)(unsigned short, unsigned long);
	void (*mv_outl_p)(unsigned int, unsigned long);

	void (*mv_insb)(unsigned long port, void *addr, unsigned long count);
	void (*mv_insw)(unsigned long port, void *addr, unsigned long count);
	void (*mv_insl)(unsigned long port, void *addr, unsigned long count);
	void (*mv_outsb)(unsigned long port, const void *addr, unsigned long count);
	void (*mv_outsw)(unsigned long port, const void *addr, unsigned long count);
	void (*mv_outsl)(unsigned long port, const void *addr, unsigned long count);

	unsigned char (*mv_readb)(unsigned long);
	unsigned short (*mv_readw)(unsigned long);
	unsigned int (*mv_readl)(unsigned long);
	void (*mv_writeb)(unsigned char, unsigned long);
	void (*mv_writew)(unsigned short, unsigned long);
	void (*mv_writel)(unsigned int, unsigned long);

	void* (*mv_ioremap)(unsigned long offset, unsigned long size);
	void (*mv_iounmap)(void *addr);

	unsigned long (*mv_isa_port2addr)(unsigned long offset);

	int (*mv_irq_demux)(int irq);

	void (*mv_init_arch)(void);
	void (*mv_init_irq)(void);
	void (*mv_init_pci)(void);
	void (*mv_kill_arch)(int);

	void (*mv_heartbeat)(void);

	void (*mv_rtc_gettimeofday)(struct timeval *tv);
	int (*mv_rtc_settimeofday)(const struct timeval *tv);

	unsigned int mv_hw_se : 1;
	unsigned int mv_hw_hp600 : 1;
	unsigned int mv_hw_hp620 : 1;
	unsigned int mv_hw_hp680 : 1;
	unsigned int mv_hw_hp690 : 1;
	unsigned int mv_hw_hd64461 : 1;
	unsigned int mv_hw_sh2000 : 1;
	unsigned int mv_hw_hd64465 : 1;
	unsigned int mv_hw_dreamcast : 1;
	unsigned int mv_hw_bigsur : 1;
	unsigned int mv_hw_7751se: 1;
	unsigned int mv_hw_adx : 1;
};

extern struct sh_machine_vector sh_mv;

/* Machine check macros */
#ifdef CONFIG_SH_GENERIC
#define MACH_SE		(sh_mv.mv_hw_se)
#define MACH_HP600	(sh_mv.mv_hw_hp600)
#define MACH_HP620	(sh_mv.mv_hw_hp620)
#define MACH_HP680	(sh_mv.mv_hw_hp680)
#define MACH_HP690	(sh_mv.mv_hw_hp690)
#define MACH_HD64461	(sh_mv.mv_hw_hd64461)
#define MACH_HD64465	(sh_mv.mv_hw_hd64465)
#define MACH_SH2000	(sh_mv.mv_hw_sh2000)
#define MACH_DREAMCAST	(sh_mv.mv_hw_dreamcast)
#define MACH_BIGSUR	(sh_mv.mv_hw_bigsur)
#define MACH_7751SE	(sh_mv.mv_hw_7751se)
#define MACH_ADX	(sh_mv.mv_hw_adx)
#else
# ifdef CONFIG_SH_SOLUTION_ENGINE
#  define MACH_SE		1
# else
#  define MACH_SE		0
# endif
# ifdef CONFIG_SH_7751_SOLUTION_ENGINE
#  define MACH_7751SE		1
# else
#  define MACH_7751SE		0
# endif
# ifdef CONFIG_SH_HP600
#  define MACH_HP600		1
# else
#  define MACH_HP600		0
# endif
# ifdef CONFIG_SH_HP620
#  define MACH_HP620		1
# else
#  define MACH_HP620		0
# endif
# ifdef CONFIG_SH_HP680
#  define MACH_HP680		1
# else
#  define MACH_HP680		0
# endif
# ifdef CONFIG_SH_HP690
#  define MACH_HP690		1
# else
#  define MACH_HP690		0
# endif
# ifdef CONFIG_HD64461
#  define MACH_HD64461		1
# else
#  define MACH_HD64461		0
# endif
# ifdef CONFIG_HD64465
#  define MACH_HD64465		1
# else
#  define MACH_HD64465		0
# endif
# ifdef CONFIG_SH_SH2000
#  define MACH_SH2000		1
# else
#  define MACH_SH2000		0
# endif
# ifdef CONFIG_SH_EC3104
#  define MACH_EC3104		1
# else
#  define MACH_EC3104		0
# endif
# ifdef CONFIG_SH_DREAMCAST
#  define MACH_DREAMCAST	1
# else
#  define MACH_DREAMCAST	0
# endif
# ifdef CONFIG_SH_BIGSUR
#  define MACH_BIGSUR		1
# else
#  define MACH_BIGSUR		0
# endif
# ifdef CONFIG_SH_ADX
#  define MACH_ADX		1
# else
#  define MACH_ADX		0
# endif
#endif

#endif /* _ASM_SH_MACHVEC_H */