1 /* $Id: keyboard.h,v 1.14 1999/08/19 22:56:33 ralf Exp $
2 *
3 * This file is subject to the terms and conditions of the GNU General Public
4 * License. See the file "COPYING" in the main directory of this archive
5 * for more details.
6 *
7 * Copyright (C) 1994 - 1999 Ralf Baechle
8 */
9 #ifndef _ASM_KEYBOARD_H
10 #define _ASM_KEYBOARD_H
11
12 #ifdef __KERNEL__
13
14 #include <linux/delay.h>
15 #include <linux/ioport.h>
16 #include <asm/bootinfo.h>
17
18 #define DISABLE_KBD_DURING_INTERRUPTS 0
19
20 extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
21 extern int pckbd_getkeycode(unsigned int scancode);
22 extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
23 char raw_mode);
24 extern char pckbd_unexpected_up(unsigned char keycode);
25 extern void pckbd_leds(unsigned char leds);
26 extern void pckbd_init_hw(void);
27 extern unsigned char pckbd_sysrq_xlate[128];
28 extern void kbd_forward_char (int ch);
29
30 #define kbd_setkeycode pckbd_setkeycode
31 #define kbd_getkeycode pckbd_getkeycode
32 #define kbd_translate pckbd_translate
33 #define kbd_unexpected_up pckbd_unexpected_up
34 #define kbd_leds pckbd_leds
35 #define kbd_init_hw pckbd_init_hw
36 #define kbd_sysrq_xlate pckbd_sysrq_xlate
37
38 #define SYSRQ_KEY 0x54
39
40 /* Some stoneage hardware needs delays after some operations. */
41 #define kbd_pause() do { } while(0)
42
43 struct kbd_ops {
44 /* Keyboard driver resource allocation */
45 void (*kbd_request_region)(void);
46 int (*kbd_request_irq)(void (*handler)(int, void *, struct pt_regs *));
47
48 /* PSaux driver resource managment */
49 int (*aux_request_irq)(void (*handler)(int, void *, struct pt_regs *));
50 void (*aux_free_irq)(void);
51
52 /* Methods to access the keyboard processor's I/O registers */
53 unsigned char (*kbd_read_input)(void);
54 void (*kbd_write_output)(unsigned char val);
55 void (*kbd_write_command)(unsigned char val);
56 unsigned char (*kbd_read_status)(void);
57 };
58
59 extern struct kbd_ops *kbd_ops;
60
61 /* Do the actual calls via kbd_ops vector */
62 #define kbd_request_region() kbd_ops->kbd_request_region()
63 #define kbd_request_irq(handler) kbd_ops->kbd_request_irq(handler)
64
65 #define aux_request_irq(hand, dev_id) kbd_ops->aux_request_irq(hand)
66 #define aux_free_irq(dev_id) kbd_ops->aux_free_irq()
67
68 #define kbd_read_input() kbd_ops->kbd_read_input()
69 #define kbd_write_output(val) kbd_ops->kbd_write_output(val)
70 #define kbd_write_command(val) kbd_ops->kbd_write_command(val)
71 #define kbd_read_status() kbd_ops->kbd_read_status()
72
73 #endif /* __KERNEL */
74
75 #endif /* _ASM_KEYBOARD_H */
76
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.