change "Ps2MouseSimulateTouchPad" to "Ps2MouseAbsolutePointer" for more clearing the name's meaning.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4339 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
eric_tian 2007-11-28 03:43:57 +00:00
parent f967ac4a08
commit 52e6faea63
7 changed files with 176 additions and 176 deletions

View File

@ -12,7 +12,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#include "Ps2MouseSimulateTouchPad.h"
#include "Ps2MouseAbsolutePointer.h"
#include "CommPs2.h"
UINT8 SampleRateTbl[MAX_SR] = { 0xa, 0x14, 0x28, 0x3c, 0x50, 0x64, 0xc8 };
@ -430,7 +430,7 @@ Returns:
EFI_STATUS
PS2MouseGetPacket (
PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev
PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev
)
/*++
@ -474,15 +474,15 @@ Returns:
//
// Read mouse first byte data, if failed, immediately return
//
KbcDisableAux (MouseSimulateTouchPadDev->IsaIo);
Status = PS2MouseRead (MouseSimulateTouchPadDev->IsaIo, &Data, &Count, State);
KbcDisableAux (MouseAbsolutePointerDev->IsaIo);
Status = PS2MouseRead (MouseAbsolutePointerDev->IsaIo, &Data, &Count, State);
if (EFI_ERROR (Status)) {
KbcEnableAux (MouseSimulateTouchPadDev->IsaIo);
KbcEnableAux (MouseAbsolutePointerDev->IsaIo);
return EFI_NOT_READY;
}
if (Count != 1) {
KbcEnableAux (MouseSimulateTouchPadDev->IsaIo);
KbcEnableAux (MouseAbsolutePointerDev->IsaIo);
return EFI_NOT_READY;
}
@ -490,18 +490,18 @@ Returns:
Packet[0] = Data;
State = PS2_READ_DATA_BYTE;
CheckKbStatus (MouseSimulateTouchPadDev->IsaIo, &KeyboardEnable);
KbcDisableKb (MouseSimulateTouchPadDev->IsaIo);
KbcEnableAux (MouseSimulateTouchPadDev->IsaIo);
CheckKbStatus (MouseAbsolutePointerDev->IsaIo, &KeyboardEnable);
KbcDisableKb (MouseAbsolutePointerDev->IsaIo);
KbcEnableAux (MouseAbsolutePointerDev->IsaIo);
}
break;
case PS2_READ_DATA_BYTE:
Count = 2;
Status = PS2MouseRead (MouseSimulateTouchPadDev->IsaIo, (Packet + 1), &Count, State);
Status = PS2MouseRead (MouseAbsolutePointerDev->IsaIo, (Packet + 1), &Count, State);
if (EFI_ERROR (Status)) {
if (KeyboardEnable) {
KbcEnableKb (MouseSimulateTouchPadDev->IsaIo);
KbcEnableKb (MouseAbsolutePointerDev->IsaIo);
}
return EFI_NOT_READY;
@ -509,7 +509,7 @@ Returns:
if (Count != 2) {
if (KeyboardEnable) {
KbcEnableKb (MouseSimulateTouchPadDev->IsaIo);
KbcEnableKb (MouseAbsolutePointerDev->IsaIo);
}
return EFI_NOT_READY;
@ -520,7 +520,7 @@ Returns:
case PS2_PROCESS_PACKET:
if (KeyboardEnable) {
KbcEnableKb (MouseSimulateTouchPadDev->IsaIo);
KbcEnableKb (MouseAbsolutePointerDev->IsaIo);
}
//
// Decode the packet
@ -558,11 +558,11 @@ Returns:
//
// Update mouse state
//
MouseSimulateTouchPadDev->State.CurrentX += RelativeMovementX;
MouseSimulateTouchPadDev->State.CurrentY -= RelativeMovementY;
MouseSimulateTouchPadDev->State.CurrentZ = 0;
MouseSimulateTouchPadDev->State.ActiveButtons = (UINT8) (LButton || RButton) & 0x3;
MouseSimulateTouchPadDev->StateChanged = TRUE;
MouseAbsolutePointerDev->State.CurrentX += RelativeMovementX;
MouseAbsolutePointerDev->State.CurrentY -= RelativeMovementY;
MouseAbsolutePointerDev->State.CurrentZ = 0;
MouseAbsolutePointerDev->State.ActiveButtons = (UINT8) (LButton || RButton) & 0x3;
MouseAbsolutePointerDev->StateChanged = TRUE;
return EFI_SUCCESS;
}

View File

@ -343,7 +343,7 @@ Returns:
EFI_STATUS
PS2MouseGetPacket (
PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev
PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev
)
/*++

View File

@ -11,28 +11,28 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#include "Ps2MouseSimulateTouchPad.h"
#include "Ps2MouseAbsolutePointer.h"
//
// EFI Component Name Protocol
//
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gPs2MouseSimulateTouchPadComponentName = {
Ps2MouseSimulateTouchPadComponentNameGetDriverName,
Ps2MouseSimulateTouchPadComponentNameGetControllerName,
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gPs2MouseAbsolutePointerComponentName = {
Ps2MouseAbsolutePointerComponentNameGetDriverName,
Ps2MouseAbsolutePointerComponentNameGetControllerName,
"eng"
};
//
// EFI Component Name 2 Protocol
//
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPs2MouseSimulateTouchPadComponentName2 = {
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) Ps2MouseSimulateTouchPadComponentNameGetDriverName,
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) Ps2MouseSimulateTouchPadComponentNameGetControllerName,
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPs2MouseAbsolutePointerComponentName2 = {
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) Ps2MouseAbsolutePointerComponentNameGetDriverName,
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) Ps2MouseAbsolutePointerComponentNameGetControllerName,
"en"
};
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPs2MouseSimulateTouchPadDriverNameTable[] = {
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPs2MouseAbsolutePointerDriverNameTable[] = {
{
"eng;en",
L"faked PS/2 Touchpad Driver"
@ -84,7 +84,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPs2MouseSimulateTouchPad
**/
EFI_STATUS
EFIAPI
Ps2MouseSimulateTouchPadComponentNameGetDriverName (
Ps2MouseAbsolutePointerComponentNameGetDriverName (
IN EFI_COMPONENT_NAME_PROTOCOL *This,
IN CHAR8 *Language,
OUT CHAR16 **DriverName
@ -93,9 +93,9 @@ Ps2MouseSimulateTouchPadComponentNameGetDriverName (
return LookupUnicodeString2 (
Language,
This->SupportedLanguages,
mPs2MouseSimulateTouchPadDriverNameTable,
mPs2MouseAbsolutePointerDriverNameTable,
DriverName,
(BOOLEAN)(This == &gPs2MouseSimulateTouchPadComponentName)
(BOOLEAN)(This == &gPs2MouseAbsolutePointerComponentName)
);
}
@ -169,7 +169,7 @@ Ps2MouseSimulateTouchPadComponentNameGetDriverName (
**/
EFI_STATUS
EFIAPI
Ps2MouseSimulateTouchPadComponentNameGetControllerName (
Ps2MouseAbsolutePointerComponentNameGetControllerName (
IN EFI_COMPONENT_NAME_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_HANDLE ChildHandle OPTIONAL,
@ -179,7 +179,7 @@ Ps2MouseSimulateTouchPadComponentNameGetControllerName (
{
EFI_STATUS Status;
EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointerProtocol;
PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev;
PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev;
EFI_ISA_IO_PROTOCOL *IsaIoProtocol;
//
@ -195,7 +195,7 @@ Ps2MouseSimulateTouchPadComponentNameGetControllerName (
ControllerHandle,
&gEfiIsaIoProtocolGuid,
(VOID **) &IsaIoProtocol,
gPS2MouseSimulateTouchPadDriver.DriverBindingHandle,
gPS2MouseAbsolutePointerDriver.DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
@ -203,7 +203,7 @@ Ps2MouseSimulateTouchPadComponentNameGetControllerName (
gBS->CloseProtocol (
ControllerHandle,
&gEfiIsaIoProtocolGuid,
gPS2MouseSimulateTouchPadDriver.DriverBindingHandle,
gPS2MouseAbsolutePointerDriver.DriverBindingHandle,
ControllerHandle
);
@ -220,7 +220,7 @@ Ps2MouseSimulateTouchPadComponentNameGetControllerName (
ControllerHandle,
&gEfiAbsolutePointerProtocolGuid,
(VOID **) &AbsolutePointerProtocol,
gPS2MouseSimulateTouchPadDriver.DriverBindingHandle,
gPS2MouseAbsolutePointerDriver.DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
);
@ -228,13 +228,13 @@ Ps2MouseSimulateTouchPadComponentNameGetControllerName (
return Status;
}
MouseSimulateTouchPadDev = PS2_MOUSE_SIMULATE_TOUCHPAD_DEV_FROM_THIS (AbsolutePointerProtocol);
MouseAbsolutePointerDev = PS2_MOUSE_ABSOLUTE_POINTER_DEV_FROM_THIS (AbsolutePointerProtocol);
return LookupUnicodeString2 (
Language,
This->SupportedLanguages,
MouseSimulateTouchPadDev->ControllerNameTable,
MouseAbsolutePointerDev->ControllerNameTable,
ControllerName,
(BOOLEAN)(This == &gPs2MouseSimulateTouchPadComponentName)
(BOOLEAN)(This == &gPs2MouseAbsolutePointerComponentName)
);
}

View File

@ -13,16 +13,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#include "Ps2MouseSimulateTouchPad.h"
#include "Ps2MouseAbsolutePointer.h"
#include "CommPs2.h"
//
// DriverBinding Protocol Instance
//
EFI_DRIVER_BINDING_PROTOCOL gPS2MouseSimulateTouchPadDriver = {
PS2MouseSimulateTouchPadDriverSupported,
PS2MouseSimulateTouchPadDriverStart,
PS2MouseSimulateTouchPadDriverStop,
EFI_DRIVER_BINDING_PROTOCOL gPS2MouseAbsolutePointerDriver = {
PS2MouseAbsolutePointerDriverSupported,
PS2MouseAbsolutePointerDriverStart,
PS2MouseAbsolutePointerDriverStop,
0x1,
NULL,
NULL
@ -30,7 +30,7 @@ EFI_DRIVER_BINDING_PROTOCOL gPS2MouseSimulateTouchPadDriver = {
EFI_STATUS
EFIAPI
PS2MouseSimulateTouchPadDriverSupported (
PS2MouseAbsolutePointerDriverSupported (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
@ -110,7 +110,7 @@ Returns:
EFI_STATUS
EFIAPI
PS2MouseSimulateTouchPadDriverStart (
PS2MouseAbsolutePointerDriverStart (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
@ -134,14 +134,14 @@ Returns:
EFI_STATUS Status;
EFI_STATUS EmptyStatus;
EFI_ISA_IO_PROTOCOL *IsaIo;
PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev;
PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev;
UINT8 Data;
EFI_TPL OldTpl;
EFI_STATUS_CODE_VALUE StatusCode;
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
StatusCode = 0;
MouseSimulateTouchPadDev = NULL;
MouseAbsolutePointerDev = NULL;
IsaIo = NULL;
//
@ -195,37 +195,37 @@ Returns:
//
// Allocate private data
//
MouseSimulateTouchPadDev = AllocateZeroPool (sizeof (PS2_MOUSE_SIMULATE_TOUCHPAD_DEV));
if (MouseSimulateTouchPadDev == NULL) {
MouseAbsolutePointerDev = AllocateZeroPool (sizeof (PS2_MOUSE_ABSOLUTE_POINTER_DEV));
if (MouseAbsolutePointerDev == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto ErrorExit;
}
//
// Setup the device instance
//
MouseSimulateTouchPadDev->Signature = PS2_MOUSE_SIMULATE_TOUCHPAD_DEV_SIGNATURE;
MouseSimulateTouchPadDev->Handle = Controller;
MouseSimulateTouchPadDev->SampleRate = SSR_20;
MouseSimulateTouchPadDev->Resolution = CMR4;
MouseSimulateTouchPadDev->Scaling = SF1;
MouseSimulateTouchPadDev->DataPackageSize = 3;
MouseSimulateTouchPadDev->IsaIo = IsaIo;
MouseSimulateTouchPadDev->DevicePath = ParentDevicePath;
MouseAbsolutePointerDev->Signature = PS2_MOUSE_ABSOLUTE_POINTER_DEV_SIGNATURE;
MouseAbsolutePointerDev->Handle = Controller;
MouseAbsolutePointerDev->SampleRate = SSR_20;
MouseAbsolutePointerDev->Resolution = CMR4;
MouseAbsolutePointerDev->Scaling = SF1;
MouseAbsolutePointerDev->DataPackageSize = 3;
MouseAbsolutePointerDev->IsaIo = IsaIo;
MouseAbsolutePointerDev->DevicePath = ParentDevicePath;
//
// Resolution = 4 counts/mm
//
MouseSimulateTouchPadDev->Mode.AbsoluteMaxX = 1024;
MouseSimulateTouchPadDev->Mode.AbsoluteMinX = 0;
MouseSimulateTouchPadDev->Mode.AbsoluteMaxY = 798;
MouseSimulateTouchPadDev->Mode.AbsoluteMinY = 0;
MouseSimulateTouchPadDev->Mode.AbsoluteMaxZ = 0;
MouseSimulateTouchPadDev->Mode.AbsoluteMinZ = 0;
MouseSimulateTouchPadDev->Mode.Attributes = 0x03;
MouseAbsolutePointerDev->Mode.AbsoluteMaxX = 1024;
MouseAbsolutePointerDev->Mode.AbsoluteMinX = 0;
MouseAbsolutePointerDev->Mode.AbsoluteMaxY = 798;
MouseAbsolutePointerDev->Mode.AbsoluteMinY = 0;
MouseAbsolutePointerDev->Mode.AbsoluteMaxZ = 0;
MouseAbsolutePointerDev->Mode.AbsoluteMinZ = 0;
MouseAbsolutePointerDev->Mode.Attributes = 0x03;
MouseSimulateTouchPadDev->AbsolutePointerProtocol.Reset = MouseSimulateTouchPadReset;
MouseSimulateTouchPadDev->AbsolutePointerProtocol.GetState = MouseSimulateTouchPadGetState;
MouseSimulateTouchPadDev->AbsolutePointerProtocol.Mode = &(MouseSimulateTouchPadDev->Mode);
MouseAbsolutePointerDev->AbsolutePointerProtocol.Reset = MouseAbsolutePointerReset;
MouseAbsolutePointerDev->AbsolutePointerProtocol.GetState = MouseAbsolutePointerGetState;
MouseAbsolutePointerDev->AbsolutePointerProtocol.Mode = &(MouseAbsolutePointerDev->Mode);
//
// Initialize keyboard controller if necessary
@ -250,7 +250,7 @@ Returns:
//
// Reset the mouse
//
Status = MouseSimulateTouchPadDev->AbsolutePointerProtocol.Reset (&MouseSimulateTouchPadDev->AbsolutePointerProtocol, TRUE);
Status = MouseAbsolutePointerDev->AbsolutePointerProtocol.Reset (&MouseAbsolutePointerDev->AbsolutePointerProtocol, TRUE);
if (EFI_ERROR (Status)) {
//
// mouse not connected
@ -265,9 +265,9 @@ Returns:
Status = gBS->CreateEvent (
EVT_NOTIFY_WAIT,
TPL_NOTIFY,
MouseSimulateTouchPadWaitForInput,
MouseSimulateTouchPadDev,
&((MouseSimulateTouchPadDev->AbsolutePointerProtocol).WaitForInput)
MouseAbsolutePointerWaitForInput,
MouseAbsolutePointerDev,
&((MouseAbsolutePointerDev->AbsolutePointerProtocol).WaitForInput)
);
if (EFI_ERROR (Status)) {
Status = EFI_OUT_OF_RESOURCES;
@ -279,9 +279,9 @@ Returns:
Status = gBS->CreateEvent (
EVT_TIMER | EVT_NOTIFY_SIGNAL,
TPL_NOTIFY,
PollMouseSimulateTouchPad,
MouseSimulateTouchPadDev,
&MouseSimulateTouchPadDev->TimerEvent
PollMouseAbsolutePointer,
MouseAbsolutePointerDev,
&MouseAbsolutePointerDev->TimerEvent
);
if (EFI_ERROR (Status)) {
Status = EFI_OUT_OF_RESOURCES;
@ -290,24 +290,24 @@ Returns:
//
// Start timer to poll mouse (100 samples per second)
//
Status = gBS->SetTimer (MouseSimulateTouchPadDev->TimerEvent, TimerPeriodic, 100000);
Status = gBS->SetTimer (MouseAbsolutePointerDev->TimerEvent, TimerPeriodic, 100000);
if (EFI_ERROR (Status)) {
Status = EFI_OUT_OF_RESOURCES;
goto ErrorExit;
}
MouseSimulateTouchPadDev->ControllerNameTable = NULL;
MouseAbsolutePointerDev->ControllerNameTable = NULL;
AddUnicodeString2 (
"eng",
gPs2MouseSimulateTouchPadComponentName.SupportedLanguages,
&MouseSimulateTouchPadDev->ControllerNameTable,
gPs2MouseAbsolutePointerComponentName.SupportedLanguages,
&MouseAbsolutePointerDev->ControllerNameTable,
L"Faked PS/2 Touchpad Device",
TRUE
);
AddUnicodeString2 (
"en",
gPs2MouseSimulateTouchPadComponentName2.SupportedLanguages,
&MouseSimulateTouchPadDev->ControllerNameTable,
gPs2MouseAbsolutePointerComponentName2.SupportedLanguages,
&MouseAbsolutePointerDev->ControllerNameTable,
L"Faked PS/2 Touchpad Device",
FALSE
);
@ -319,7 +319,7 @@ Returns:
Status = gBS->InstallMultipleProtocolInterfaces (
&Controller,
&gEfiAbsolutePointerProtocolGuid,
&MouseSimulateTouchPadDev->AbsolutePointerProtocol,
&MouseAbsolutePointerDev->AbsolutePointerProtocol,
NULL
);
if (EFI_ERROR (Status)) {
@ -342,16 +342,16 @@ ErrorExit:
);
}
if ((MouseSimulateTouchPadDev != NULL) && (MouseSimulateTouchPadDev->AbsolutePointerProtocol.WaitForInput != NULL)) {
gBS->CloseEvent (MouseSimulateTouchPadDev->AbsolutePointerProtocol.WaitForInput);
if ((MouseAbsolutePointerDev != NULL) && (MouseAbsolutePointerDev->AbsolutePointerProtocol.WaitForInput != NULL)) {
gBS->CloseEvent (MouseAbsolutePointerDev->AbsolutePointerProtocol.WaitForInput);
}
if ((MouseSimulateTouchPadDev != NULL) && (MouseSimulateTouchPadDev->TimerEvent != NULL)) {
gBS->CloseEvent (MouseSimulateTouchPadDev->TimerEvent);
if ((MouseAbsolutePointerDev != NULL) && (MouseAbsolutePointerDev->TimerEvent != NULL)) {
gBS->CloseEvent (MouseAbsolutePointerDev->TimerEvent);
}
if ((MouseSimulateTouchPadDev != NULL) && (MouseSimulateTouchPadDev->ControllerNameTable != NULL)) {
FreeUnicodeStringTable (MouseSimulateTouchPadDev->ControllerNameTable);
if ((MouseAbsolutePointerDev != NULL) && (MouseAbsolutePointerDev->ControllerNameTable != NULL)) {
FreeUnicodeStringTable (MouseAbsolutePointerDev->ControllerNameTable);
}
//
// Since there will be no timer handler for mouse input any more,
@ -362,8 +362,8 @@ ErrorExit:
EmptyStatus = In8042Data (IsaIo, &Data);
}
if (MouseSimulateTouchPadDev != NULL) {
gBS->FreePool (MouseSimulateTouchPadDev);
if (MouseAbsolutePointerDev != NULL) {
gBS->FreePool (MouseAbsolutePointerDev);
}
gBS->CloseProtocol (
@ -387,7 +387,7 @@ ErrorExit:
EFI_STATUS
EFIAPI
PS2MouseSimulateTouchPadDriverStop (
PS2MouseAbsolutePointerDriverStop (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN UINTN NumberOfChildren,
@ -411,7 +411,7 @@ PS2MouseSimulateTouchPadDriverStop (
{
EFI_STATUS Status;
EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointerProtocol;
PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev;
PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev;
UINT8 Data;
Status = gBS->OpenProtocol (
@ -426,7 +426,7 @@ PS2MouseSimulateTouchPadDriverStop (
return EFI_SUCCESS;
}
MouseSimulateTouchPadDev = PS2_MOUSE_SIMULATE_TOUCHPAD_DEV_FROM_THIS (AbsolutePointerProtocol);
MouseAbsolutePointerDev = PS2_MOUSE_ABSOLUTE_POINTER_DEV_FROM_THIS (AbsolutePointerProtocol);
//
// Report that the keyboard is being disabled
@ -434,13 +434,13 @@ PS2MouseSimulateTouchPadDriverStop (
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
EFI_PROGRESS_CODE,
EFI_PERIPHERAL_MOUSE | EFI_P_PC_DISABLE,
MouseSimulateTouchPadDev->DevicePath
MouseAbsolutePointerDev->DevicePath
);
Status = gBS->UninstallProtocolInterface (
Controller,
&gEfiAbsolutePointerProtocolGuid,
&MouseSimulateTouchPadDev->AbsolutePointerProtocol
&MouseAbsolutePointerDev->AbsolutePointerProtocol
);
if (EFI_ERROR (Status)) {
return Status;
@ -448,13 +448,13 @@ PS2MouseSimulateTouchPadDriverStop (
//
// Disable mouse on keyboard controller
//
KbcDisableAux (MouseSimulateTouchPadDev->IsaIo);
KbcDisableAux (MouseAbsolutePointerDev->IsaIo);
//
// Cancel mouse data polling timer, close timer event
//
gBS->SetTimer (MouseSimulateTouchPadDev->TimerEvent, TimerCancel, 0);
gBS->CloseEvent (MouseSimulateTouchPadDev->TimerEvent);
gBS->SetTimer (MouseAbsolutePointerDev->TimerEvent, TimerCancel, 0);
gBS->CloseEvent (MouseAbsolutePointerDev->TimerEvent);
//
// Since there will be no timer handler for mouse input any more,
@ -462,12 +462,12 @@ PS2MouseSimulateTouchPadDriverStop (
//
Status = EFI_SUCCESS;
while (!EFI_ERROR (Status)) {
Status = In8042Data (MouseSimulateTouchPadDev->IsaIo, &Data);
Status = In8042Data (MouseAbsolutePointerDev->IsaIo, &Data);
}
gBS->CloseEvent (MouseSimulateTouchPadDev->AbsolutePointerProtocol.WaitForInput);
FreeUnicodeStringTable (MouseSimulateTouchPadDev->ControllerNameTable);
gBS->FreePool (MouseSimulateTouchPadDev);
gBS->CloseEvent (MouseAbsolutePointerDev->AbsolutePointerProtocol.WaitForInput);
FreeUnicodeStringTable (MouseAbsolutePointerDev->ControllerNameTable);
gBS->FreePool (MouseAbsolutePointerDev);
gBS->CloseProtocol (
Controller,
@ -488,7 +488,7 @@ PS2MouseSimulateTouchPadDriverStop (
EFI_STATUS
EFIAPI
MouseSimulateTouchPadReset (
MouseAbsolutePointerReset (
IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
)
@ -511,12 +511,12 @@ Returns:
--*/
{
EFI_STATUS Status;
PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev;
PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev;
EFI_TPL OldTpl;
BOOLEAN KeyboardEnable;
UINT8 Data;
MouseSimulateTouchPadDev = PS2_MOUSE_SIMULATE_TOUCHPAD_DEV_FROM_THIS (This);
MouseAbsolutePointerDev = PS2_MOUSE_ABSOLUTE_POINTER_DEV_FROM_THIS (This);
//
// Report reset progress code
@ -524,7 +524,7 @@ Returns:
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
EFI_PROGRESS_CODE,
EFI_PERIPHERAL_MOUSE | EFI_P_PC_RESET,
MouseSimulateTouchPadDev->DevicePath
MouseAbsolutePointerDev->DevicePath
);
KeyboardEnable = FALSE;
@ -534,28 +534,28 @@ Returns:
//
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
ZeroMem (&MouseSimulateTouchPadDev->State, sizeof (EFI_ABSOLUTE_POINTER_STATE));
MouseSimulateTouchPadDev->StateChanged = FALSE;
ZeroMem (&MouseAbsolutePointerDev->State, sizeof (EFI_ABSOLUTE_POINTER_STATE));
MouseAbsolutePointerDev->StateChanged = FALSE;
//
// Exhaust input data
//
Status = EFI_SUCCESS;
while (!EFI_ERROR (Status)) {
Status = In8042Data (MouseSimulateTouchPadDev->IsaIo, &Data);
Status = In8042Data (MouseAbsolutePointerDev->IsaIo, &Data);
}
CheckKbStatus (MouseSimulateTouchPadDev->IsaIo, &KeyboardEnable);
CheckKbStatus (MouseAbsolutePointerDev->IsaIo, &KeyboardEnable);
KbcDisableKb (MouseSimulateTouchPadDev->IsaIo);
KbcDisableKb (MouseAbsolutePointerDev->IsaIo);
MouseSimulateTouchPadDev->IsaIo->Io.Read (MouseSimulateTouchPadDev->IsaIo, EfiIsaIoWidthUint8, KBC_CMD_STS_PORT, 1, &Data);
MouseAbsolutePointerDev->IsaIo->Io.Read (MouseAbsolutePointerDev->IsaIo, EfiIsaIoWidthUint8, KBC_CMD_STS_PORT, 1, &Data);
//
// if there's data block on KBC data port, read it out
//
if ((Data & KBC_OUTB) == KBC_OUTB) {
MouseSimulateTouchPadDev->IsaIo->Io.Read (MouseSimulateTouchPadDev->IsaIo, EfiIsaIoWidthUint8, KBC_DATA_PORT, 1, &Data);
MouseAbsolutePointerDev->IsaIo->Io.Read (MouseAbsolutePointerDev->IsaIo, EfiIsaIoWidthUint8, KBC_DATA_PORT, 1, &Data);
}
Status = EFI_SUCCESS;
@ -564,35 +564,35 @@ Returns:
// This behavior is needed by performance speed. The following mouse command only succeessfully finish when mouse device is
// connected to system, so if PS2 mouse device not connect to system or user not ask for, we skip the mouse configuration and enabling
//
if (ExtendedVerification && CheckMouseSimulateTouchPadConnect (MouseSimulateTouchPadDev)) {
if (ExtendedVerification && CheckMouseAbsolutePointerConnect (MouseAbsolutePointerDev)) {
//
// Send mouse reset command and set mouse default configure
//
Status = PS2MouseReset (MouseSimulateTouchPadDev->IsaIo);
Status = PS2MouseReset (MouseAbsolutePointerDev->IsaIo);
if (EFI_ERROR (Status)) {
Status = EFI_DEVICE_ERROR;
goto Exit;
}
Status = PS2MouseSetSampleRate (MouseSimulateTouchPadDev->IsaIo, MouseSimulateTouchPadDev->SampleRate);
Status = PS2MouseSetSampleRate (MouseAbsolutePointerDev->IsaIo, MouseAbsolutePointerDev->SampleRate);
if (EFI_ERROR (Status)) {
Status = EFI_DEVICE_ERROR;
goto Exit;
}
Status = PS2MouseSetResolution (MouseSimulateTouchPadDev->IsaIo, MouseSimulateTouchPadDev->Resolution);
Status = PS2MouseSetResolution (MouseAbsolutePointerDev->IsaIo, MouseAbsolutePointerDev->Resolution);
if (EFI_ERROR (Status)) {
Status = EFI_DEVICE_ERROR;
goto Exit;
}
Status = PS2MouseSetScaling (MouseSimulateTouchPadDev->IsaIo, MouseSimulateTouchPadDev->Scaling);
Status = PS2MouseSetScaling (MouseAbsolutePointerDev->IsaIo, MouseAbsolutePointerDev->Scaling);
if (EFI_ERROR (Status)) {
Status = EFI_DEVICE_ERROR;
goto Exit;
}
Status = PS2MouseEnable (MouseSimulateTouchPadDev->IsaIo);
Status = PS2MouseEnable (MouseAbsolutePointerDev->IsaIo);
if (EFI_ERROR (Status)) {
Status = EFI_DEVICE_ERROR;
goto Exit;
@ -602,15 +602,15 @@ Exit:
gBS->RestoreTPL (OldTpl);
if (KeyboardEnable) {
KbcEnableKb (MouseSimulateTouchPadDev->IsaIo);
KbcEnableKb (MouseAbsolutePointerDev->IsaIo);
}
return Status;
}
BOOLEAN
CheckMouseSimulateTouchPadConnect (
IN PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev
CheckMouseAbsolutePointerConnect (
IN PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev
)
/*++
@ -631,7 +631,7 @@ Returns:
{
EFI_STATUS Status;
Status = PS2MouseEnable (MouseSimulateTouchPadDev->IsaIo);
Status = PS2MouseEnable (MouseAbsolutePointerDev->IsaIo);
if (!EFI_ERROR (Status)) {
return TRUE;
}
@ -641,7 +641,7 @@ Returns:
EFI_STATUS
EFIAPI
MouseSimulateTouchPadGetState (
MouseAbsolutePointerGetState (
IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
IN OUT EFI_ABSOLUTE_POINTER_STATE *State
)
@ -664,30 +664,30 @@ Returns:
--*/
{
PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev;
PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev;
EFI_TPL OldTpl;
MouseSimulateTouchPadDev = PS2_MOUSE_SIMULATE_TOUCHPAD_DEV_FROM_THIS (This);
MouseAbsolutePointerDev = PS2_MOUSE_ABSOLUTE_POINTER_DEV_FROM_THIS (This);
if (State == NULL) {
return EFI_INVALID_PARAMETER;
}
if (!MouseSimulateTouchPadDev->StateChanged) {
if (!MouseAbsolutePointerDev->StateChanged) {
return EFI_NOT_READY;
}
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
CopyMem (State, &(MouseSimulateTouchPadDev->State), sizeof (EFI_ABSOLUTE_POINTER_STATE));
CopyMem (State, &(MouseAbsolutePointerDev->State), sizeof (EFI_ABSOLUTE_POINTER_STATE));
//
// clear mouse state
//
MouseSimulateTouchPadDev->State.CurrentX = 0;
MouseSimulateTouchPadDev->State.CurrentY = 0;
MouseSimulateTouchPadDev->State.CurrentZ = 0;
MouseSimulateTouchPadDev->State.ActiveButtons = 0x0;
MouseSimulateTouchPadDev->StateChanged = FALSE;
MouseAbsolutePointerDev->State.CurrentX = 0;
MouseAbsolutePointerDev->State.CurrentY = 0;
MouseAbsolutePointerDev->State.CurrentZ = 0;
MouseAbsolutePointerDev->State.ActiveButtons = 0x0;
MouseAbsolutePointerDev->StateChanged = FALSE;
gBS->RestoreTPL (OldTpl);
return EFI_SUCCESS;
@ -695,7 +695,7 @@ Returns:
VOID
EFIAPI
MouseSimulateTouchPadWaitForInput (
MouseAbsolutePointerWaitForInput (
IN EFI_EVENT Event,
IN VOID *Context
)
@ -714,15 +714,15 @@ Returns:
// GC_TODO: Event - add argument and description to function comment
// GC_TODO: Context - add argument and description to function comment
{
PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev;
PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev;
MouseSimulateTouchPadDev = (PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *) Context;
MouseAbsolutePointerDev = (PS2_MOUSE_ABSOLUTE_POINTER_DEV *) Context;
//
// Someone is waiting on the mouse event, if there's
// input from mouse, signal the event
//
if (MouseSimulateTouchPadDev->StateChanged) {
if (MouseAbsolutePointerDev->StateChanged) {
gBS->SignalEvent (Event);
}
@ -730,7 +730,7 @@ Returns:
VOID
EFIAPI
PollMouseSimulateTouchPad(
PollMouseAbsolutePointer(
IN EFI_EVENT Event,
IN VOID *Context
)
@ -752,18 +752,18 @@ Returns:
--*/
{
PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseSimulateTouchPadDev;
PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev;
MouseSimulateTouchPadDev = (PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *) Context;
MouseAbsolutePointerDev = (PS2_MOUSE_ABSOLUTE_POINTER_DEV *) Context;
//
// Polling mouse packet data
//
PS2MouseGetPacket (MouseSimulateTouchPadDev);
PS2MouseGetPacket (MouseAbsolutePointerDev);
}
/**
The user Entry Point for module Ps2MouseSimulateTouchPad. The user code starts with this function.
The user Entry Point for module Ps2MouseAbsolutePointer. The user code starts with this function.
@param[in] ImageHandle The firmware allocated handle for the EFI image.
@param[in] SystemTable A pointer to the EFI System Table.
@ -774,7 +774,7 @@ Returns:
**/
EFI_STATUS
EFIAPI
InitializePs2MouseSimulateTouchPad(
InitializePs2MouseAbsolutePointer(
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
@ -787,10 +787,10 @@ InitializePs2MouseSimulateTouchPad(
Status = EfiLibInstallDriverBindingComponentName2 (
ImageHandle,
SystemTable,
&gPS2MouseSimulateTouchPadDriver,
&gPS2MouseAbsolutePointerDriver,
ImageHandle,
&gPs2MouseSimulateTouchPadComponentName,
&gPs2MouseSimulateTouchPadComponentName2
&gPs2MouseAbsolutePointerComponentName,
&gPs2MouseAbsolutePointerComponentName2
);
ASSERT_EFI_ERROR (Status);

View File

@ -1,5 +1,5 @@
/**@file
A faked PS/2 Touchpad driver header file
A Ps2MouseAbsolutePointer driver header file
Copyright (c) 2006 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
@ -12,8 +12,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _PS2MOUSESIMULATETOUCHPAD_H
#define _PS2MOUSESIMULATETOUCHPAD_H
#ifndef _PS2MOUSEABSOLUTEPOINTER_H
#define _PS2MOUSEABSOLUTEPOINTER_H
#include <PiDxe.h>
#include <Framework/StatusCode.h>
@ -66,7 +66,7 @@ typedef enum {
//
// Driver Private Data
//
#define PS2_MOUSE_SIMULATE_TOUCHPAD_DEV_SIGNATURE EFI_SIGNATURE_32 ('p', '2', 's', 't')
#define PS2_MOUSE_ABSOLUTE_POINTER_DEV_SIGNATURE EFI_SIGNATURE_32 ('p', '2', 's', 't')
typedef struct {
UINTN Signature;
@ -91,23 +91,23 @@ typedef struct {
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
} PS2_MOUSE_SIMULATE_TOUCHPAD_DEV;
} PS2_MOUSE_ABSOLUTE_POINTER_DEV;
#define PS2_MOUSE_SIMULATE_TOUCHPAD_DEV_FROM_THIS(a) CR (a, PS2_MOUSE_SIMULATE_TOUCHPAD_DEV, AbsolutePointerProtocol, PS2_MOUSE_SIMULATE_TOUCHPAD_DEV_SIGNATURE)
#define PS2_MOUSE_ABSOLUTE_POINTER_DEV_FROM_THIS(a) CR (a, PS2_MOUSE_ABSOLUTE_POINTER_DEV, AbsolutePointerProtocol, PS2_MOUSE_ABSOLUTE_POINTER_DEV_SIGNATURE)
//
// Global Variables
//
extern EFI_DRIVER_BINDING_PROTOCOL gPS2MouseSimulateTouchPadDriver;
extern EFI_COMPONENT_NAME_PROTOCOL gPs2MouseSimulateTouchPadComponentName;
extern EFI_COMPONENT_NAME2_PROTOCOL gPs2MouseSimulateTouchPadComponentName2;
extern EFI_DRIVER_BINDING_PROTOCOL gPS2MouseAbsolutePointerDriver;
extern EFI_COMPONENT_NAME_PROTOCOL gPs2MouseAbsolutePointerComponentName;
extern EFI_COMPONENT_NAME2_PROTOCOL gPs2MouseAbsolutePointerComponentName2;
//
// Function prototypes
//
EFI_STATUS
EFIAPI
PS2MouseSimulateTouchPadDriverSupported (
PS2MouseAbsolutePointerDriverSupported (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
@ -115,7 +115,7 @@ PS2MouseSimulateTouchPadDriverSupported (
EFI_STATUS
EFIAPI
PS2MouseSimulateTouchPadDriverStart (
PS2MouseAbsolutePointerDriverStart (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
@ -123,7 +123,7 @@ PS2MouseSimulateTouchPadDriverStart (
EFI_STATUS
EFIAPI
PS2MouseSimulateTouchPadDriverStop (
PS2MouseAbsolutePointerDriverStop (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN UINTN NumberOfChildren,
@ -174,7 +174,7 @@ PS2MouseSimulateTouchPadDriverStop (
**/
EFI_STATUS
EFIAPI
Ps2MouseSimulateTouchPadComponentNameGetDriverName (
Ps2MouseAbsolutePointerComponentNameGetDriverName (
IN EFI_COMPONENT_NAME_PROTOCOL *This,
IN CHAR8 *Language,
OUT CHAR16 **DriverName
@ -251,7 +251,7 @@ Ps2MouseSimulateTouchPadComponentNameGetDriverName (
**/
EFI_STATUS
EFIAPI
Ps2MouseSimulateTouchPadComponentNameGetControllerName (
Ps2MouseAbsolutePointerComponentNameGetControllerName (
IN EFI_COMPONENT_NAME_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_HANDLE ChildHandle OPTIONAL,
@ -262,28 +262,28 @@ Ps2MouseSimulateTouchPadComponentNameGetControllerName (
EFI_STATUS
EFIAPI
MouseSimulateTouchPadReset (
MouseAbsolutePointerReset (
IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
);
EFI_STATUS
EFIAPI
MouseSimulateTouchPadGetState (
MouseAbsolutePointerGetState (
IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
IN OUT EFI_ABSOLUTE_POINTER_STATE *State
);
VOID
EFIAPI
MouseSimulateTouchPadWaitForInput (
MouseAbsolutePointerWaitForInput (
IN EFI_EVENT Event,
IN VOID *Context
);
VOID
EFIAPI
PollMouseSimulateTouchPad (
PollMouseAbsolutePointer (
IN EFI_EVENT Event,
IN VOID *Context
);
@ -294,8 +294,8 @@ In8042Data (
IN OUT UINT8 *Data
);
BOOLEAN
CheckMouseSimulateTouchPadConnect (
IN PS2_MOUSE_SIMULATE_TOUCHPAD_DEV *MouseDev
CheckMouseAbsolutePointerConnect (
IN PS2_MOUSE_ABSOLUTE_POINTER_DEV *MouseAbsolutePointerDev
);
#endif

View File

@ -18,14 +18,14 @@
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = Ps2MouseSimulateTouchPadDxe
BASE_NAME = Ps2MouseAbsolutePointerDxe
FILE_GUID = 2899C94A-1FB6-4b1a-B96B-8364975303E0
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
EDK_RELEASE_VERSION = 0x00020000
EFI_SPECIFICATION_VERSION = 0x00020000
ENTRY_POINT = InitializePs2MouseSimulateTouchPad
ENTRY_POINT = InitializePs2MouseAbsolutePointer
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
@ -33,8 +33,8 @@
ComponentName.c
CommPs2.h
CommPs2.c
Ps2MouseSimulateTouchPad.h
Ps2MouseSimulateTouchPad.c
Ps2MouseAbsolutePointer.h
Ps2MouseAbsolutePointer.c
[Packages]
MdePkg/MdePkg.dec

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<ModuleSurfaceArea xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd" xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MsaHeader>
<ModuleName>Ps2MouseSimulateTouchPad</ModuleName>
<ModuleName>Ps2MouseAbsolutePointer</ModuleName>
<ModuleType>DXE_DRIVER</ModuleType>
<GuidValue>2899C94A-1FB6-4b1a-B96B-8364975303E0</GuidValue>
<Version>1.0</Version>
<Abstract>Ps2 Mouse Simulate Touchpad Driver</Abstract>
<Abstract>Ps2 Mouse Absolute Pointer Driver</Abstract>
<Description>This dirver directly uses IsaIo protocol service to support a faked Ps2 touchpad work.</Description>
<Copyright>Copyright (c) 2006 - 2007, Intel Corporation.</Copyright>
<License>All rights reserved. This program and the accompanying materials
@ -19,7 +19,7 @@
<ModuleDefinitions>
<SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>
<BinaryModule>false</BinaryModule>
<OutputFileBasename>Ps2MouseSimulateTouchPad</OutputFileBasename>
<OutputFileBasename>Ps2MouseAbsolutePointer</OutputFileBasename>
</ModuleDefinitions>
<LibraryClassDefinitions>
<LibraryClass Usage="ALWAYS_CONSUMED">
@ -48,8 +48,8 @@
</LibraryClass>
</LibraryClassDefinitions>
<SourceFiles>
<Filename>Ps2MouseSimulateTouchPad.c</Filename>
<Filename>Ps2MouseSimulateTouchPad.h</Filename>
<Filename>Ps2MouseAbsolutePointer.c</Filename>
<Filename>Ps2MouseAbsolutePointer.h</Filename>
<Filename>CommPs2.c</Filename>
<Filename>CommPs2.h</Filename>
<Filename>ComponentName.c</Filename>
@ -91,8 +91,8 @@
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
<Extern>
<DriverBinding>gPS2MouseSimulateTouchPadDriver</DriverBinding>
<ComponentName>gPs2MouseSimulateTouchPadComponentName</ComponentName>
<DriverBinding>gPS2MouseAbsolutePointerDriver</DriverBinding>
<ComponentName>gPs2MouseAbsolutePointerComponentName</ComponentName>
</Extern>
</Externs>
</ModuleSurfaceArea>