Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / obp / obp / dev / usb-devices / kbd / usbdefs.fth
CommitLineData
920dae64
AT
1\ ========== Copyright Header Begin ==========================================
2\
3\ Hypervisor Software File: usbdefs.fth
4\
5\ Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
6\
7\ - Do no alter or remove copyright notices
8\
9\ - Redistribution and use of this software in source and binary forms, with
10\ or without modification, are permitted provided that the following
11\ conditions are met:
12\
13\ - Redistribution of source code must retain the above copyright notice,
14\ this list of conditions and the following disclaimer.
15\
16\ - Redistribution in binary form must reproduce the above copyright notice,
17\ this list of conditions and the following disclaimer in the
18\ documentation and/or other materials provided with the distribution.
19\
20\ Neither the name of Sun Microsystems, Inc. or the names of contributors
21\ may be used to endorse or promote products derived from this software
22\ without specific prior written permission.
23\
24\ This software is provided "AS IS," without a warranty of any kind.
25\ ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
26\ INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
27\ PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
28\ MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
29\ ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
30\ DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
31\ OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
32\ FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
33\ DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
34\ ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
35\ SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
36\
37\ You acknowledge that this software is not designed, licensed or
38\ intended for use in the design, construction, operation or maintenance of
39\ any nuclear facility.
40\
41\ ========== Copyright Header End ============================================
42\ id: @(#)usbdefs.fth 1.9 00/06/01
43\ purpose:
44\ copyright: Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved
45
46
47\ This file holds usb-specific definitions.
48
49
50\ headers \ XXX for debugging
51external
52hex
53
54\ debug stuff from here - take out later
55\ ************************************
56
57: dobigoffset
58 case
59 30 of 0 endof
60 31 of 10 endof
61 32 of 20 endof
62 33 of 30 endof
63 34 of 40 endof
64 35 of 50 endof
65 36 of 70 endof
66 37 of 90 endof
67 38 of b0 endof
68 39 of d0 endof
69 endcase
70;
71: dolitloffset
72 case
73 30 of 0 endof
74 31 of 1 endof
75 32 of 2 endof
76 33 of 3 endof
77 34 of 4 endof
78 35 of 5 endof
79 36 of 6 endof
80 37 of 7 endof
81 38 of 8 endof
82 39 of 9 endof
83 endcase
84;
85\ ************************************
86\ debug stuff to here - take out later
87
88
89\ 1 constant GET-REPORT
90\ 2 constant GET-IDLE
91\ 3 constant GET-PROTOCOL
92\ 4 - 8 are reserved, according to the USB HID doc
93\ 9 constant SET-REPORT
94\ a constant SET-IDLE
95\ b constant SET-PROTOCOL
96
97\ 0 constant BootProtocol
98\ 1 constant ReportProtocol
99
100\ Class Descriptor Types
101\ 21 constant HID-Descriptor-Type
102\ 22 constant REPORT-Descriptor-Type
103\ 23 constant PHYSICAL-Descriptor-Type
104
105\ 81 constant ReqType-HID-Cl-Descr
106
107
108\ 6 constant GET-DESCRIPTOR
109
110\ 1 constant GET-CLASS-DESCR
111
112
113\ These are global.
114defer turn-me-off ' noop is turn-me-off
115defer toggle-mon ' noop is toggle-mon
116
117
1180 constant reglkey
119h# ff constant spclkey
120
1210 instance value unstall-cnt
122
123instance variable our-ha-token
124
1250 instance value set-prtcl-buff^v
1260 instance value get-descr-buff^v
1270 instance value hid-descr-buff^v
1280 instance value std-pkt-buff^v
129
130\ The following struct is designed to keep track of the down keys - up to
131\ 6 per report, plus related information. The code is not currently
132\ doing anything with the modifier byte or the reserved byte, but
133\ including those makes it very convenient because the key# information
134\ coming back from the USB report fits directly into the struct format.
135\ The #keys-down and #regl-keys-dn bytes are not filled in by the USB
136\ boot report but instead are calculated sometime after receiving the
137\ USB report.
138\ Note: fields >kbd-in-byte7, >kbd-in-byte8, and >kbd-in-byte9 are used
139\ to potentially hold the shift, cntrl and altgraph, which are
140\ actually reported as status bits in the >kbd-in-modkeys byte.
141struct
142 1 field >kbd-in-modkeys \ bmRequestType
143 1 field >kbd-in-reserved \ bmRequestType
144 1 field >kbd-in-byte1 \ bmRequestType
145 1 field >kbd-in-byte2 \ bmRequestType
146 1 field >kbd-in-byte3 \ bmRequestType
147 1 field >kbd-in-byte4 \ bmRequestType
148 1 field >kbd-in-byte5 \ bmRequestType
149 1 field >kbd-in-byte6 \ bmRequestType
150 1 field >kbd-in-byte7 \ bmRequestType
151 1 field >kbd-in-byte8 \ bmRequestType
152 1 field >kbd-in-byte9 \ bmRequestType
153 1 field >#keys-down
154 1 field >#regl-keys-dn \ Can determine #spcl keys dn by subtracting
155 \ #regl-keys-dn from #keys-down.
156constant /key-info-buff
157
1580 instance value keybuff-curr^v
159
160/key-info-buff buffer: keybuff-prev
161
1620 value curr-byte1-bfaddr
1630 value curr-#ksdn-bfaddr
1640 value prev-byte1-bfaddr
165 \ These offsets are used frequently enough to have global variables
166 \ that hold the offset to the indicated locations in the key buffers.
167
168
169\ Various keyboard flags;
170-1 instance value shiftflag \ True if the shift key is down
171-1 instance value ctrlflag \ True if the ctrl key is down
172-1 instance value altgflag \ True if the alt graph key is down
173-1 instance value powerflag \ True if the power key is down
174-1 instance value monflag \ True if the monitor key is down
175-1 instance value stopflag \ True if the stop (L1) key is down
176\ Following indicate special flags for "previous" report;
177-1 instance value pr-shiftflag \ True if the shift key is down
178-1 instance value pr-ctrlflag \ True if the ctrl key is down
179-1 instance value pr-altgflag \ True if the alt graph key is down
180-1 instance value pr-powerflag \ True if the power key is down
181-1 instance value pr-monflag \ True if the monitor key is down
182-1 instance value pr-stopflag \ True if the stop (L1) key is down
183
1840 instance value key-repeat-time \ Time of next repeat
185\ 0 instance value key-click
186nokey instance value curr-repeat-key
187 \ curr-repeat-key will hold the converted keyvalue which represents
188 \ the currently repeating key.
189
190
191\ Following will be set if several special keys have been entered
192\ but the control key was given the highest priority. Without this
193\ flag we end up applying the control offset if the control key is
194\ down - even if shift (a higher priority key) is down.
1950 instance value ctrl-in-effect