File: keyboard.h

package info (click to toggle)
kernel-source-sparc-2.2.1 2.2.1
  • links: PTS
  • area: main
  • in suites: slink
  • size: 62,800 kB
  • ctags: 188,320
  • sloc: ansic: 1,114,164; asm: 49,922; makefile: 8,272; sh: 1,831; perl: 1,584; tcl: 409; lisp: 218; cpp: 186; awk: 133; sed: 72
file content (179 lines) | stat: -rw-r--r-- 4,351 bytes parent folder | download | duplicates (3)
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
168
169
170
171
172
173
174
175
176
177
178
179
/*
 *  linux/include/asm-ppc/keyboard.h
 *
 *  Created 3 Nov 1996 by Geert Uytterhoeven
 *  Modified for Power Macintosh by Paul Mackerras
 */

/*
 * This file contains the ppc architecture specific keyboard definitions -
 * like the intel pc for prep systems, different for power macs.
 */

#ifndef __ASMPPC_KEYBOARD_H
#define __ASMPPC_KEYBOARD_H

#ifdef __KERNEL__

#include <linux/config.h>
#include <asm/adb.h>

#ifdef CONFIG_APUS
#include <asm-m68k/keyboard.h>
#else

#define KEYBOARD_IRQ			1
#define DISABLE_KBD_DURING_INTERRUPTS	0
#define INIT_KBD

extern int mackbd_setkeycode(unsigned int scancode, unsigned int keycode);
extern int mackbd_getkeycode(unsigned int scancode);
extern int mackbd_pretranslate(unsigned char scancode, char raw_mode);
extern int mackbd_translate(unsigned char scancode, unsigned char *keycode,
			   char raw_mode);
extern int mackbd_unexpected_up(unsigned char keycode);
extern void mackbd_leds(unsigned char leds);
extern void mackbd_init_hw(void);

extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
extern int pckbd_getkeycode(unsigned int scancode);
extern int pckbd_pretranslate(unsigned char scancode, char raw_mode);
extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
			   char raw_mode);
extern char pckbd_unexpected_up(unsigned char keycode);
extern void pckbd_leds(unsigned char leds);
extern void pckbd_init_hw(void);

static inline int kbd_setkeycode(unsigned int scancode, unsigned int keycode)
{
	if ( is_prep )
		return pckbd_setkeycode(scancode,keycode);
	else if ( is_chrp )
#ifndef CONFIG_MAC_KEYBOARD
		return pckbd_setkeycode(scancode,keycode);
#else
		/* I'm not actually sure if it's legal to have a CHRP machine
		 * without an ADB controller. In any case, this should really
		 * be changed to be a test to see if an ADB _keyboard_ exists
		 * (not just a controller), but that's another story for
		 * another night.
		 */
		if ( adb_hardware == ADB_NONE )
			return pckbd_setkeycode(scancode,keycode);
		else
			return mackbd_setkeycode(scancode,keycode);
#endif
	else
		return mackbd_setkeycode(scancode,keycode);
}

static inline int kbd_getkeycode(unsigned int x)
{
	if ( is_prep )
		return pckbd_getkeycode(x);
	else if ( is_chrp )
#ifndef CONFIG_MAC_KEYBOARD
		return pckbd_getkeycode(x);
#else
		if ( adb_hardware == ADB_NONE )
			return pckbd_getkeycode(x);
		else
			return mackbd_getkeycode(x);
#endif
	else
		return mackbd_getkeycode(x);
}

static inline int kbd_pretranslate(unsigned char x,char y)
{
	if ( is_prep )
		return pckbd_pretranslate(x,y);
	else if ( is_chrp )
#ifndef CONFIG_MAC_KEYBOARD
		return pckbd_pretranslate(x,y);
#else
		if ( adb_hardware == ADB_NONE )
			return pckbd_pretranslate(x,y);
		else
			return mackbd_pretranslate(x,y);
#endif
	else
		return mackbd_pretranslate(x,y);
}

static inline int kbd_translate(unsigned char keycode, unsigned char *keycodep,
		     char raw_mode)
{
	if ( is_prep )
		return pckbd_translate(keycode,keycodep,raw_mode);
	else if ( is_chrp )
#ifndef CONFIG_MAC_KEYBOARD
		return pckbd_translate(keycode,keycodep,raw_mode);
#else
		if ( adb_hardware == ADB_NONE )
			return pckbd_translate(keycode,keycodep,raw_mode);
		else
			return mackbd_translate(keycode,keycodep,raw_mode);
#endif
	else
		return mackbd_translate(keycode,keycodep,raw_mode);
	
}

static inline int kbd_unexpected_up(unsigned char keycode)
{
	if ( is_prep )
		return pckbd_unexpected_up(keycode);
	else if ( is_chrp )
#ifndef CONFIG_MAC_KEYBOARD
		return pckbd_unexpected_up(keycode);
#else
		if ( adb_hardware == ADB_NONE )
			return pckbd_unexpected_up(keycode);
		else
			return mackbd_unexpected_up(keycode);
#endif
	else
		return mackbd_unexpected_up(keycode);
	
}

static inline void kbd_leds(unsigned char leds)
{
	if ( is_prep )
		pckbd_leds(leds);
	else if ( is_chrp )
#ifndef CONFIG_MAC_KEYBOARD
		pckbd_leds(leds);
#else
		if ( adb_hardware == ADB_NONE )
			pckbd_leds(leds);
		else
			mackbd_leds(leds);
#endif
	else
		mackbd_leds(leds);
}

static inline void kbd_init_hw(void)
{
	if ( is_prep )
		pckbd_init_hw();
	else if ( is_chrp )
#ifndef CONFIG_MAC_KEYBOARD
		pckbd_init_hw();
#else
		if ( adb_hardware == ADB_NONE )
			pckbd_init_hw();
		else
			mackbd_init_hw();
#endif
	else
		mackbd_init_hw();
}

#endif /* CONFIG_APUS */

#endif /* __KERNEL__ */

#endif /* __ASMPPC_KEYBOARD_H */