xref: /titanic_50/usr/src/uts/i86pc/boot/boot_keyboard_table.c (revision ae115bc77f6fcde83175c75b4206dc2e50747966)
1*ae115bc7Smrj /*
2*ae115bc7Smrj  * CDDL HEADER START
3*ae115bc7Smrj  *
4*ae115bc7Smrj  * The contents of this file are subject to the terms of the
5*ae115bc7Smrj  * Common Development and Distribution License (the "License").
6*ae115bc7Smrj  * You may not use this file except in compliance with the License.
7*ae115bc7Smrj  *
8*ae115bc7Smrj  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*ae115bc7Smrj  * or http://www.opensolaris.org/os/licensing.
10*ae115bc7Smrj  * See the License for the specific language governing permissions
11*ae115bc7Smrj  * and limitations under the License.
12*ae115bc7Smrj  *
13*ae115bc7Smrj  * When distributing Covered Code, include this CDDL HEADER in each
14*ae115bc7Smrj  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*ae115bc7Smrj  * If applicable, add the following below this CDDL HEADER, with the
16*ae115bc7Smrj  * fields enclosed by brackets "[]" replaced with your own identifying
17*ae115bc7Smrj  * information: Portions Copyright [yyyy] [name of copyright owner]
18*ae115bc7Smrj  *
19*ae115bc7Smrj  * CDDL HEADER END
20*ae115bc7Smrj  */
21*ae115bc7Smrj /*
22*ae115bc7Smrj  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23*ae115bc7Smrj  * Use is subject to license terms.
24*ae115bc7Smrj  */
25*ae115bc7Smrj 
26*ae115bc7Smrj #pragma ident	"%Z%%M%	%I%	%E% SMI"
27*ae115bc7Smrj 
28*ae115bc7Smrj /*
29*ae115bc7Smrj  * Keyboard table for bootstrap's simple keyboard driver.
30*ae115bc7Smrj  */
31*ae115bc7Smrj 
32*ae115bc7Smrj #include "boot_keyboard_table.h"
33*ae115bc7Smrj 
34*ae115bc7Smrj #define	A	| KBTYPE_ALPHA
35*ae115bc7Smrj #define	C	& 0x1f
36*ae115bc7Smrj #define	F	| KBTYPE_FUNC
37*ae115bc7Smrj #define	N	| KBTYPE_NUMPAD
38*ae115bc7Smrj 
39*ae115bc7Smrj #define	ALT	KBTYPE_SPEC_ALT
40*ae115bc7Smrj #define	CTRL	KBTYPE_SPEC_CTRL
41*ae115bc7Smrj #define	LSHIFT	KBTYPE_SPEC_LSHIFT
42*ae115bc7Smrj #define	NOP	KBTYPE_SPEC_NOP
43*ae115bc7Smrj #define	NUMLK	KBTYPE_SPEC_NUM_LOCK
44*ae115bc7Smrj #define	SCRLLK	KBTYPE_SPEC_SCROLL_LOCK
45*ae115bc7Smrj #define	CAPSLK	KBTYPE_SPEC_CAPS_LOCK
46*ae115bc7Smrj #define	RSHIFT	KBTYPE_SPEC_RSHIFT
47*ae115bc7Smrj #define	REBOOT	KBTYPE_SPEC_MAYBE_REBOOT
48*ae115bc7Smrj #define	UNDEF	KBTYPE_SPEC_UNDEF
49*ae115bc7Smrj 
50*ae115bc7Smrj struct keyboard_translate keyboard_translate[128] = {
51*ae115bc7Smrj 	/*		Normal	Shifted	Ctrled	Alted */
52*ae115bc7Smrj 	/* 00 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
53*ae115bc7Smrj 	/* 01 */	'['C,	'['C,	NOP,	NOP,
54*ae115bc7Smrj 	/* 02 */	'1',	'!',	NOP,	0x78 F,
55*ae115bc7Smrj 	/* 03 */	'2',	'@',	NOP,	0x79 F,
56*ae115bc7Smrj 	/* 04 */	'3',	'#',	NOP,	0x7a F,
57*ae115bc7Smrj 	/* 05 */	'4',	'$',	NOP,	0x7b F,
58*ae115bc7Smrj 	/* 06 */	'5',	'%',	NOP,	0x7c F,
59*ae115bc7Smrj 	/* 07 */	'6',	'^',	'^'C,	0x7d F,
60*ae115bc7Smrj 	/* 08 */	'7',	'&',	NOP,	0x7e F,
61*ae115bc7Smrj 	/* 09 */	'8',	'*',	NOP,	0x7f F,
62*ae115bc7Smrj 	/* 0a */	'9',	'(',	NOP,	0x80 F,
63*ae115bc7Smrj 	/* 0b */	'0',	')',	NOP,	0x81 F,
64*ae115bc7Smrj 	/* 0c */	'-',	'_',	NOP,	0x82 F,
65*ae115bc7Smrj 	/* 0d */	'=',	'+',	NOP,	0x83 F,
66*ae115bc7Smrj 	/* 0e */	'h'C,	0x0e F,	0x7f,	NOP,
67*ae115bc7Smrj 	/* 0f */	'i'C,	0x0f F,	NOP,	NOP,
68*ae115bc7Smrj 	/* 10 */	'q'A,	'Q',	'q'C,	0x10 F,
69*ae115bc7Smrj 	/* 11 */	'w'A,	'W',	'w'C,	0x11 F,
70*ae115bc7Smrj 	/* 12 */	'e'A,	'E',	'e'C,	0x12 F,
71*ae115bc7Smrj 	/* 13 */	'r'A,	'R',	'r'C,	0x13 F,
72*ae115bc7Smrj 	/* 14 */	't'A,	'T',	't'C,	0x14 F,
73*ae115bc7Smrj 	/* 15 */	'y'A,	'Y',	'y'C,	0x15 F,
74*ae115bc7Smrj 	/* 16 */	'u'A,	'U',	'u'C,	0x16 F,
75*ae115bc7Smrj 	/* 17 */	'i'A,	'I',	'i'C,	0x17 F,
76*ae115bc7Smrj 	/* 18 */	'o'A,	'O',	'o'C,	0x18 F,
77*ae115bc7Smrj 	/* 19 */	'p'A,	'P',	'p'C,	0x19 F,
78*ae115bc7Smrj 	/* 1a */	'[',	'{',	'['C,	NOP,
79*ae115bc7Smrj 	/* 1b */	']',	'}',	']'C,	NOP,
80*ae115bc7Smrj 	/* 1c */	'm'C,	'm'C,	NOP,	NOP,
81*ae115bc7Smrj 	/* 1d */	CTRL,	CTRL,	CTRL,	CTRL,
82*ae115bc7Smrj 	/* 1e */	'a'A,	'A',	'a'C,	0x1e F,
83*ae115bc7Smrj 	/* 1f */	's'A,	'S',	's'C,	0x1f F,
84*ae115bc7Smrj 	/* 20 */	'd'A,	'D',	'd'C,	0x20 F,
85*ae115bc7Smrj 	/* 21 */	'f'A,	'F',	'f'C,	0x21 F,
86*ae115bc7Smrj 	/* 22 */	'g'A,	'G',	'g'C,	0x22 F,
87*ae115bc7Smrj 	/* 23 */	'h'A,	'H',	'h'C,	0x23 F,
88*ae115bc7Smrj 	/* 24 */	'j'A,	'J',	'j'C,	0x24 F,
89*ae115bc7Smrj 	/* 25 */	'k'A,	'K',	'k'C,	0x25 F,
90*ae115bc7Smrj 	/* 26 */	'l'A,	'L',	'l'C,	0x26 F,
91*ae115bc7Smrj 	/* 27 */	';',	':',	NOP,	NOP,
92*ae115bc7Smrj 	/* 28 */	'\'',	'"',	NOP,	NOP,
93*ae115bc7Smrj 	/* 29 */	'`',	'~',	NOP,	NOP,
94*ae115bc7Smrj 	/* 2a */	LSHIFT,	LSHIFT,	LSHIFT,	LSHIFT,
95*ae115bc7Smrj 	/* 2b */	'\\',	'|',	'\\'C,	NOP,
96*ae115bc7Smrj 	/* 2c */	'z'A,	'Z',	'z'C,	0x2c F,
97*ae115bc7Smrj 	/* 2d */	'x'A,	'X',	'x'C,	0x2d F,
98*ae115bc7Smrj 	/* 2e */	'c'A,	'C',	'c'C,	0x2e F,
99*ae115bc7Smrj 	/* 2f */	'v'A,	'V',	'v'C,	0x2f F,
100*ae115bc7Smrj 	/* 30 */	'b'A,	'B',	'b'C,	0x30 F,
101*ae115bc7Smrj 	/* 31 */	'n'A,	'N',	'n'C,	0x31 F,
102*ae115bc7Smrj 	/* 32 */	'm'A,	'M',	'm'C,	0x32 F,
103*ae115bc7Smrj 	/* 33 */	',',	'<',	NOP,	NOP,
104*ae115bc7Smrj 	/* 34 */	'.',	'>',	NOP,	NOP,
105*ae115bc7Smrj 	/* 35 */	'/',	'?',	NOP,	NOP,
106*ae115bc7Smrj 	/* 36 */	RSHIFT,	RSHIFT,	RSHIFT,	RSHIFT,
107*ae115bc7Smrj 	/* 37 */	'*',	NOP,	NOP,	NOP,	/* * PrtSc */
108*ae115bc7Smrj 	/* 38 */	ALT,	ALT,	ALT,	ALT,
109*ae115bc7Smrj 	/* 39 */	' ',	' ',	NOP,	NOP,
110*ae115bc7Smrj 	/* 3a */	CAPSLK,	CAPSLK,	CAPSLK,	CAPSLK,
111*ae115bc7Smrj 	/* 3b */	0x3b F,	0x54 F,	0x5e F,	0x68 F,
112*ae115bc7Smrj 	/* 3c */	0x3c F,	0x55 F,	0x5f F,	0x69 F,
113*ae115bc7Smrj 	/* 3d */	0x3d F,	0x56 F,	0x60 F,	0x6a F,
114*ae115bc7Smrj 	/* 3e */	0x3e F,	0x57 F,	0x61 F,	0x6b F,
115*ae115bc7Smrj 	/* 3f */	0x3f F,	0x58 F,	0x62 F,	0x6c F,
116*ae115bc7Smrj 	/* 40 */	0x40 F,	0x59 F,	0x63 F,	0x6d F,
117*ae115bc7Smrj 	/* 41 */	0x41 F,	0x5a F,	0x64 F,	0x6e F,
118*ae115bc7Smrj 	/* 42 */	0x42 F,	0x5b F,	0x65 F,	0x6f F,
119*ae115bc7Smrj 	/* 43 */	0x43 F,	0x5c F,	0x66 F,	0x70 F,
120*ae115bc7Smrj 	/* 44 */	0x44 F,	0x5d F,	0x67 F,	0x71 F,
121*ae115bc7Smrj 	/* 45 */	NUMLK,	NUMLK,	NUMLK,	NUMLK,
122*ae115bc7Smrj 	/* 46 */	SCRLLK,	SCRLLK,	SCRLLK,	SCRLLK,
123*ae115bc7Smrj 	/* 47 */	0x47 N,	'7',	NOP,	NOP,
124*ae115bc7Smrj 	/* 48 */	0x48 N,	'8',	NOP,	NOP,
125*ae115bc7Smrj 	/* 49 */	0x49 N,	'9',	NOP,	NOP,
126*ae115bc7Smrj 	/* 4a */	'-',	'-',	NOP,	NOP,
127*ae115bc7Smrj 	/* 4b */	0x4b N,	'4',	NOP,	NOP,
128*ae115bc7Smrj 	/* 4c */	NOP,	'5',	NOP,	NOP,
129*ae115bc7Smrj 	/* 4d */	0x4d N,	'6',	NOP,	NOP,
130*ae115bc7Smrj 	/* 4e */	'+',	'+',	NOP,	NOP,
131*ae115bc7Smrj 	/* 4f */	0x4f N,	'1',	NOP,	NOP,
132*ae115bc7Smrj 	/* 50 */	0x50 N,	'2',	NOP,	NOP,
133*ae115bc7Smrj 	/* 51 */	0x51 N,	'3',	NOP,	NOP,
134*ae115bc7Smrj 	/* 52 */	0x52 N,	'0',	NOP,	NOP,
135*ae115bc7Smrj 	/* 53 */	0x53 N,	'.',	REBOOT,	REBOOT,
136*ae115bc7Smrj 	/* 54 */	NOP,	NOP,	NOP,	NOP,	/* SysReq */
137*ae115bc7Smrj 	/* 55 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
138*ae115bc7Smrj 	/* 56 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
139*ae115bc7Smrj 	/* 57 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
140*ae115bc7Smrj 	/* 58 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
141*ae115bc7Smrj 	/* 59 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
142*ae115bc7Smrj 	/* 5a */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
143*ae115bc7Smrj 	/* 5b */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
144*ae115bc7Smrj 	/* 5c */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
145*ae115bc7Smrj 	/* 5d */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
146*ae115bc7Smrj 	/* 5e */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
147*ae115bc7Smrj 	/* 5f */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
148*ae115bc7Smrj 	/* 60 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
149*ae115bc7Smrj 	/* 61 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
150*ae115bc7Smrj 	/* 62 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
151*ae115bc7Smrj 	/* 63 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
152*ae115bc7Smrj 	/* 64 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
153*ae115bc7Smrj 	/* 65 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
154*ae115bc7Smrj 	/* 66 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
155*ae115bc7Smrj 	/* 67 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
156*ae115bc7Smrj 	/* 68 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
157*ae115bc7Smrj 	/* 69 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
158*ae115bc7Smrj 	/* 6a */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
159*ae115bc7Smrj 	/* 6b */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
160*ae115bc7Smrj 	/* 6c */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
161*ae115bc7Smrj 	/* 6d */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
162*ae115bc7Smrj 	/* 6e */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
163*ae115bc7Smrj 	/* 6f */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
164*ae115bc7Smrj 	/* 70 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
165*ae115bc7Smrj 	/* 71 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
166*ae115bc7Smrj 	/* 72 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
167*ae115bc7Smrj 	/* 73 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
168*ae115bc7Smrj 	/* 74 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
169*ae115bc7Smrj 	/* 75 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
170*ae115bc7Smrj 	/* 76 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
171*ae115bc7Smrj 	/* 77 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
172*ae115bc7Smrj 	/* 78 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
173*ae115bc7Smrj 	/* 79 */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
174*ae115bc7Smrj 	/* 7a */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
175*ae115bc7Smrj 	/* 7b */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
176*ae115bc7Smrj 	/* 7c */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
177*ae115bc7Smrj 	/* 7d */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
178*ae115bc7Smrj 	/* 7e */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
179*ae115bc7Smrj 	/* 7f */	UNDEF,	UNDEF,	UNDEF,	UNDEF,
180*ae115bc7Smrj };
181