2 PS/2 Mouse driver header file
4 Copyright (c) 2006 - 2007, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19 #include <Framework/StatusCode.h>
21 #include <Protocol/SimplePointer.h>
22 #include <Protocol/IsaIo.h>
23 #include <Protocol/DevicePath.h>
25 #include <Library/DebugLib.h>
26 #include <Library/UefiDriverEntryPoint.h>
27 #include <Library/UefiLib.h>
28 #include <Library/BaseMemoryLib.h>
29 #include <Library/MemoryAllocationLib.h>
30 #include <Library/UefiBootServicesTableLib.h>
31 #include <Library/ReportStatusCodeLib.h>
34 // PS/2 mouse sample rate
48 // PS/2 mouse resolution
67 // Driver Private Data
69 #define PS2_MOUSE_DEV_SIGNATURE EFI_SIGNATURE_32 ('p', 's', '2', 'm')
75 EFI_SIMPLE_POINTER_PROTOCOL SimplePointerProtocol
;
76 EFI_SIMPLE_POINTER_STATE State
;
77 EFI_SIMPLE_POINTER_MODE Mode
;
81 // PS2 Mouse device specific information
86 UINT8 DataPackageSize
;
88 EFI_ISA_IO_PROTOCOL
*IsaIo
;
92 EFI_UNICODE_STRING_TABLE
*ControllerNameTable
;
93 EFI_DEVICE_PATH_PROTOCOL
*DevicePath
;
96 #define PS2_MOUSE_DEV_FROM_THIS(a) CR (a, PS2_MOUSE_DEV, SimplePointerProtocol, PS2_MOUSE_DEV_SIGNATURE)
101 extern EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver
;
102 extern EFI_COMPONENT_NAME_PROTOCOL gPs2MouseComponentName
;
105 // Function prototypes
109 PS2MouseDriverSupported (
110 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
111 IN EFI_HANDLE Controller
,
112 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
117 PS2MouseDriverStart (
118 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
119 IN EFI_HANDLE Controller
,
120 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
126 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
127 IN EFI_HANDLE Controller
,
128 IN UINTN NumberOfChildren
,
129 IN EFI_HANDLE
*ChildHandleBuffer
133 // EFI Component Name Functions
137 Ps2MouseComponentNameGetDriverName (
138 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
140 OUT CHAR16
**DriverName
145 Ps2MouseComponentNameGetControllerName (
146 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
147 IN EFI_HANDLE ControllerHandle
,
148 IN EFI_HANDLE ChildHandle OPTIONAL
,
150 OUT CHAR16
**ControllerName
156 IN EFI_SIMPLE_POINTER_PROTOCOL
*This
,
157 IN BOOLEAN ExtendedVerification
163 IN EFI_SIMPLE_POINTER_PROTOCOL
*This
,
164 IN OUT EFI_SIMPLE_POINTER_STATE
*State
183 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
188 IN PS2_MOUSE_DEV
*MouseDev