1 | /* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
|
---|
2 | *
|
---|
3 | * Permission is hereby granted, free of charge, to any person obtaining a
|
---|
4 | * copy of this software and associated documentation files (the
|
---|
5 | * "Software"), to deal in the Software without restriction, including
|
---|
6 | * without limitation the rights to use, copy, modify, merge, publish,
|
---|
7 | * distribute, and/or sell copies of the Software, and to permit persons
|
---|
8 | * to whom the Software is furnished to do so, provided that the above
|
---|
9 | * copyright notice(s) and this permission notice appear in all copies of
|
---|
10 | * the Software and that both the above copyright notice(s) and this
|
---|
11 | * permission notice appear in supporting documentation.
|
---|
12 | *
|
---|
13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
---|
14 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
---|
15 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
---|
16 | * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
---|
17 | * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
|
---|
18 | * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
|
---|
19 | * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
---|
20 | * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
---|
21 | * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
---|
22 | *
|
---|
23 | * Except as contained in this notice, the name of a copyright holder
|
---|
24 | * shall not be used in advertising or otherwise to promote the sale, use
|
---|
25 | * or other dealings in this Software without prior written authorization
|
---|
26 | * of the copyright holder.
|
---|
27 | */
|
---|
28 |
|
---|
29 | #ifndef _XORG_SUN_KBD_H_
|
---|
30 | #define _XORG_SUN_KBD_H_
|
---|
31 |
|
---|
32 | /*
|
---|
33 | * Keyboard common implementation routines shared by "keyboard" driver
|
---|
34 | * in sun_io.c and "kbd" driver in sun_kbd.c
|
---|
35 | */
|
---|
36 |
|
---|
37 | typedef struct {
|
---|
38 | int kbdFD;
|
---|
39 | const char * devName;
|
---|
40 | int ktype; /* Keyboard type from KIOCTYPE */
|
---|
41 | Bool kbdActive; /* Have we set kbd modes for X? */
|
---|
42 | int otranslation; /* Original translation mode */
|
---|
43 | int odirect; /* Original "direct" mode setting */
|
---|
44 | unsigned char oleds; /* Original LED state */
|
---|
45 | const char * strmod; /* Streams module pushed on kbd device */
|
---|
46 | const char * audioDevName; /* Audio device path to use for bell
|
---|
47 | or NULL to use keyboard beeper */
|
---|
48 | enum {AB_INITIALIZING, AB_NORMAL} audioState;
|
---|
49 | const unsigned char *keyMap;
|
---|
50 | } sunKbdPrivRec, *sunKbdPrivPtr;
|
---|
51 |
|
---|
52 | /* sun_kbd.c */
|
---|
53 | extern int sunKbdOpen (const char *devName, pointer options);
|
---|
54 | extern int sunKbdInit (sunKbdPrivPtr priv, int kbdFD,
|
---|
55 | const char *devName, pointer options);
|
---|
56 | extern int sunKbdOn (sunKbdPrivPtr priv);
|
---|
57 | extern int sunKbdOff (sunKbdPrivPtr priv);
|
---|
58 |
|
---|
59 | extern void sunKbdSoundBell (sunKbdPrivPtr priv,
|
---|
60 | int loudness, int pitch, int duration);
|
---|
61 |
|
---|
62 | extern void sunKbdSetLeds (sunKbdPrivPtr priv, int leds);
|
---|
63 | extern int sunKbdGetLeds (sunKbdPrivPtr priv);
|
---|
64 | extern void sunKbdSetRepeat (sunKbdPrivPtr priv, char rad);
|
---|
65 |
|
---|
66 | /* sun_kbdEv.c */
|
---|
67 | #include <sys/vuid_event.h>
|
---|
68 | extern void sunPostKbdEvent (int ktype, Firm_event *event);
|
---|
69 |
|
---|
70 | extern const unsigned char *sunGetKbdMapping(int ktype);
|
---|
71 |
|
---|
72 | #endif
|
---|