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