]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/Ps2Mouse.h
Update to BSD license header.
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Isa / Ps2MouseDxe / Ps2Mouse.h
CommitLineData
05fbd06d 1/*++\r
2\r
92a428e1 3Copyright (c) 2006 - 2007, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
05fbd06d 8\r
92a428e1 9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
05fbd06d 11\r
12Module Name:\r
13\r
14 Ps2Mouse.h\r
15\r
16Abstract:\r
17\r
18 PS/2 Mouse driver header file\r
19\r
20Revision History\r
21\r
22--*/\r
23\r
24#ifndef _PS2MOUSE_H\r
25#define _PS2MOUSE_H\r
26\r
27//\r
28// Include common header file for this module.\r
29//\r
30#include "CommonHeader.h"\r
31\r
32//\r
33// PS/2 mouse sample rate\r
34//\r
35typedef enum {\r
36 SSR_10,\r
37 SSR_20,\r
38 SSR_40,\r
39 SSR_60,\r
40 SSR_80,\r
41 SSR_100,\r
42 SSR_200,\r
43 MAX_SR\r
44} MOUSE_SR;\r
45\r
46//\r
47// PS/2 mouse resolution\r
48//\r
49typedef enum {\r
50 CMR1,\r
51 CMR2,\r
52 CMR4,\r
53 CMR8,\r
54 MAX_CMR\r
55} MOUSE_RE;\r
56\r
57//\r
58// PS/2 mouse scaling\r
59//\r
60typedef enum {\r
61 SF1,\r
62 SF2\r
63} MOUSE_SF;\r
64\r
65//\r
66// Driver Private Data\r
67//\r
68#define PS2_MOUSE_DEV_SIGNATURE EFI_SIGNATURE_32 ('p', 's', '2', 'm')\r
69\r
70typedef struct {\r
71 UINTN Signature;\r
72\r
73 EFI_HANDLE Handle;\r
74 EFI_SIMPLE_POINTER_PROTOCOL SimplePointerProtocol;\r
75 EFI_SIMPLE_POINTER_STATE State;\r
76 EFI_SIMPLE_POINTER_MODE Mode;\r
77 BOOLEAN StateChanged;\r
78\r
79 //\r
80 // PS2 Mouse device specific information\r
81 //\r
82 MOUSE_SR SampleRate;\r
83 MOUSE_RE Resolution;\r
84 MOUSE_SF Scaling;\r
85 UINT8 DataPackageSize;\r
86\r
87 EFI_ISA_IO_PROTOCOL *IsaIo;\r
88\r
89 EFI_EVENT TimerEvent;\r
90\r
91 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
92 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
93} PS2_MOUSE_DEV;\r
94\r
95#define PS2_MOUSE_DEV_FROM_THIS(a) CR (a, PS2_MOUSE_DEV, SimplePointerProtocol, PS2_MOUSE_DEV_SIGNATURE)\r
96\r
97//\r
98// Global Variables\r
99//\r
100extern EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver;\r
101extern EFI_COMPONENT_NAME_PROTOCOL gPs2MouseComponentName;\r
102\r
103//\r
104// Function prototypes\r
105//\r
106EFI_STATUS\r
107EFIAPI\r
108PS2MouseDriverSupported (\r
109 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
110 IN EFI_HANDLE Controller,\r
111 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
112 );\r
113\r
114EFI_STATUS\r
115EFIAPI\r
116PS2MouseDriverStart (\r
117 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
118 IN EFI_HANDLE Controller,\r
119 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
120 );\r
121\r
122EFI_STATUS\r
123EFIAPI\r
124PS2MouseDriverStop (\r
125 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
126 IN EFI_HANDLE Controller,\r
127 IN UINTN NumberOfChildren,\r
128 IN EFI_HANDLE *ChildHandleBuffer\r
129 );\r
130\r
131//\r
132// EFI Component Name Functions\r
133//\r
134EFI_STATUS\r
135EFIAPI\r
136Ps2MouseComponentNameGetDriverName (\r
137 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
138 IN CHAR8 *Language,\r
139 OUT CHAR16 **DriverName\r
140 );\r
141\r
142EFI_STATUS\r
143EFIAPI\r
144Ps2MouseComponentNameGetControllerName (\r
145 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
146 IN EFI_HANDLE ControllerHandle,\r
147 IN EFI_HANDLE ChildHandle OPTIONAL,\r
148 IN CHAR8 *Language,\r
149 OUT CHAR16 **ControllerName\r
150 );\r
151\r
152EFI_STATUS\r
153EFIAPI\r
154MouseReset (\r
155 IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
156 IN BOOLEAN ExtendedVerification\r
157 );\r
158\r
159EFI_STATUS\r
160EFIAPI\r
161MouseGetState (\r
162 IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
163 IN OUT EFI_SIMPLE_POINTER_STATE *State\r
164 );\r
165\r
166VOID\r
167EFIAPI\r
168MouseWaitForInput (\r
169 IN EFI_EVENT Event,\r
170 IN VOID *Context\r
171 );\r
172\r
173VOID\r
174EFIAPI\r
175PollMouse (\r
176 IN EFI_EVENT Event,\r
177 IN VOID *Context\r
178 );\r
179\r
180EFI_STATUS\r
181In8042Data (\r
182 IN EFI_ISA_IO_PROTOCOL *IsaIo,\r
183 IN OUT UINT8 *Data\r
184 );\r
185BOOLEAN\r
186CheckMouseConnect (\r
187 IN PS2_MOUSE_DEV *MouseDev\r
188 );\r
189\r
190#endif\r