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