MdeModulePkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
committed by
mergify[bot]
parent
7c7184e201
commit
1436aea4d5
@@ -12,9 +12,9 @@
|
||||
//
|
||||
// Driver name table
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mIsaBusDriverNameTable[] = {
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mIsaBusDriverNameTable[] = {
|
||||
{ "eng;en", L"PI ISA BUS Driver" },
|
||||
{ NULL , NULL }
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
//
|
||||
@@ -29,9 +29,9 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gIsaBusComponentName
|
||||
//
|
||||
// EFI Component Name 2 Protocol
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gIsaBusComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) IsaBusComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) IsaBusComponentNameGetControllerName,
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gIsaBusComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME)IsaBusComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)IsaBusComponentNameGetControllerName,
|
||||
"en"
|
||||
};
|
||||
|
||||
@@ -91,7 +91,6 @@ IsaBusComponentNameGetDriverName (
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the controller
|
||||
that is being managed by a driver.
|
||||
@@ -163,11 +162,11 @@ IsaBusComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IsaBusComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
|
@@ -13,8 +13,8 @@
|
||||
#include <Protocol/ComponentName.h>
|
||||
#include <Protocol/ComponentName2.h>
|
||||
|
||||
extern EFI_COMPONENT_NAME_PROTOCOL gIsaBusComponentName;
|
||||
extern EFI_COMPONENT_NAME2_PROTOCOL gIsaBusComponentName2;
|
||||
extern EFI_COMPONENT_NAME_PROTOCOL gIsaBusComponentName;
|
||||
extern EFI_COMPONENT_NAME2_PROTOCOL gIsaBusComponentName2;
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the driver.
|
||||
@@ -63,7 +63,6 @@ IsaBusComponentNameGetDriverName (
|
||||
OUT CHAR16 **DriverName
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the controller
|
||||
that is being managed by a driver.
|
||||
@@ -135,11 +134,11 @@ IsaBusComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IsaBusComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@@ -43,13 +43,13 @@
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IsaBusDriverBindingSupported (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
VOID *Instance;
|
||||
EFI_STATUS Status;
|
||||
VOID *Instance;
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
@@ -61,11 +61,11 @@ IsaBusDriverBindingSupported (
|
||||
);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
gBS->CloseProtocol (
|
||||
Controller,
|
||||
&gEfiIsaHcProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
Controller,
|
||||
&gEfiIsaHcProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
@@ -82,17 +82,17 @@ IsaBusDriverBindingSupported (
|
||||
);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
gBS->CloseProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
ISA_BUS_CHILD_PRIVATE_DATA mIsaBusChildPrivateTemplate = {
|
||||
ISA_BUS_CHILD_PRIVATE_DATA mIsaBusChildPrivateTemplate = {
|
||||
ISA_BUS_CHILD_PRIVATE_DATA_SIGNATURE,
|
||||
FALSE
|
||||
};
|
||||
@@ -123,10 +123,10 @@ IsaBusCreateChild (
|
||||
IN OUT EFI_HANDLE *ChildHandle
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
ISA_BUS_PRIVATE_DATA *Private;
|
||||
EFI_ISA_HC_PROTOCOL *IsaHc;
|
||||
ISA_BUS_CHILD_PRIVATE_DATA *Child;
|
||||
EFI_STATUS Status;
|
||||
ISA_BUS_PRIVATE_DATA *Private;
|
||||
EFI_ISA_HC_PROTOCOL *IsaHc;
|
||||
ISA_BUS_CHILD_PRIVATE_DATA *Child;
|
||||
|
||||
Private = ISA_BUS_PRIVATE_DATA_FROM_THIS (This);
|
||||
|
||||
@@ -137,8 +137,10 @@ IsaBusCreateChild (
|
||||
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
ChildHandle,
|
||||
&gEfiIsaHcProtocolGuid, Private->IsaHc,
|
||||
&gEfiCallerIdGuid, Child,
|
||||
&gEfiIsaHcProtocolGuid,
|
||||
Private->IsaHc,
|
||||
&gEfiCallerIdGuid,
|
||||
Child,
|
||||
NULL
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
@@ -149,7 +151,7 @@ IsaBusCreateChild (
|
||||
return gBS->OpenProtocol (
|
||||
Private->IsaHcHandle,
|
||||
&gEfiIsaHcProtocolGuid,
|
||||
(VOID **) &IsaHc,
|
||||
(VOID **)&IsaHc,
|
||||
gIsaBusDriverBinding.DriverBindingHandle,
|
||||
*ChildHandle,
|
||||
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
|
||||
@@ -177,21 +179,21 @@ IsaBusCreateChild (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IsaBusDestroyChild (
|
||||
IN EFI_SERVICE_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
IN EFI_SERVICE_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
ISA_BUS_PRIVATE_DATA *Private;
|
||||
EFI_ISA_HC_PROTOCOL *IsaHc;
|
||||
ISA_BUS_CHILD_PRIVATE_DATA *Child;
|
||||
EFI_STATUS Status;
|
||||
ISA_BUS_PRIVATE_DATA *Private;
|
||||
EFI_ISA_HC_PROTOCOL *IsaHc;
|
||||
ISA_BUS_CHILD_PRIVATE_DATA *Child;
|
||||
|
||||
Private = ISA_BUS_PRIVATE_DATA_FROM_THIS (This);
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
ChildHandle,
|
||||
&gEfiCallerIdGuid,
|
||||
(VOID **) &Child,
|
||||
(VOID **)&Child,
|
||||
gIsaBusDriverBinding.DriverBindingHandle,
|
||||
ChildHandle,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -207,25 +209,27 @@ IsaBusDestroyChild (
|
||||
}
|
||||
|
||||
Child->InDestroying = TRUE;
|
||||
Status = gBS->CloseProtocol (
|
||||
Private->IsaHcHandle,
|
||||
&gEfiIsaHcProtocolGuid,
|
||||
gIsaBusDriverBinding.DriverBindingHandle,
|
||||
ChildHandle
|
||||
);
|
||||
Status = gBS->CloseProtocol (
|
||||
Private->IsaHcHandle,
|
||||
&gEfiIsaHcProtocolGuid,
|
||||
gIsaBusDriverBinding.DriverBindingHandle,
|
||||
ChildHandle
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||
ChildHandle,
|
||||
&gEfiIsaHcProtocolGuid, Private->IsaHc,
|
||||
&gEfiCallerIdGuid, Child,
|
||||
&gEfiIsaHcProtocolGuid,
|
||||
Private->IsaHc,
|
||||
&gEfiCallerIdGuid,
|
||||
Child,
|
||||
NULL
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
gBS->OpenProtocol (
|
||||
Private->IsaHcHandle,
|
||||
&gEfiIsaHcProtocolGuid,
|
||||
(VOID **) &IsaHc,
|
||||
(VOID **)&IsaHc,
|
||||
gIsaBusDriverBinding.DriverBindingHandle,
|
||||
ChildHandle,
|
||||
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
|
||||
@@ -242,7 +246,7 @@ IsaBusDestroyChild (
|
||||
return Status;
|
||||
}
|
||||
|
||||
ISA_BUS_PRIVATE_DATA mIsaBusPrivateTemplate = {
|
||||
ISA_BUS_PRIVATE_DATA mIsaBusPrivateTemplate = {
|
||||
ISA_BUS_PRIVATE_DATA_SIGNATURE,
|
||||
{
|
||||
IsaBusCreateChild,
|
||||
@@ -278,19 +282,19 @@ ISA_BUS_PRIVATE_DATA mIsaBusPrivateTemplate = {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IsaBusDriverBindingStart (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
ISA_BUS_PRIVATE_DATA *Private;
|
||||
EFI_STATUS Status;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
ISA_BUS_PRIVATE_DATA *Private;
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiIsaHcProtocolGuid,
|
||||
(VOID **) &mIsaBusPrivateTemplate.IsaHc,
|
||||
(VOID **)&mIsaBusPrivateTemplate.IsaHc,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -302,7 +306,7 @@ IsaBusDriverBindingStart (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &DevicePath,
|
||||
(VOID **)&DevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -324,7 +328,8 @@ IsaBusDriverBindingStart (
|
||||
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&Controller,
|
||||
&gEfiIsaHcServiceBindingProtocolGuid, &Private->ServiceBinding,
|
||||
&gEfiIsaHcServiceBindingProtocolGuid,
|
||||
&Private->ServiceBinding,
|
||||
NULL
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
@@ -350,22 +355,22 @@ IsaBusDriverBindingStart (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IsaBusDriverBindingStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding;
|
||||
ISA_BUS_PRIVATE_DATA *Private;
|
||||
UINTN Index;
|
||||
BOOLEAN AllChildrenStopped;
|
||||
EFI_STATUS Status;
|
||||
EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding;
|
||||
ISA_BUS_PRIVATE_DATA *Private;
|
||||
UINTN Index;
|
||||
BOOLEAN AllChildrenStopped;
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiIsaHcServiceBindingProtocolGuid,
|
||||
(VOID **) &ServiceBinding,
|
||||
(VOID **)&ServiceBinding,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -379,7 +384,8 @@ IsaBusDriverBindingStop (
|
||||
if (NumberOfChildren == 0) {
|
||||
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||
Controller,
|
||||
&gEfiIsaHcServiceBindingProtocolGuid, &Private->ServiceBinding,
|
||||
&gEfiIsaHcServiceBindingProtocolGuid,
|
||||
&Private->ServiceBinding,
|
||||
NULL
|
||||
);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
@@ -415,7 +421,7 @@ IsaBusDriverBindingStop (
|
||||
//
|
||||
// ISA Bus Driver Binding Protocol Instance
|
||||
//
|
||||
EFI_DRIVER_BINDING_PROTOCOL gIsaBusDriverBinding = {
|
||||
EFI_DRIVER_BINDING_PROTOCOL gIsaBusDriverBinding = {
|
||||
IsaBusDriverBindingSupported,
|
||||
IsaBusDriverBindingStart,
|
||||
IsaBusDriverBindingStop,
|
||||
@@ -440,7 +446,7 @@ InitializeIsaBus (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = EfiLibInstallDriverBindingComponentName2 (
|
||||
ImageHandle,
|
||||
|
@@ -26,15 +26,15 @@ typedef struct {
|
||||
EFI_ISA_HC_PROTOCOL *IsaHc; ///< ISA HC protocol produced by the ISA Host Controller driver
|
||||
EFI_HANDLE IsaHcHandle; ///< ISA HC handle created by the ISA Host Controller driver
|
||||
} ISA_BUS_PRIVATE_DATA;
|
||||
#define ISA_BUS_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('_', 'i', 's', 'b')
|
||||
#define ISA_BUS_PRIVATE_DATA_FROM_THIS(a) CR (a, ISA_BUS_PRIVATE_DATA, ServiceBinding, ISA_BUS_PRIVATE_DATA_SIGNATURE)
|
||||
#define ISA_BUS_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('_', 'i', 's', 'b')
|
||||
#define ISA_BUS_PRIVATE_DATA_FROM_THIS(a) CR (a, ISA_BUS_PRIVATE_DATA, ServiceBinding, ISA_BUS_PRIVATE_DATA_SIGNATURE)
|
||||
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
BOOLEAN InDestroying; ///< Flag to avoid DestroyChild() re-entry.
|
||||
UINT32 Signature;
|
||||
BOOLEAN InDestroying; ///< Flag to avoid DestroyChild() re-entry.
|
||||
} ISA_BUS_CHILD_PRIVATE_DATA;
|
||||
#define ISA_BUS_CHILD_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('_', 'i', 's', 'c')
|
||||
#define ISA_BUS_CHILD_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('_', 'i', 's', 'c')
|
||||
|
||||
extern EFI_DRIVER_BINDING_PROTOCOL gIsaBusDriverBinding;
|
||||
extern EFI_DRIVER_BINDING_PROTOCOL gIsaBusDriverBinding;
|
||||
|
||||
#endif
|
||||
|
@@ -11,6 +11,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
//
|
||||
// EFI Component Name Functions
|
||||
//
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the driver.
|
||||
|
||||
@@ -58,7 +59,6 @@ Ps2KeyboardComponentNameGetDriverName (
|
||||
OUT CHAR16 **DriverName
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the controller
|
||||
that is being managed by a driver.
|
||||
@@ -130,14 +130,13 @@ Ps2KeyboardComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
Ps2KeyboardComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
);
|
||||
|
||||
|
||||
//
|
||||
// EFI Component Name Protocol
|
||||
//
|
||||
@@ -150,14 +149,13 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gPs2KeyboardComponent
|
||||
//
|
||||
// EFI Component Name 2 Protocol
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPs2KeyboardComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) Ps2KeyboardComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) Ps2KeyboardComponentNameGetControllerName,
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPs2KeyboardComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME)Ps2KeyboardComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)Ps2KeyboardComponentNameGetControllerName,
|
||||
"en"
|
||||
};
|
||||
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPs2KeyboardDriverNameTable[] = {
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPs2KeyboardDriverNameTable[] = {
|
||||
{
|
||||
"eng;en",
|
||||
L"PS/2 Keyboard Driver"
|
||||
@@ -295,16 +293,17 @@ Ps2KeyboardComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
Ps2KeyboardComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
|
||||
//
|
||||
// This is a device driver, so ChildHandle must be NULL.
|
||||
//
|
||||
@@ -319,13 +318,14 @@ Ps2KeyboardComponentNameGetControllerName (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Get the device context
|
||||
//
|
||||
Status = gBS->OpenProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiSimpleTextInProtocolGuid,
|
||||
(VOID **) &ConIn,
|
||||
(VOID **)&ConIn,
|
||||
gKeyboardControllerDriver.DriverBindingHandle,
|
||||
ControllerHandle,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
|
||||
#include "Ps2Keyboard.h"
|
||||
|
||||
/**
|
||||
@@ -20,10 +19,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
BOOLEAN
|
||||
IsEfikeyBufEmpty (
|
||||
IN EFI_KEY_QUEUE *Queue
|
||||
IN EFI_KEY_QUEUE *Queue
|
||||
)
|
||||
{
|
||||
return (BOOLEAN) (Queue->Head == Queue->Tail);
|
||||
return (BOOLEAN)(Queue->Head == Queue->Tail);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -37,19 +36,21 @@ IsEfikeyBufEmpty (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PopEfikeyBufHead (
|
||||
IN EFI_KEY_QUEUE *Queue,
|
||||
OUT EFI_KEY_DATA *KeyData OPTIONAL
|
||||
IN EFI_KEY_QUEUE *Queue,
|
||||
OUT EFI_KEY_DATA *KeyData OPTIONAL
|
||||
)
|
||||
{
|
||||
if (IsEfikeyBufEmpty (Queue)) {
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
|
||||
//
|
||||
// Retrieve and remove the values
|
||||
//
|
||||
if (KeyData != NULL) {
|
||||
CopyMem (KeyData, &Queue->Buffer[Queue->Head], sizeof (EFI_KEY_DATA));
|
||||
}
|
||||
|
||||
Queue->Head = (Queue->Head + 1) % KEYBOARD_EFI_KEY_MAX_COUNT;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
@@ -62,8 +63,8 @@ PopEfikeyBufHead (
|
||||
**/
|
||||
VOID
|
||||
PushEfikeyBufTail (
|
||||
IN EFI_KEY_QUEUE *Queue,
|
||||
IN EFI_KEY_DATA *KeyData
|
||||
IN EFI_KEY_QUEUE *Queue,
|
||||
IN EFI_KEY_DATA *KeyData
|
||||
)
|
||||
{
|
||||
if ((Queue->Tail + 1) % KEYBOARD_EFI_KEY_MAX_COUNT == Queue->Head) {
|
||||
@@ -72,6 +73,7 @@ PushEfikeyBufTail (
|
||||
//
|
||||
PopEfikeyBufHead (Queue, NULL);
|
||||
}
|
||||
|
||||
CopyMem (&Queue->Buffer[Queue->Tail], KeyData, sizeof (EFI_KEY_DATA));
|
||||
Queue->Tail = (Queue->Tail + 1) % KEYBOARD_EFI_KEY_MAX_COUNT;
|
||||
}
|
||||
@@ -98,24 +100,27 @@ IsKeyRegistered (
|
||||
ASSERT (RegsiteredData != NULL && InputData != NULL);
|
||||
|
||||
if ((RegsiteredData->Key.ScanCode != InputData->Key.ScanCode) ||
|
||||
(RegsiteredData->Key.UnicodeChar != InputData->Key.UnicodeChar)) {
|
||||
(RegsiteredData->Key.UnicodeChar != InputData->Key.UnicodeChar))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//
|
||||
// Assume KeyShiftState/KeyToggleState = 0 in Registered key data means these state could be ignored.
|
||||
//
|
||||
if (RegsiteredData->KeyState.KeyShiftState != 0 &&
|
||||
RegsiteredData->KeyState.KeyShiftState != InputData->KeyState.KeyShiftState) {
|
||||
if ((RegsiteredData->KeyState.KeyShiftState != 0) &&
|
||||
(RegsiteredData->KeyState.KeyShiftState != InputData->KeyState.KeyShiftState))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (RegsiteredData->KeyState.KeyToggleState != 0 &&
|
||||
RegsiteredData->KeyState.KeyToggleState != InputData->KeyState.KeyToggleState) {
|
||||
|
||||
if ((RegsiteredData->KeyState.KeyToggleState != 0) &&
|
||||
(RegsiteredData->KeyState.KeyToggleState != InputData->KeyState.KeyToggleState))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -136,13 +141,13 @@ IsKeyRegistered (
|
||||
**/
|
||||
EFI_STATUS
|
||||
KeyboardReadKeyStrokeWorker (
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev,
|
||||
OUT EFI_KEY_DATA *KeyData
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev,
|
||||
OUT EFI_KEY_DATA *KeyData
|
||||
)
|
||||
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_TPL OldTpl;
|
||||
EFI_STATUS Status;
|
||||
EFI_TPL OldTpl;
|
||||
|
||||
if (KeyData == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -185,9 +190,9 @@ KeyboardEfiReset (
|
||||
IN BOOLEAN ExtendedVerification
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
EFI_TPL OldTpl;
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
EFI_TPL OldTpl;
|
||||
|
||||
ConsoleIn = KEYBOARD_CONSOLE_IN_DEV_FROM_THIS (This);
|
||||
if (ConsoleIn->KeyboardErr) {
|
||||
@@ -232,6 +237,7 @@ KeyboardEfiReset (
|
||||
ConsoleIn->DevicePath
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Report the status If keyboard is locked
|
||||
//
|
||||
@@ -261,9 +267,9 @@ KeyboardReadKeyStroke (
|
||||
OUT EFI_INPUT_KEY *Key
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
EFI_KEY_DATA KeyData;
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
EFI_KEY_DATA KeyData;
|
||||
|
||||
ConsoleIn = KEYBOARD_CONSOLE_IN_DEV_FROM_THIS (This);
|
||||
|
||||
@@ -280,21 +286,23 @@ KeyboardReadKeyStroke (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// If it is partial keystroke, skip it.
|
||||
//
|
||||
if (KeyData.Key.ScanCode == SCAN_NULL && KeyData.Key.UnicodeChar == CHAR_NULL) {
|
||||
if ((KeyData.Key.ScanCode == SCAN_NULL) && (KeyData.Key.UnicodeChar == CHAR_NULL)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// Translate the CTRL-Alpha characters to their corresponding control value
|
||||
// (ctrl-a = 0x0001 through ctrl-Z = 0x001A)
|
||||
//
|
||||
if ((KeyData.KeyState.KeyShiftState & (EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) != 0) {
|
||||
if (KeyData.Key.UnicodeChar >= L'a' && KeyData.Key.UnicodeChar <= L'z') {
|
||||
KeyData.Key.UnicodeChar = (CHAR16) (KeyData.Key.UnicodeChar - L'a' + 1);
|
||||
} else if (KeyData.Key.UnicodeChar >= L'A' && KeyData.Key.UnicodeChar <= L'Z') {
|
||||
KeyData.Key.UnicodeChar = (CHAR16) (KeyData.Key.UnicodeChar - L'A' + 1);
|
||||
if ((KeyData.Key.UnicodeChar >= L'a') && (KeyData.Key.UnicodeChar <= L'z')) {
|
||||
KeyData.Key.UnicodeChar = (CHAR16)(KeyData.Key.UnicodeChar - L'a' + 1);
|
||||
} else if ((KeyData.Key.UnicodeChar >= L'A') && (KeyData.Key.UnicodeChar <= L'Z')) {
|
||||
KeyData.Key.UnicodeChar = (CHAR16)(KeyData.Key.UnicodeChar - L'A' + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -314,15 +322,15 @@ KeyboardReadKeyStroke (
|
||||
VOID
|
||||
EFIAPI
|
||||
KeyboardWaitForKey (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
EFI_TPL OldTpl;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
EFI_KEY_DATA KeyData;
|
||||
EFI_TPL OldTpl;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
EFI_KEY_DATA KeyData;
|
||||
|
||||
ConsoleIn = (KEYBOARD_CONSOLE_IN_DEV *) Context;
|
||||
ConsoleIn = (KEYBOARD_CONSOLE_IN_DEV *)Context;
|
||||
|
||||
//
|
||||
// Enter critical section
|
||||
@@ -344,10 +352,11 @@ KeyboardWaitForKey (
|
||||
&(ConsoleIn->EfiKeyQueue.Buffer[ConsoleIn->EfiKeyQueue.Head]),
|
||||
sizeof (EFI_KEY_DATA)
|
||||
);
|
||||
if (KeyData.Key.ScanCode == SCAN_NULL && KeyData.Key.UnicodeChar == CHAR_NULL) {
|
||||
if ((KeyData.Key.ScanCode == SCAN_NULL) && (KeyData.Key.UnicodeChar == CHAR_NULL)) {
|
||||
PopEfikeyBufHead (&ConsoleIn->EfiKeyQueue, &KeyData);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// if there is pending value key, signal the event.
|
||||
//
|
||||
@@ -355,6 +364,7 @@ KeyboardWaitForKey (
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Leave critical section and return
|
||||
//
|
||||
@@ -372,8 +382,8 @@ KeyboardWaitForKey (
|
||||
VOID
|
||||
EFIAPI
|
||||
KeyboardWaitForKeyEx (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
|
||||
{
|
||||
@@ -399,7 +409,7 @@ KeyboardEfiResetEx (
|
||||
)
|
||||
|
||||
{
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
|
||||
ConsoleInDev = TEXT_INPUT_EX_KEYBOARD_CONSOLE_IN_DEV_FROM_THIS (This);
|
||||
|
||||
@@ -428,12 +438,12 @@ KeyboardEfiResetEx (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
KeyboardReadKeyStrokeEx (
|
||||
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
|
||||
OUT EFI_KEY_DATA *KeyData
|
||||
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
|
||||
OUT EFI_KEY_DATA *KeyData
|
||||
)
|
||||
|
||||
{
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
|
||||
if (KeyData == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -465,9 +475,9 @@ KeyboardSetState (
|
||||
)
|
||||
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
EFI_TPL OldTpl;
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
EFI_TPL OldTpl;
|
||||
|
||||
if (KeyToggleState == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -501,12 +511,15 @@ KeyboardSetState (
|
||||
if ((*KeyToggleState & EFI_SCROLL_LOCK_ACTIVE) == EFI_SCROLL_LOCK_ACTIVE) {
|
||||
ConsoleInDev->ScrollLock = TRUE;
|
||||
}
|
||||
|
||||
if ((*KeyToggleState & EFI_NUM_LOCK_ACTIVE) == EFI_NUM_LOCK_ACTIVE) {
|
||||
ConsoleInDev->NumLock = TRUE;
|
||||
}
|
||||
|
||||
if ((*KeyToggleState & EFI_CAPS_LOCK_ACTIVE) == EFI_CAPS_LOCK_ACTIVE) {
|
||||
ConsoleInDev->CapsLock = TRUE;
|
||||
}
|
||||
|
||||
if ((*KeyToggleState & EFI_KEY_STATE_EXPOSED) == EFI_KEY_STATE_EXPOSED) {
|
||||
ConsoleInDev->IsSupportPartialKey = TRUE;
|
||||
}
|
||||
@@ -523,7 +536,6 @@ Exit:
|
||||
gBS->RestoreTPL (OldTpl);
|
||||
|
||||
return Status;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -553,14 +565,14 @@ KeyboardRegisterKeyNotify (
|
||||
OUT VOID **NotifyHandle
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
EFI_TPL OldTpl;
|
||||
LIST_ENTRY *Link;
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *NewNotify;
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
EFI_TPL OldTpl;
|
||||
LIST_ENTRY *Link;
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *NewNotify;
|
||||
|
||||
if (KeyData == NULL || NotifyHandle == NULL || KeyNotificationFunction == NULL) {
|
||||
if ((KeyData == NULL) || (NotifyHandle == NULL) || (KeyNotificationFunction == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
@@ -584,7 +596,7 @@ KeyboardRegisterKeyNotify (
|
||||
if (IsKeyRegistered (&CurrentNotify->KeyData, KeyData)) {
|
||||
if (CurrentNotify->KeyNotificationFn == KeyNotificationFunction) {
|
||||
*NotifyHandle = CurrentNotify;
|
||||
Status = EFI_SUCCESS;
|
||||
Status = EFI_SUCCESS;
|
||||
goto Exit;
|
||||
}
|
||||
}
|
||||
@@ -593,7 +605,7 @@ KeyboardRegisterKeyNotify (
|
||||
//
|
||||
// Allocate resource to save the notification function
|
||||
//
|
||||
NewNotify = (KEYBOARD_CONSOLE_IN_EX_NOTIFY *) AllocateZeroPool (sizeof (KEYBOARD_CONSOLE_IN_EX_NOTIFY));
|
||||
NewNotify = (KEYBOARD_CONSOLE_IN_EX_NOTIFY *)AllocateZeroPool (sizeof (KEYBOARD_CONSOLE_IN_EX_NOTIFY));
|
||||
if (NewNotify == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto Exit;
|
||||
@@ -604,8 +616,8 @@ KeyboardRegisterKeyNotify (
|
||||
CopyMem (&NewNotify->KeyData, KeyData, sizeof (EFI_KEY_DATA));
|
||||
InsertTailList (&ConsoleInDev->NotifyList, &NewNotify->NotifyEntry);
|
||||
|
||||
*NotifyHandle = NewNotify;
|
||||
Status = EFI_SUCCESS;
|
||||
*NotifyHandle = NewNotify;
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
Exit:
|
||||
//
|
||||
@@ -613,7 +625,6 @@ Exit:
|
||||
//
|
||||
gBS->RestoreTPL (OldTpl);
|
||||
return Status;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -634,11 +645,11 @@ KeyboardUnregisterKeyNotify (
|
||||
IN VOID *NotificationHandle
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
EFI_TPL OldTpl;
|
||||
LIST_ENTRY *Link;
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleInDev;
|
||||
EFI_TPL OldTpl;
|
||||
LIST_ENTRY *Link;
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
|
||||
|
||||
if (NotificationHandle == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -691,19 +702,19 @@ Exit:
|
||||
VOID
|
||||
EFIAPI
|
||||
KeyNotifyProcessHandler (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
EFI_KEY_DATA KeyData;
|
||||
LIST_ENTRY *Link;
|
||||
LIST_ENTRY *NotifyList;
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
|
||||
EFI_TPL OldTpl;
|
||||
EFI_STATUS Status;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
EFI_KEY_DATA KeyData;
|
||||
LIST_ENTRY *Link;
|
||||
LIST_ENTRY *NotifyList;
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
|
||||
EFI_TPL OldTpl;
|
||||
|
||||
ConsoleIn = (KEYBOARD_CONSOLE_IN_DEV *) Context;
|
||||
ConsoleIn = (KEYBOARD_CONSOLE_IN_DEV *)Context;
|
||||
|
||||
//
|
||||
// Invoke notification functions.
|
||||
@@ -722,6 +733,7 @@ KeyNotifyProcessHandler (
|
||||
if (EFI_ERROR (Status)) {
|
||||
break;
|
||||
}
|
||||
|
||||
for (Link = GetFirstNode (NotifyList); !IsNull (NotifyList, Link); Link = GetNextNode (NotifyList, Link)) {
|
||||
CurrentNotify = CR (Link, KEYBOARD_CONSOLE_IN_EX_NOTIFY, NotifyEntry, KEYBOARD_CONSOLE_IN_EX_NOTIFY_SIGNATURE);
|
||||
if (IsKeyRegistered (&CurrentNotify->KeyData, &KeyData)) {
|
||||
@@ -730,4 +742,3 @@ KeyNotifyProcessHandler (
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -13,6 +13,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
//
|
||||
// Function prototypes
|
||||
//
|
||||
|
||||
/**
|
||||
Test controller is a keyboard Controller.
|
||||
|
||||
@@ -26,9 +27,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
KbdControllerDriverSupported (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -43,9 +44,9 @@ KbdControllerDriverSupported (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
KbdControllerDriverStart (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -65,10 +66,10 @@ KbdControllerDriverStart (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
KbdControllerDriverStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -81,13 +82,13 @@ KbdControllerDriverStop (
|
||||
**/
|
||||
EFI_STATUS
|
||||
KbdFreeNotifyList (
|
||||
IN OUT LIST_ENTRY *ListHead
|
||||
IN OUT LIST_ENTRY *ListHead
|
||||
);
|
||||
|
||||
//
|
||||
// DriverBinding Protocol Instance
|
||||
//
|
||||
EFI_DRIVER_BINDING_PROTOCOL gKeyboardControllerDriver = {
|
||||
EFI_DRIVER_BINDING_PROTOCOL gKeyboardControllerDriver = {
|
||||
KbdControllerDriverSupported,
|
||||
KbdControllerDriverStart,
|
||||
KbdControllerDriverStop,
|
||||
@@ -109,15 +110,15 @@ EFI_DRIVER_BINDING_PROTOCOL gKeyboardControllerDriver = {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
KbdControllerDriverSupported (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SIO_PROTOCOL *Sio;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
ACPI_HID_DEVICE_PATH *Acpi;
|
||||
EFI_STATUS Status;
|
||||
EFI_SIO_PROTOCOL *Sio;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
ACPI_HID_DEVICE_PATH *Acpi;
|
||||
|
||||
//
|
||||
// Check whether the controller is keyboard.
|
||||
@@ -125,7 +126,7 @@ KbdControllerDriverSupported (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &DevicePath,
|
||||
(VOID **)&DevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -135,16 +136,17 @@ KbdControllerDriverSupported (
|
||||
}
|
||||
|
||||
do {
|
||||
Acpi = (ACPI_HID_DEVICE_PATH *) DevicePath;
|
||||
Acpi = (ACPI_HID_DEVICE_PATH *)DevicePath;
|
||||
DevicePath = NextDevicePathNode (DevicePath);
|
||||
} while (!IsDevicePathEnd (DevicePath));
|
||||
|
||||
if (DevicePathType (Acpi) != ACPI_DEVICE_PATH ||
|
||||
(DevicePathSubType (Acpi) != ACPI_DP && DevicePathSubType (Acpi) != ACPI_EXTENDED_DP)) {
|
||||
if ((DevicePathType (Acpi) != ACPI_DEVICE_PATH) ||
|
||||
((DevicePathSubType (Acpi) != ACPI_DP) && (DevicePathSubType (Acpi) != ACPI_EXTENDED_DP)))
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
if (Acpi->HID != EISA_PNP_ID (0x303) || Acpi->UID != 0) {
|
||||
if ((Acpi->HID != EISA_PNP_ID (0x303)) || (Acpi->UID != 0)) {
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
@@ -154,7 +156,7 @@ KbdControllerDriverSupported (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiSioProtocolGuid,
|
||||
(VOID **) &Sio,
|
||||
(VOID **)&Sio,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -188,25 +190,25 @@ KbdControllerDriverSupported (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
KbdControllerDriverStart (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status1;
|
||||
EFI_SIO_PROTOCOL *Sio;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
UINT8 Data;
|
||||
EFI_STATUS_CODE_VALUE StatusCode;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status1;
|
||||
EFI_SIO_PROTOCOL *Sio;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
UINT8 Data;
|
||||
EFI_STATUS_CODE_VALUE StatusCode;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
|
||||
StatusCode = 0;
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &DevicePath,
|
||||
(VOID **)&DevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -214,6 +216,7 @@ KbdControllerDriverStart (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Report that the keyboard is being enabled
|
||||
//
|
||||
@@ -229,7 +232,7 @@ KbdControllerDriverStart (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiSioProtocolGuid,
|
||||
(VOID **) &Sio,
|
||||
(VOID **)&Sio,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -237,15 +240,17 @@ KbdControllerDriverStart (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Allocate private data
|
||||
//
|
||||
ConsoleIn = AllocateZeroPool (sizeof (KEYBOARD_CONSOLE_IN_DEV));
|
||||
if (ConsoleIn == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
//
|
||||
// Setup the device instance
|
||||
//
|
||||
@@ -283,8 +288,8 @@ KbdControllerDriverStart (
|
||||
// If nobody decodes KBC I/O port, it will read back as 0xFF.
|
||||
// Check the Time-Out and Parity bit to see if it has an active KBC in system
|
||||
//
|
||||
Status = EFI_DEVICE_ERROR;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;
|
||||
Status = EFI_DEVICE_ERROR;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;
|
||||
goto ErrorExit;
|
||||
}
|
||||
}
|
||||
@@ -300,10 +305,11 @@ KbdControllerDriverStart (
|
||||
&((ConsoleIn->ConIn).WaitForKey)
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
//
|
||||
// Setup the WaitForKeyEx event
|
||||
//
|
||||
@@ -315,10 +321,11 @@ KbdControllerDriverStart (
|
||||
&(ConsoleIn->ConInEx.WaitForKeyEx)
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
// Setup a periodic timer, used for reading keystrokes at a fixed interval
|
||||
//
|
||||
Status = gBS->CreateEvent (
|
||||
@@ -329,8 +336,8 @@ KbdControllerDriverStart (
|
||||
&ConsoleIn->TimerEvent
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
@@ -340,8 +347,8 @@ KbdControllerDriverStart (
|
||||
KEYBOARD_TIMER_INTERVAL
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
@@ -353,8 +360,8 @@ KbdControllerDriverStart (
|
||||
&ConsoleIn->KeyNotifyProcessEvent
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
@@ -369,8 +376,8 @@ KbdControllerDriverStart (
|
||||
//
|
||||
Status = ConsoleIn->ConInEx.Reset (&ConsoleIn->ConInEx, FeaturePcdGet (PcdPs2KbdExtendedVerification));
|
||||
if (EFI_ERROR (Status)) {
|
||||
Status = EFI_DEVICE_ERROR;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;
|
||||
Status = EFI_DEVICE_ERROR;
|
||||
StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
@@ -396,7 +403,6 @@ KbdControllerDriverStart (
|
||||
FALSE
|
||||
);
|
||||
|
||||
|
||||
//
|
||||
// Install protocol interfaces for the keyboard device.
|
||||
//
|
||||
@@ -434,16 +440,20 @@ ErrorExit:
|
||||
if ((ConsoleIn != NULL) && (ConsoleIn->TimerEvent != NULL)) {
|
||||
gBS->CloseEvent (ConsoleIn->TimerEvent);
|
||||
}
|
||||
|
||||
if ((ConsoleIn != NULL) && (ConsoleIn->ConInEx.WaitForKeyEx != NULL)) {
|
||||
gBS->CloseEvent (ConsoleIn->ConInEx.WaitForKeyEx);
|
||||
}
|
||||
|
||||
if ((ConsoleIn != NULL) && (ConsoleIn->KeyNotifyProcessEvent != NULL)) {
|
||||
gBS->CloseEvent (ConsoleIn->KeyNotifyProcessEvent);
|
||||
}
|
||||
|
||||
KbdFreeNotifyList (&ConsoleIn->NotifyList);
|
||||
if ((ConsoleIn != NULL) && (ConsoleIn->ControllerNameTable != NULL)) {
|
||||
FreeUnicodeStringTable (ConsoleIn->ControllerNameTable);
|
||||
}
|
||||
|
||||
//
|
||||
// Since there will be no timer handler for keyboard input any more,
|
||||
// exhaust input data just in case there is still keyboard data left
|
||||
@@ -451,7 +461,7 @@ ErrorExit:
|
||||
if (ConsoleIn != NULL) {
|
||||
Status1 = EFI_SUCCESS;
|
||||
while (!EFI_ERROR (Status1) && (Status != EFI_DEVICE_ERROR)) {
|
||||
Status1 = KeyboardRead (ConsoleIn, &Data);;
|
||||
Status1 = KeyboardRead (ConsoleIn, &Data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -486,16 +496,16 @@ ErrorExit:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
KbdControllerDriverStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
UINT8 Data;
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
|
||||
KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;
|
||||
UINT8 Data;
|
||||
|
||||
//
|
||||
// Disable Keyboard
|
||||
@@ -503,7 +513,7 @@ KbdControllerDriverStop (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiSimpleTextInProtocolGuid,
|
||||
(VOID **) &ConIn,
|
||||
(VOID **)&ConIn,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -511,6 +521,7 @@ KbdControllerDriverStop (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiSimpleTextInputExProtocolGuid,
|
||||
@@ -545,8 +556,9 @@ KbdControllerDriverStop (
|
||||
//
|
||||
Status = EFI_SUCCESS;
|
||||
while (!EFI_ERROR (Status)) {
|
||||
Status = KeyboardRead (ConsoleIn, &Data);;
|
||||
Status = KeyboardRead (ConsoleIn, &Data);
|
||||
}
|
||||
|
||||
//
|
||||
// Uninstall the SimpleTextIn and SimpleTextInEx protocols
|
||||
//
|
||||
@@ -576,14 +588,17 @@ KbdControllerDriverStop (
|
||||
gBS->CloseEvent ((ConsoleIn->ConIn).WaitForKey);
|
||||
(ConsoleIn->ConIn).WaitForKey = NULL;
|
||||
}
|
||||
|
||||
if (ConsoleIn->ConInEx.WaitForKeyEx != NULL) {
|
||||
gBS->CloseEvent (ConsoleIn->ConInEx.WaitForKeyEx);
|
||||
ConsoleIn->ConInEx.WaitForKeyEx = NULL;
|
||||
}
|
||||
|
||||
if (ConsoleIn->KeyNotifyProcessEvent != NULL) {
|
||||
gBS->CloseEvent (ConsoleIn->KeyNotifyProcessEvent);
|
||||
ConsoleIn->KeyNotifyProcessEvent = NULL;
|
||||
}
|
||||
|
||||
KbdFreeNotifyList (&ConsoleIn->NotifyList);
|
||||
FreeUnicodeStringTable (ConsoleIn->ControllerNameTable);
|
||||
gBS->FreePool (ConsoleIn);
|
||||
@@ -601,14 +616,15 @@ KbdControllerDriverStop (
|
||||
**/
|
||||
EFI_STATUS
|
||||
KbdFreeNotifyList (
|
||||
IN OUT LIST_ENTRY *ListHead
|
||||
IN OUT LIST_ENTRY *ListHead
|
||||
)
|
||||
{
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *NotifyNode;
|
||||
KEYBOARD_CONSOLE_IN_EX_NOTIFY *NotifyNode;
|
||||
|
||||
if (ListHead == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
while (!IsListEmpty (ListHead)) {
|
||||
NotifyNode = CR (
|
||||
ListHead->ForwardLink,
|
||||
@@ -635,12 +651,12 @@ KbdFreeNotifyList (
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
InitializePs2Keyboard(
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
InitializePs2Keyboard (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// Install driver model protocol(s).
|
||||
@@ -655,7 +671,5 @@ InitializePs2Keyboard(
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@@ -41,79 +41,79 @@ extern EFI_COMPONENT_NAME2_PROTOCOL gPs2KeyboardComponentName2;
|
||||
//
|
||||
// Driver Private Data
|
||||
//
|
||||
#define KEYBOARD_CONSOLE_IN_DEV_SIGNATURE SIGNATURE_32 ('k', 'k', 'e', 'y')
|
||||
#define KEYBOARD_CONSOLE_IN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('k', 'c', 'e', 'n')
|
||||
#define KEYBOARD_CONSOLE_IN_DEV_SIGNATURE SIGNATURE_32 ('k', 'k', 'e', 'y')
|
||||
#define KEYBOARD_CONSOLE_IN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('k', 'c', 'e', 'n')
|
||||
|
||||
typedef struct _KEYBOARD_CONSOLE_IN_EX_NOTIFY {
|
||||
UINTN Signature;
|
||||
EFI_KEY_DATA KeyData;
|
||||
EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;
|
||||
LIST_ENTRY NotifyEntry;
|
||||
UINTN Signature;
|
||||
EFI_KEY_DATA KeyData;
|
||||
EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;
|
||||
LIST_ENTRY NotifyEntry;
|
||||
} KEYBOARD_CONSOLE_IN_EX_NOTIFY;
|
||||
|
||||
#define KEYBOARD_SCAN_CODE_MAX_COUNT 32
|
||||
typedef struct {
|
||||
UINT8 Buffer[KEYBOARD_SCAN_CODE_MAX_COUNT];
|
||||
UINTN Head;
|
||||
UINTN Tail;
|
||||
UINT8 Buffer[KEYBOARD_SCAN_CODE_MAX_COUNT];
|
||||
UINTN Head;
|
||||
UINTN Tail;
|
||||
} SCAN_CODE_QUEUE;
|
||||
|
||||
#define KEYBOARD_EFI_KEY_MAX_COUNT 256
|
||||
#define KEYBOARD_EFI_KEY_MAX_COUNT 256
|
||||
typedef struct {
|
||||
EFI_KEY_DATA Buffer[KEYBOARD_EFI_KEY_MAX_COUNT];
|
||||
UINTN Head;
|
||||
UINTN Tail;
|
||||
EFI_KEY_DATA Buffer[KEYBOARD_EFI_KEY_MAX_COUNT];
|
||||
UINTN Head;
|
||||
UINTN Tail;
|
||||
} EFI_KEY_QUEUE;
|
||||
|
||||
typedef struct {
|
||||
UINTN Signature;
|
||||
UINTN Signature;
|
||||
|
||||
EFI_HANDLE Handle;
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL ConIn;
|
||||
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL ConInEx;
|
||||
EFI_HANDLE Handle;
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL ConIn;
|
||||
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL ConInEx;
|
||||
|
||||
EFI_EVENT TimerEvent;
|
||||
EFI_EVENT TimerEvent;
|
||||
|
||||
UINT32 DataRegisterAddress;
|
||||
UINT32 StatusRegisterAddress;
|
||||
UINT32 CommandRegisterAddress;
|
||||
UINT32 DataRegisterAddress;
|
||||
UINT32 StatusRegisterAddress;
|
||||
UINT32 CommandRegisterAddress;
|
||||
|
||||
BOOLEAN LeftCtrl;
|
||||
BOOLEAN RightCtrl;
|
||||
BOOLEAN LeftAlt;
|
||||
BOOLEAN RightAlt;
|
||||
BOOLEAN LeftShift;
|
||||
BOOLEAN RightShift;
|
||||
BOOLEAN LeftLogo;
|
||||
BOOLEAN RightLogo;
|
||||
BOOLEAN Menu;
|
||||
BOOLEAN SysReq;
|
||||
BOOLEAN LeftCtrl;
|
||||
BOOLEAN RightCtrl;
|
||||
BOOLEAN LeftAlt;
|
||||
BOOLEAN RightAlt;
|
||||
BOOLEAN LeftShift;
|
||||
BOOLEAN RightShift;
|
||||
BOOLEAN LeftLogo;
|
||||
BOOLEAN RightLogo;
|
||||
BOOLEAN Menu;
|
||||
BOOLEAN SysReq;
|
||||
|
||||
BOOLEAN CapsLock;
|
||||
BOOLEAN NumLock;
|
||||
BOOLEAN ScrollLock;
|
||||
BOOLEAN CapsLock;
|
||||
BOOLEAN NumLock;
|
||||
BOOLEAN ScrollLock;
|
||||
|
||||
BOOLEAN IsSupportPartialKey;
|
||||
BOOLEAN IsSupportPartialKey;
|
||||
//
|
||||
// Queue storing key scancodes
|
||||
//
|
||||
SCAN_CODE_QUEUE ScancodeQueue;
|
||||
EFI_KEY_QUEUE EfiKeyQueue;
|
||||
EFI_KEY_QUEUE EfiKeyQueueForNotify;
|
||||
SCAN_CODE_QUEUE ScancodeQueue;
|
||||
EFI_KEY_QUEUE EfiKeyQueue;
|
||||
EFI_KEY_QUEUE EfiKeyQueueForNotify;
|
||||
|
||||
//
|
||||
// Error state
|
||||
//
|
||||
BOOLEAN KeyboardErr;
|
||||
BOOLEAN KeyboardErr;
|
||||
|
||||
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
|
||||
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
|
||||
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
//
|
||||
// Notification Function List
|
||||
//
|
||||
LIST_ENTRY NotifyList;
|
||||
EFI_EVENT KeyNotifyProcessEvent;
|
||||
LIST_ENTRY NotifyList;
|
||||
EFI_EVENT KeyNotifyProcessEvent;
|
||||
} KEYBOARD_CONSOLE_IN_DEV;
|
||||
|
||||
#define KEYBOARD_CONSOLE_IN_DEV_FROM_THIS(a) CR (a, KEYBOARD_CONSOLE_IN_DEV, ConIn, KEYBOARD_CONSOLE_IN_DEV_SIGNATURE)
|
||||
@@ -124,11 +124,12 @@ typedef struct {
|
||||
KEYBOARD_CONSOLE_IN_DEV_SIGNATURE \
|
||||
)
|
||||
|
||||
#define TABLE_END 0x0
|
||||
#define TABLE_END 0x0
|
||||
|
||||
//
|
||||
// Driver entry point
|
||||
//
|
||||
|
||||
/**
|
||||
The user Entry Point for module Ps2Keyboard. The user code starts with this function.
|
||||
|
||||
@@ -142,58 +143,57 @@ typedef struct {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
InstallPs2KeyboardDriver (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
);
|
||||
|
||||
#define KEYBOARD_8042_DATA_REGISTER 0x60
|
||||
#define KEYBOARD_8042_STATUS_REGISTER 0x64
|
||||
#define KEYBOARD_8042_COMMAND_REGISTER 0x64
|
||||
|
||||
#define KEYBOARD_KBEN 0xF4
|
||||
#define KEYBOARD_CMDECHO_ACK 0xFA
|
||||
#define KEYBOARD_KBEN 0xF4
|
||||
#define KEYBOARD_CMDECHO_ACK 0xFA
|
||||
|
||||
#define KEYBOARD_MAX_TRY 256 // 256
|
||||
#define KEYBOARD_TIMEOUT 65536 // 0.07s
|
||||
#define KEYBOARD_WAITFORVALUE_TIMEOUT 1000000 // 1s
|
||||
#define KEYBOARD_BAT_TIMEOUT 4000000 // 4s
|
||||
#define KEYBOARD_TIMER_INTERVAL 200000 // 0.02s
|
||||
#define SCANCODE_EXTENDED0 0xE0
|
||||
#define SCANCODE_EXTENDED1 0xE1
|
||||
#define SCANCODE_CTRL_MAKE 0x1D
|
||||
#define SCANCODE_CTRL_BREAK 0x9D
|
||||
#define SCANCODE_ALT_MAKE 0x38
|
||||
#define SCANCODE_ALT_BREAK 0xB8
|
||||
#define SCANCODE_LEFT_SHIFT_MAKE 0x2A
|
||||
#define SCANCODE_LEFT_SHIFT_BREAK 0xAA
|
||||
#define SCANCODE_RIGHT_SHIFT_MAKE 0x36
|
||||
#define SCANCODE_RIGHT_SHIFT_BREAK 0xB6
|
||||
#define SCANCODE_CAPS_LOCK_MAKE 0x3A
|
||||
#define SCANCODE_NUM_LOCK_MAKE 0x45
|
||||
#define SCANCODE_SCROLL_LOCK_MAKE 0x46
|
||||
#define SCANCODE_DELETE_MAKE 0x53
|
||||
#define SCANCODE_LEFT_LOGO_MAKE 0x5B //GUI key defined in Keyboard scan code
|
||||
#define SCANCODE_LEFT_LOGO_BREAK 0xDB
|
||||
#define SCANCODE_RIGHT_LOGO_MAKE 0x5C
|
||||
#define SCANCODE_RIGHT_LOGO_BREAK 0xDC
|
||||
#define SCANCODE_MENU_MAKE 0x5D //APPS key defined in Keyboard scan code
|
||||
#define SCANCODE_MENU_BREAK 0xDD
|
||||
#define SCANCODE_SYS_REQ_MAKE 0x37
|
||||
#define SCANCODE_SYS_REQ_BREAK 0xB7
|
||||
#define SCANCODE_SYS_REQ_MAKE_WITH_ALT 0x54
|
||||
#define SCANCODE_SYS_REQ_BREAK_WITH_ALT 0xD4
|
||||
#define KEYBOARD_MAX_TRY 256 // 256
|
||||
#define KEYBOARD_TIMEOUT 65536 // 0.07s
|
||||
#define KEYBOARD_WAITFORVALUE_TIMEOUT 1000000 // 1s
|
||||
#define KEYBOARD_BAT_TIMEOUT 4000000 // 4s
|
||||
#define KEYBOARD_TIMER_INTERVAL 200000 // 0.02s
|
||||
#define SCANCODE_EXTENDED0 0xE0
|
||||
#define SCANCODE_EXTENDED1 0xE1
|
||||
#define SCANCODE_CTRL_MAKE 0x1D
|
||||
#define SCANCODE_CTRL_BREAK 0x9D
|
||||
#define SCANCODE_ALT_MAKE 0x38
|
||||
#define SCANCODE_ALT_BREAK 0xB8
|
||||
#define SCANCODE_LEFT_SHIFT_MAKE 0x2A
|
||||
#define SCANCODE_LEFT_SHIFT_BREAK 0xAA
|
||||
#define SCANCODE_RIGHT_SHIFT_MAKE 0x36
|
||||
#define SCANCODE_RIGHT_SHIFT_BREAK 0xB6
|
||||
#define SCANCODE_CAPS_LOCK_MAKE 0x3A
|
||||
#define SCANCODE_NUM_LOCK_MAKE 0x45
|
||||
#define SCANCODE_SCROLL_LOCK_MAKE 0x46
|
||||
#define SCANCODE_DELETE_MAKE 0x53
|
||||
#define SCANCODE_LEFT_LOGO_MAKE 0x5B// GUI key defined in Keyboard scan code
|
||||
#define SCANCODE_LEFT_LOGO_BREAK 0xDB
|
||||
#define SCANCODE_RIGHT_LOGO_MAKE 0x5C
|
||||
#define SCANCODE_RIGHT_LOGO_BREAK 0xDC
|
||||
#define SCANCODE_MENU_MAKE 0x5D// APPS key defined in Keyboard scan code
|
||||
#define SCANCODE_MENU_BREAK 0xDD
|
||||
#define SCANCODE_SYS_REQ_MAKE 0x37
|
||||
#define SCANCODE_SYS_REQ_BREAK 0xB7
|
||||
#define SCANCODE_SYS_REQ_MAKE_WITH_ALT 0x54
|
||||
#define SCANCODE_SYS_REQ_BREAK_WITH_ALT 0xD4
|
||||
|
||||
#define SCANCODE_MAX_MAKE 0x60
|
||||
#define SCANCODE_MAX_MAKE 0x60
|
||||
|
||||
|
||||
#define KEYBOARD_STATUS_REGISTER_HAS_OUTPUT_DATA BIT0 ///< 0 - Output register has no data; 1 - Output register has data
|
||||
#define KEYBOARD_STATUS_REGISTER_HAS_INPUT_DATA BIT1 ///< 0 - Input register has no data; 1 - Input register has data
|
||||
#define KEYBOARD_STATUS_REGISTER_SYSTEM_FLAG BIT2 ///< Set to 0 after power on reset
|
||||
#define KEYBOARD_STATUS_REGISTER_INPUT_DATA_TYPE BIT3 ///< 0 - Data in input register is data; 1 - Data in input register is command
|
||||
#define KEYBOARD_STATUS_REGISTER_ENABLE_FLAG BIT4 ///< 0 - Keyboard is disable; 1 - Keyboard is enable
|
||||
#define KEYBOARD_STATUS_REGISTER_TRANSMIT_TIMEOUT BIT5 ///< 0 - Transmit is complete without timeout; 1 - Transmit is timeout without complete
|
||||
#define KEYBOARD_STATUS_REGISTER_RECEIVE_TIMEOUT BIT6 ///< 0 - Receive is complete without timeout; 1 - Receive is timeout without complete
|
||||
#define KEYBOARD_STATUS_REGISTER_PARITY BIT7 ///< 0 - Odd parity; 1 - Even parity
|
||||
#define KEYBOARD_STATUS_REGISTER_HAS_OUTPUT_DATA BIT0 ///< 0 - Output register has no data; 1 - Output register has data
|
||||
#define KEYBOARD_STATUS_REGISTER_HAS_INPUT_DATA BIT1 ///< 0 - Input register has no data; 1 - Input register has data
|
||||
#define KEYBOARD_STATUS_REGISTER_SYSTEM_FLAG BIT2 ///< Set to 0 after power on reset
|
||||
#define KEYBOARD_STATUS_REGISTER_INPUT_DATA_TYPE BIT3 ///< 0 - Data in input register is data; 1 - Data in input register is command
|
||||
#define KEYBOARD_STATUS_REGISTER_ENABLE_FLAG BIT4 ///< 0 - Keyboard is disable; 1 - Keyboard is enable
|
||||
#define KEYBOARD_STATUS_REGISTER_TRANSMIT_TIMEOUT BIT5 ///< 0 - Transmit is complete without timeout; 1 - Transmit is timeout without complete
|
||||
#define KEYBOARD_STATUS_REGISTER_RECEIVE_TIMEOUT BIT6 ///< 0 - Receive is complete without timeout; 1 - Receive is timeout without complete
|
||||
#define KEYBOARD_STATUS_REGISTER_PARITY BIT7 ///< 0 - Odd parity; 1 - Even parity
|
||||
|
||||
#define KEYBOARD_8042_COMMAND_READ 0x20
|
||||
#define KEYBOARD_8042_COMMAND_WRITE 0x60
|
||||
@@ -203,14 +203,13 @@ InstallPs2KeyboardDriver (
|
||||
#define KEYBOARD_8042_COMMAND_KEYBOARD_INTERFACE_SELF_TEST 0xAB
|
||||
#define KEYBOARD_8042_COMMAND_DISABLE_KEYBOARD_INTERFACE 0xAD
|
||||
|
||||
#define KEYBOARD_8048_COMMAND_CLEAR_OUTPUT_DATA 0xF4
|
||||
#define KEYBOARD_8048_COMMAND_RESET 0xFF
|
||||
#define KEYBOARD_8048_COMMAND_SELECT_SCAN_CODE_SET 0xF0
|
||||
|
||||
#define KEYBOARD_8048_RETURN_8042_BAT_SUCCESS 0xAA
|
||||
#define KEYBOARD_8048_RETURN_8042_BAT_ERROR 0xFC
|
||||
#define KEYBOARD_8048_RETURN_8042_ACK 0xFA
|
||||
#define KEYBOARD_8048_COMMAND_CLEAR_OUTPUT_DATA 0xF4
|
||||
#define KEYBOARD_8048_COMMAND_RESET 0xFF
|
||||
#define KEYBOARD_8048_COMMAND_SELECT_SCAN_CODE_SET 0xF0
|
||||
|
||||
#define KEYBOARD_8048_RETURN_8042_BAT_SUCCESS 0xAA
|
||||
#define KEYBOARD_8048_RETURN_8042_BAT_ERROR 0xFC
|
||||
#define KEYBOARD_8048_RETURN_8042_ACK 0xFA
|
||||
|
||||
//
|
||||
// Keyboard Controller Status
|
||||
@@ -221,6 +220,7 @@ InstallPs2KeyboardDriver (
|
||||
//
|
||||
// Other functions that are used among .c files
|
||||
//
|
||||
|
||||
/**
|
||||
Show keyboard status lights according to
|
||||
indicators in ConsoleIn.
|
||||
@@ -232,7 +232,7 @@ InstallPs2KeyboardDriver (
|
||||
**/
|
||||
EFI_STATUS
|
||||
UpdateStatusLights (
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleIn
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleIn
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -261,7 +261,7 @@ KeyboardRead (
|
||||
**/
|
||||
VOID
|
||||
KeyGetchar (
|
||||
IN OUT KEYBOARD_CONSOLE_IN_DEV *ConsoleIn
|
||||
IN OUT KEYBOARD_CONSOLE_IN_DEV *ConsoleIn
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -273,8 +273,8 @@ KeyGetchar (
|
||||
VOID
|
||||
EFIAPI
|
||||
KeyNotifyProcessHandler (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -290,11 +290,10 @@ KeyNotifyProcessHandler (
|
||||
**/
|
||||
EFI_STATUS
|
||||
InitKeyboard (
|
||||
IN OUT KEYBOARD_CONSOLE_IN_DEV *ConsoleIn,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN OUT KEYBOARD_CONSOLE_IN_DEV *ConsoleIn,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Timer event handler: read a series of scancodes from 8042
|
||||
and put them into memory scancode buffer.
|
||||
@@ -309,8 +308,8 @@ InitKeyboard (
|
||||
VOID
|
||||
EFIAPI
|
||||
KeyboardTimerHandler (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -358,8 +357,8 @@ KeyboardReadKeyStroke (
|
||||
VOID
|
||||
EFIAPI
|
||||
KeyboardWaitForKey (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -372,7 +371,7 @@ KeyboardWaitForKey (
|
||||
**/
|
||||
UINT8
|
||||
KeyReadStatusRegister (
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleIn
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleIn
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -388,7 +387,7 @@ KeyReadStatusRegister (
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
CheckKeyboardConnect (
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleIn
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleIn
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -402,8 +401,8 @@ CheckKeyboardConnect (
|
||||
VOID
|
||||
EFIAPI
|
||||
KeyboardWaitForKeyEx (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
//
|
||||
@@ -447,8 +446,8 @@ KeyboardEfiResetEx (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
KeyboardReadKeyStrokeEx (
|
||||
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
|
||||
OUT EFI_KEY_DATA *KeyData
|
||||
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
|
||||
OUT EFI_KEY_DATA *KeyData
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -526,8 +525,8 @@ KeyboardUnregisterKeyNotify (
|
||||
**/
|
||||
VOID
|
||||
PushEfikeyBufTail (
|
||||
IN EFI_KEY_QUEUE *Queue,
|
||||
IN EFI_KEY_DATA *KeyData
|
||||
IN EFI_KEY_QUEUE *Queue,
|
||||
IN EFI_KEY_DATA *KeyData
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -556,8 +555,8 @@ IsKeyRegistered (
|
||||
**/
|
||||
VOID
|
||||
InitializeKeyState (
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleIn,
|
||||
OUT EFI_KEY_STATE *KeyState
|
||||
IN KEYBOARD_CONSOLE_IN_DEV *ConsoleIn,
|
||||
OUT EFI_KEY_STATE *KeyState
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@@ -9,9 +9,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#include "Ps2Mouse.h"
|
||||
#include "CommPs2.h"
|
||||
|
||||
UINT8 SampleRateTbl[MaxSampleRate] = { 0xa, 0x14, 0x28, 0x3c, 0x50, 0x64, 0xc8 };
|
||||
UINT8 SampleRateTbl[MaxSampleRate] = { 0xa, 0x14, 0x28, 0x3c, 0x50, 0x64, 0xc8 };
|
||||
|
||||
UINT8 ResolutionTbl[MaxResolution] = { 0, 1, 2, 3 };
|
||||
UINT8 ResolutionTbl[MaxResolution] = { 0, 1, 2, 3 };
|
||||
|
||||
/**
|
||||
Issue self test command via IsaIo interface.
|
||||
@@ -34,6 +34,7 @@ KbcSelfTest (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Read return code
|
||||
//
|
||||
@@ -45,6 +46,7 @@ KbcSelfTest (
|
||||
if (Data != 0x55) {
|
||||
return EFI_DEVICE_ERROR;
|
||||
}
|
||||
|
||||
//
|
||||
// Set system flag
|
||||
//
|
||||
@@ -63,7 +65,7 @@ KbcSelfTest (
|
||||
return Status;
|
||||
}
|
||||
|
||||
Data |= CMD_SYS_FLAG;
|
||||
Data |= CMD_SYS_FLAG;
|
||||
Status = Out8042Data (Data);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
@@ -149,7 +151,7 @@ KbcDisableKb (
|
||||
**/
|
||||
EFI_STATUS
|
||||
CheckKbStatus (
|
||||
OUT BOOLEAN *KeyboardEnable
|
||||
OUT BOOLEAN *KeyboardEnable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -167,6 +169,7 @@ CheckKbStatus (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Check keyboard enable or not
|
||||
//
|
||||
@@ -201,6 +204,7 @@ PS2MouseReset (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Check BAT Complete Code
|
||||
//
|
||||
@@ -212,6 +216,7 @@ PS2MouseReset (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Check BAT Complete Code
|
||||
//
|
||||
@@ -231,7 +236,7 @@ PS2MouseReset (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseSetSampleRate (
|
||||
IN MOUSE_SR SampleRate
|
||||
IN MOUSE_SR SampleRate
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -258,7 +263,7 @@ PS2MouseSetSampleRate (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseSetResolution (
|
||||
IN MOUSE_RE Resolution
|
||||
IN MOUSE_RE Resolution
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -285,7 +290,7 @@ PS2MouseSetResolution (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseSetScaling (
|
||||
IN MOUSE_SF Scaling
|
||||
IN MOUSE_SF Scaling
|
||||
)
|
||||
{
|
||||
//
|
||||
@@ -321,7 +326,7 @@ PS2MouseEnable (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseGetPacket (
|
||||
PS2_MOUSE_DEV *MouseDev
|
||||
PS2_MOUSE_DEV *MouseDev
|
||||
)
|
||||
|
||||
{
|
||||
@@ -336,111 +341,112 @@ PS2MouseGetPacket (
|
||||
BOOLEAN LButton;
|
||||
BOOLEAN RButton;
|
||||
|
||||
KeyboardEnable = FALSE;
|
||||
State = PS2_READ_BYTE_ONE;
|
||||
KeyboardEnable = FALSE;
|
||||
State = PS2_READ_BYTE_ONE;
|
||||
|
||||
//
|
||||
// State machine to get mouse packet
|
||||
//
|
||||
while (1) {
|
||||
|
||||
switch (State) {
|
||||
case PS2_READ_BYTE_ONE:
|
||||
//
|
||||
// Read mouse first byte data, if failed, immediately return
|
||||
//
|
||||
KbcDisableAux ();
|
||||
Count = 1;
|
||||
Status = PS2MouseRead (&Data, &Count, State);
|
||||
if (EFI_ERROR (Status)) {
|
||||
KbcEnableAux ();
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
case PS2_READ_BYTE_ONE:
|
||||
//
|
||||
// Read mouse first byte data, if failed, immediately return
|
||||
//
|
||||
KbcDisableAux ();
|
||||
Count = 1;
|
||||
Status = PS2MouseRead (&Data, &Count, State);
|
||||
if (EFI_ERROR (Status)) {
|
||||
KbcEnableAux ();
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
|
||||
if (Count != 1) {
|
||||
KbcEnableAux ();
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
if (Count != 1) {
|
||||
KbcEnableAux ();
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
|
||||
if (IS_PS2_SYNC_BYTE (Data)) {
|
||||
Packet[0] = Data;
|
||||
State = PS2_READ_DATA_BYTE;
|
||||
if (IS_PS2_SYNC_BYTE (Data)) {
|
||||
Packet[0] = Data;
|
||||
State = PS2_READ_DATA_BYTE;
|
||||
|
||||
CheckKbStatus (&KeyboardEnable);
|
||||
KbcDisableKb ();
|
||||
KbcEnableAux ();
|
||||
}
|
||||
break;
|
||||
CheckKbStatus (&KeyboardEnable);
|
||||
KbcDisableKb ();
|
||||
KbcEnableAux ();
|
||||
}
|
||||
|
||||
case PS2_READ_DATA_BYTE:
|
||||
Count = 2;
|
||||
Status = PS2MouseRead ((Packet + 1), &Count, State);
|
||||
if (EFI_ERROR (Status)) {
|
||||
break;
|
||||
|
||||
case PS2_READ_DATA_BYTE:
|
||||
Count = 2;
|
||||
Status = PS2MouseRead ((Packet + 1), &Count, State);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if (KeyboardEnable) {
|
||||
KbcEnableKb ();
|
||||
}
|
||||
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
|
||||
if (Count != 2) {
|
||||
if (KeyboardEnable) {
|
||||
KbcEnableKb ();
|
||||
}
|
||||
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
|
||||
State = PS2_PROCESS_PACKET;
|
||||
break;
|
||||
|
||||
case PS2_PROCESS_PACKET:
|
||||
if (KeyboardEnable) {
|
||||
KbcEnableKb ();
|
||||
}
|
||||
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
|
||||
if (Count != 2) {
|
||||
if (KeyboardEnable) {
|
||||
KbcEnableKb ();
|
||||
//
|
||||
// Decode the packet
|
||||
//
|
||||
RelativeMovementX = Packet[1];
|
||||
RelativeMovementY = Packet[2];
|
||||
//
|
||||
// Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0
|
||||
// Byte 0 | Y overflow | X overflow | Y sign bit | X sign bit | Always 1 | Middle Btn | Right Btn | Left Btn
|
||||
// Byte 1 | 8 bit X Movement
|
||||
// Byte 2 | 8 bit Y Movement
|
||||
//
|
||||
// X sign bit + 8 bit X Movement : 9-bit signed twos complement integer that presents the relative displacement of the device in the X direction since the last data transmission.
|
||||
// Y sign bit + 8 bit Y Movement : Same as X sign bit + 8 bit X Movement.
|
||||
//
|
||||
//
|
||||
// First, Clear X and Y high 8 bits
|
||||
//
|
||||
RelativeMovementX = (INT16)(RelativeMovementX & 0xFF);
|
||||
RelativeMovementY = (INT16)(RelativeMovementY & 0xFF);
|
||||
//
|
||||
// Second, if the 9-bit signed twos complement integer is negative, set the high 8 bit 0xff
|
||||
//
|
||||
if ((Packet[0] & 0x10) != 0) {
|
||||
RelativeMovementX = (INT16)(RelativeMovementX | 0xFF00);
|
||||
}
|
||||
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
if ((Packet[0] & 0x20) != 0) {
|
||||
RelativeMovementY = (INT16)(RelativeMovementY | 0xFF00);
|
||||
}
|
||||
|
||||
State = PS2_PROCESS_PACKET;
|
||||
break;
|
||||
RButton = (UINT8)(Packet[0] & 0x2);
|
||||
LButton = (UINT8)(Packet[0] & 0x1);
|
||||
|
||||
case PS2_PROCESS_PACKET:
|
||||
if (KeyboardEnable) {
|
||||
KbcEnableKb ();
|
||||
}
|
||||
//
|
||||
// Decode the packet
|
||||
//
|
||||
RelativeMovementX = Packet[1];
|
||||
RelativeMovementY = Packet[2];
|
||||
//
|
||||
// Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0
|
||||
// Byte 0 | Y overflow | X overflow | Y sign bit | X sign bit | Always 1 | Middle Btn | Right Btn | Left Btn
|
||||
// Byte 1 | 8 bit X Movement
|
||||
// Byte 2 | 8 bit Y Movement
|
||||
//
|
||||
// X sign bit + 8 bit X Movement : 9-bit signed twos complement integer that presents the relative displacement of the device in the X direction since the last data transmission.
|
||||
// Y sign bit + 8 bit Y Movement : Same as X sign bit + 8 bit X Movement.
|
||||
//
|
||||
//
|
||||
// First, Clear X and Y high 8 bits
|
||||
//
|
||||
RelativeMovementX = (INT16) (RelativeMovementX & 0xFF);
|
||||
RelativeMovementY = (INT16) (RelativeMovementY & 0xFF);
|
||||
//
|
||||
// Second, if the 9-bit signed twos complement integer is negative, set the high 8 bit 0xff
|
||||
//
|
||||
if ((Packet[0] & 0x10) != 0) {
|
||||
RelativeMovementX = (INT16) (RelativeMovementX | 0xFF00);
|
||||
}
|
||||
if ((Packet[0] & 0x20) != 0) {
|
||||
RelativeMovementY = (INT16) (RelativeMovementY | 0xFF00);
|
||||
}
|
||||
//
|
||||
// Update mouse state
|
||||
//
|
||||
MouseDev->State.RelativeMovementX += RelativeMovementX;
|
||||
MouseDev->State.RelativeMovementY -= RelativeMovementY;
|
||||
MouseDev->State.RightButton = (UINT8)(RButton ? TRUE : FALSE);
|
||||
MouseDev->State.LeftButton = (UINT8)(LButton ? TRUE : FALSE);
|
||||
MouseDev->StateChanged = TRUE;
|
||||
|
||||
|
||||
RButton = (UINT8) (Packet[0] & 0x2);
|
||||
LButton = (UINT8) (Packet[0] & 0x1);
|
||||
|
||||
//
|
||||
// Update mouse state
|
||||
//
|
||||
MouseDev->State.RelativeMovementX += RelativeMovementX;
|
||||
MouseDev->State.RelativeMovementY -= RelativeMovementY;
|
||||
MouseDev->State.RightButton = (UINT8) (RButton ? TRUE : FALSE);
|
||||
MouseDev->State.LeftButton = (UINT8) (LButton ? TRUE : FALSE);
|
||||
MouseDev->StateChanged = TRUE;
|
||||
|
||||
return EFI_SUCCESS;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -456,15 +462,15 @@ PS2MouseGetPacket (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseRead (
|
||||
OUT UINT8 *Buffer,
|
||||
IN OUT UINTN *BufSize,
|
||||
IN UINTN State
|
||||
OUT UINT8 *Buffer,
|
||||
IN OUT UINTN *BufSize,
|
||||
IN UINTN State
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINTN BytesRead;
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
if (State == PS2_READ_BYTE_ONE) {
|
||||
//
|
||||
@@ -478,17 +484,18 @@ PS2MouseRead (
|
||||
}
|
||||
|
||||
for (BytesRead = 0; BytesRead < *BufSize; BytesRead++) {
|
||||
|
||||
Status = WaitOutputFull (TIMEOUT);
|
||||
if (EFI_ERROR (Status)) {
|
||||
break;
|
||||
}
|
||||
|
||||
Buffer[BytesRead] = IoRead8 (KBC_DATA_PORT);
|
||||
}
|
||||
|
||||
//
|
||||
// Verify the correct number of bytes read
|
||||
//
|
||||
if (BytesRead == 0 || BytesRead != *BufSize) {
|
||||
if ((BytesRead == 0) || (BytesRead != *BufSize)) {
|
||||
Status = EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
@@ -499,6 +506,7 @@ PS2MouseRead (
|
||||
//
|
||||
// 8042 I/O function
|
||||
//
|
||||
|
||||
/**
|
||||
I/O work flow of outing 8042 command.
|
||||
|
||||
@@ -509,7 +517,7 @@ PS2MouseRead (
|
||||
**/
|
||||
EFI_STATUS
|
||||
Out8042Command (
|
||||
IN UINT8 Command
|
||||
IN UINT8 Command
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -521,6 +529,7 @@ Out8042Command (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Send command
|
||||
//
|
||||
@@ -544,10 +553,11 @@ Out8042Command (
|
||||
**/
|
||||
EFI_STATUS
|
||||
Out8042Data (
|
||||
IN UINT8 Data
|
||||
IN UINT8 Data
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// Wait keyboard controller input buffer empty
|
||||
//
|
||||
@@ -570,10 +580,10 @@ Out8042Data (
|
||||
**/
|
||||
EFI_STATUS
|
||||
In8042Data (
|
||||
IN OUT UINT8 *Data
|
||||
IN OUT UINT8 *Data
|
||||
)
|
||||
{
|
||||
UINTN Delay;
|
||||
UINTN Delay;
|
||||
|
||||
Delay = TIMEOUT / 50;
|
||||
|
||||
@@ -609,8 +619,8 @@ In8042Data (
|
||||
**/
|
||||
EFI_STATUS
|
||||
Out8042AuxCommand (
|
||||
IN UINT8 Command,
|
||||
IN BOOLEAN Resend
|
||||
IN UINT8 Command,
|
||||
IN BOOLEAN Resend
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -623,6 +633,7 @@ Out8042AuxCommand (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Send write to auxiliary device command
|
||||
//
|
||||
@@ -632,6 +643,7 @@ Out8042AuxCommand (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Send auxiliary device command
|
||||
//
|
||||
@@ -650,13 +662,11 @@ Out8042AuxCommand (
|
||||
// Receive mouse acknowledge, command send success
|
||||
//
|
||||
return EFI_SUCCESS;
|
||||
|
||||
} else if (Resend) {
|
||||
//
|
||||
// Resend fail
|
||||
//
|
||||
return EFI_DEVICE_ERROR;
|
||||
|
||||
} else if (Data == PS2_RESEND) {
|
||||
//
|
||||
// Resend command
|
||||
@@ -665,13 +675,11 @@ Out8042AuxCommand (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
} else {
|
||||
//
|
||||
// Invalid return code
|
||||
//
|
||||
return EFI_DEVICE_ERROR;
|
||||
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
@@ -687,10 +695,11 @@ Out8042AuxCommand (
|
||||
**/
|
||||
EFI_STATUS
|
||||
Out8042AuxData (
|
||||
IN UINT8 Data
|
||||
IN UINT8 Data
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// Wait keyboard controller input buffer empty
|
||||
//
|
||||
@@ -698,6 +707,7 @@ Out8042AuxData (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Send write to auxiliary device command
|
||||
//
|
||||
@@ -728,7 +738,7 @@ Out8042AuxData (
|
||||
**/
|
||||
EFI_STATUS
|
||||
In8042AuxData (
|
||||
IN OUT UINT8 *Data
|
||||
IN OUT UINT8 *Data
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -746,7 +756,6 @@ In8042AuxData (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Check keyboard controller status, if it is output buffer full and for auxiliary device.
|
||||
|
||||
@@ -758,7 +767,7 @@ CheckForInput (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
UINT8 Data;
|
||||
UINT8 Data;
|
||||
|
||||
Data = IoRead8 (KBC_CMD_STS_PORT);
|
||||
|
||||
@@ -782,11 +791,11 @@ CheckForInput (
|
||||
**/
|
||||
EFI_STATUS
|
||||
WaitInputEmpty (
|
||||
IN UINTN Timeout
|
||||
IN UINTN Timeout
|
||||
)
|
||||
{
|
||||
UINTN Delay;
|
||||
UINT8 Data;
|
||||
UINTN Delay;
|
||||
UINT8 Data;
|
||||
|
||||
Delay = Timeout / 50;
|
||||
|
||||
@@ -821,11 +830,11 @@ WaitInputEmpty (
|
||||
**/
|
||||
EFI_STATUS
|
||||
WaitOutputFull (
|
||||
IN UINTN Timeout
|
||||
IN UINTN Timeout
|
||||
)
|
||||
{
|
||||
UINTN Delay;
|
||||
UINT8 Data;
|
||||
UINTN Delay;
|
||||
UINT8 Data;
|
||||
|
||||
Delay = Timeout / 50;
|
||||
|
||||
|
@@ -11,18 +11,18 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
#include "Ps2Mouse.h"
|
||||
|
||||
#define PS2_PACKET_LENGTH 3
|
||||
#define PS2_SYNC_MASK 0xc
|
||||
#define PS2_SYNC_BYTE 0x8
|
||||
#define PS2_PACKET_LENGTH 3
|
||||
#define PS2_SYNC_MASK 0xc
|
||||
#define PS2_SYNC_BYTE 0x8
|
||||
|
||||
#define IS_PS2_SYNC_BYTE(byte) ((byte & PS2_SYNC_MASK) == PS2_SYNC_BYTE)
|
||||
|
||||
#define PS2_READ_BYTE_ONE 0
|
||||
#define PS2_READ_DATA_BYTE 1
|
||||
#define PS2_PROCESS_PACKET 2
|
||||
#define PS2_READ_BYTE_ONE 0
|
||||
#define PS2_READ_DATA_BYTE 1
|
||||
#define PS2_PROCESS_PACKET 2
|
||||
|
||||
#define TIMEOUT 50000
|
||||
#define BAT_TIMEOUT 500000
|
||||
#define TIMEOUT 50000
|
||||
#define BAT_TIMEOUT 500000
|
||||
|
||||
//
|
||||
// 8042 I/O Port
|
||||
@@ -42,31 +42,31 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#define ENABLE_KB 0xae
|
||||
#define WRITE_AUX_DEV 0xd4
|
||||
|
||||
#define CMD_SYS_FLAG 0x04
|
||||
#define CMD_KB_STS 0x10
|
||||
#define CMD_KB_DIS 0x10
|
||||
#define CMD_KB_EN 0x0
|
||||
#define CMD_SYS_FLAG 0x04
|
||||
#define CMD_KB_STS 0x10
|
||||
#define CMD_KB_DIS 0x10
|
||||
#define CMD_KB_EN 0x0
|
||||
|
||||
//
|
||||
// 8042 Auxiliary Device Command
|
||||
//
|
||||
#define SETSF1_CMD 0xe6
|
||||
#define SETSF2_CMD 0xe7
|
||||
#define SETRE_CMD 0xe8
|
||||
#define READ_CMD 0xeb
|
||||
#define SETRM_CMD 0xf0
|
||||
#define SETSR_CMD 0xf3
|
||||
#define ENABLE_CMD 0xf4
|
||||
#define DISABLE_CMD 0xf5
|
||||
#define RESET_CMD 0xff
|
||||
#define SETSF1_CMD 0xe6
|
||||
#define SETSF2_CMD 0xe7
|
||||
#define SETRE_CMD 0xe8
|
||||
#define READ_CMD 0xeb
|
||||
#define SETRM_CMD 0xf0
|
||||
#define SETSR_CMD 0xf3
|
||||
#define ENABLE_CMD 0xf4
|
||||
#define DISABLE_CMD 0xf5
|
||||
#define RESET_CMD 0xff
|
||||
|
||||
//
|
||||
// return code
|
||||
//
|
||||
#define PS2_ACK 0xfa
|
||||
#define PS2_RESEND 0xfe
|
||||
#define PS2MOUSE_BAT1 0xaa
|
||||
#define PS2MOUSE_BAT2 0x0
|
||||
#define PS2_ACK 0xfa
|
||||
#define PS2_RESEND 0xfe
|
||||
#define PS2MOUSE_BAT1 0xaa
|
||||
#define PS2MOUSE_BAT2 0x0
|
||||
|
||||
//
|
||||
// Keyboard Controller Status
|
||||
@@ -78,7 +78,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
///
|
||||
/// General Time Out
|
||||
///
|
||||
#define KBC_TIM 0x40
|
||||
#define KBC_TIM 0x40
|
||||
///
|
||||
/// Output buffer for auxiliary device (PS/2):
|
||||
/// 0 - Holds keyboard data
|
||||
@@ -176,7 +176,7 @@ KbcDisableKb (
|
||||
**/
|
||||
EFI_STATUS
|
||||
CheckKbStatus (
|
||||
OUT BOOLEAN *KeyboardEnable
|
||||
OUT BOOLEAN *KeyboardEnable
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -198,7 +198,7 @@ PS2MouseReset (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseSetSampleRate (
|
||||
IN MOUSE_SR SampleRate
|
||||
IN MOUSE_SR SampleRate
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -210,7 +210,7 @@ PS2MouseSetSampleRate (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseSetResolution (
|
||||
IN MOUSE_RE Resolution
|
||||
IN MOUSE_RE Resolution
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -222,7 +222,7 @@ PS2MouseSetResolution (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseSetScaling (
|
||||
IN MOUSE_SF Scaling
|
||||
IN MOUSE_SF Scaling
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -246,7 +246,7 @@ PS2MouseEnable (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseGetPacket (
|
||||
PS2_MOUSE_DEV *MouseDev
|
||||
PS2_MOUSE_DEV *MouseDev
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -260,14 +260,15 @@ PS2MouseGetPacket (
|
||||
**/
|
||||
EFI_STATUS
|
||||
PS2MouseRead (
|
||||
OUT UINT8 *Buffer,
|
||||
IN OUT UINTN *BufSize,
|
||||
IN UINTN State
|
||||
OUT UINT8 *Buffer,
|
||||
IN OUT UINTN *BufSize,
|
||||
IN UINTN State
|
||||
);
|
||||
|
||||
//
|
||||
// 8042 I/O function
|
||||
//
|
||||
|
||||
/**
|
||||
I/O work flow of outing 8042 command.
|
||||
|
||||
@@ -278,7 +279,7 @@ PS2MouseRead (
|
||||
**/
|
||||
EFI_STATUS
|
||||
Out8042Command (
|
||||
IN UINT8 Command
|
||||
IN UINT8 Command
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -291,7 +292,7 @@ Out8042Command (
|
||||
**/
|
||||
EFI_STATUS
|
||||
In8042Data (
|
||||
IN OUT UINT8 *Data
|
||||
IN OUT UINT8 *Data
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -304,7 +305,7 @@ In8042Data (
|
||||
**/
|
||||
EFI_STATUS
|
||||
Out8042Data (
|
||||
IN UINT8 Data
|
||||
IN UINT8 Data
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -318,8 +319,8 @@ Out8042Data (
|
||||
**/
|
||||
EFI_STATUS
|
||||
Out8042AuxCommand (
|
||||
IN UINT8 Command,
|
||||
IN BOOLEAN Resend
|
||||
IN UINT8 Command,
|
||||
IN BOOLEAN Resend
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -332,7 +333,7 @@ Out8042AuxCommand (
|
||||
**/
|
||||
EFI_STATUS
|
||||
In8042AuxData (
|
||||
IN OUT UINT8 *Data
|
||||
IN OUT UINT8 *Data
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -345,7 +346,7 @@ In8042AuxData (
|
||||
**/
|
||||
EFI_STATUS
|
||||
Out8042AuxData (
|
||||
IN UINT8 Data
|
||||
IN UINT8 Data
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -369,7 +370,7 @@ CheckForInput (
|
||||
**/
|
||||
EFI_STATUS
|
||||
WaitInputEmpty (
|
||||
IN UINTN Timeout
|
||||
IN UINTN Timeout
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -382,8 +383,7 @@ WaitInputEmpty (
|
||||
**/
|
||||
EFI_STATUS
|
||||
WaitOutputFull (
|
||||
IN UINTN Timeout
|
||||
IN UINTN Timeout
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -20,14 +20,13 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gPs2MouseComponentNam
|
||||
//
|
||||
// EFI Component Name 2 Protocol
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPs2MouseComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) Ps2MouseComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) Ps2MouseComponentNameGetControllerName,
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPs2MouseComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME)Ps2MouseComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)Ps2MouseComponentNameGetControllerName,
|
||||
"en"
|
||||
};
|
||||
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPs2MouseDriverNameTable[] = {
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPs2MouseDriverNameTable[] = {
|
||||
{
|
||||
"eng;en",
|
||||
L"PS/2 Mouse Driver"
|
||||
@@ -165,16 +164,16 @@ Ps2MouseComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
Ps2MouseComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_POINTER_PROTOCOL *SimplePointerProtocol;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_POINTER_PROTOCOL *SimplePointerProtocol;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
|
||||
//
|
||||
// This is a device driver, so ChildHandle must be NULL.
|
||||
@@ -182,6 +181,7 @@ Ps2MouseComponentNameGetControllerName (
|
||||
if (ChildHandle != NULL) {
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Controller's handle
|
||||
//
|
||||
@@ -190,13 +190,14 @@ Ps2MouseComponentNameGetControllerName (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Get the device context
|
||||
//
|
||||
Status = gBS->OpenProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiSimplePointerProtocolGuid,
|
||||
(VOID **) &SimplePointerProtocol,
|
||||
(VOID **)&SimplePointerProtocol,
|
||||
gPS2MouseDriver.DriverBindingHandle,
|
||||
ControllerHandle,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
|
@@ -13,7 +13,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
///
|
||||
/// DriverBinding Protocol Instance
|
||||
///
|
||||
EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver = {
|
||||
EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver = {
|
||||
PS2MouseDriverSupported,
|
||||
PS2MouseDriverStart,
|
||||
PS2MouseDriverStop,
|
||||
@@ -39,15 +39,15 @@ EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver = {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PS2MouseDriverSupported (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SIO_PROTOCOL *Sio;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
ACPI_HID_DEVICE_PATH *Acpi;
|
||||
EFI_STATUS Status;
|
||||
EFI_SIO_PROTOCOL *Sio;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
ACPI_HID_DEVICE_PATH *Acpi;
|
||||
|
||||
//
|
||||
// Check whether the controller is keyboard.
|
||||
@@ -55,7 +55,7 @@ PS2MouseDriverSupported (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &DevicePath,
|
||||
(VOID **)&DevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -65,37 +65,38 @@ PS2MouseDriverSupported (
|
||||
}
|
||||
|
||||
do {
|
||||
Acpi = (ACPI_HID_DEVICE_PATH *) DevicePath;
|
||||
Acpi = (ACPI_HID_DEVICE_PATH *)DevicePath;
|
||||
DevicePath = NextDevicePathNode (DevicePath);
|
||||
} while (!IsDevicePathEnd (DevicePath));
|
||||
|
||||
if (DevicePathType (Acpi) != ACPI_DEVICE_PATH ||
|
||||
(DevicePathSubType (Acpi) != ACPI_DP && DevicePathSubType (Acpi) != ACPI_EXTENDED_DP)) {
|
||||
if ((DevicePathType (Acpi) != ACPI_DEVICE_PATH) ||
|
||||
((DevicePathSubType (Acpi) != ACPI_DP) && (DevicePathSubType (Acpi) != ACPI_EXTENDED_DP)))
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
switch (Acpi->HID) {
|
||||
case EISA_PNP_ID (0xF03):
|
||||
case EISA_PNP_ID (0xF03):
|
||||
//
|
||||
// Microsoft PS/2 style mouse
|
||||
//
|
||||
case EISA_PNP_ID (0xF13):
|
||||
//
|
||||
// PS/2 Port for PS/2-style Mice
|
||||
//
|
||||
break;
|
||||
|
||||
case EISA_PNP_ID (0x303):
|
||||
//
|
||||
// IBM Enhanced (101/102-key, PS/2 mouse support)
|
||||
//
|
||||
if (Acpi->UID == 1) {
|
||||
case EISA_PNP_ID (0xF13):
|
||||
//
|
||||
// PS/2 Port for PS/2-style Mice
|
||||
//
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
return EFI_UNSUPPORTED;
|
||||
break;
|
||||
case EISA_PNP_ID (0x303):
|
||||
//
|
||||
// IBM Enhanced (101/102-key, PS/2 mouse support)
|
||||
//
|
||||
if (Acpi->UID == 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
return EFI_UNSUPPORTED;
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -104,7 +105,7 @@ PS2MouseDriverSupported (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiSioProtocolGuid,
|
||||
(VOID **) &Sio,
|
||||
(VOID **)&Sio,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -143,21 +144,21 @@ PS2MouseDriverSupported (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PS2MouseDriverStart (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS EmptyStatus;
|
||||
EFI_SIO_PROTOCOL *Sio;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
UINT8 Data;
|
||||
EFI_TPL OldTpl;
|
||||
EFI_STATUS_CODE_VALUE StatusCode;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS EmptyStatus;
|
||||
EFI_SIO_PROTOCOL *Sio;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
UINT8 Data;
|
||||
EFI_TPL OldTpl;
|
||||
EFI_STATUS_CODE_VALUE StatusCode;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
|
||||
StatusCode = 0;
|
||||
StatusCode = 0;
|
||||
|
||||
//
|
||||
// Open the device path protocol
|
||||
@@ -165,7 +166,7 @@ PS2MouseDriverStart (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &DevicePath,
|
||||
(VOID **)&DevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -173,6 +174,7 @@ PS2MouseDriverStart (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Report that the keyboard is being enabled
|
||||
//
|
||||
@@ -188,7 +190,7 @@ PS2MouseDriverStart (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiSioProtocolGuid,
|
||||
(VOID **) &Sio,
|
||||
(VOID **)&Sio,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -196,6 +198,7 @@ PS2MouseDriverStart (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Raise TPL to avoid keyboard operation impact
|
||||
//
|
||||
@@ -209,6 +212,7 @@ PS2MouseDriverStart (
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
//
|
||||
// Setup the device instance
|
||||
//
|
||||
@@ -223,14 +227,14 @@ PS2MouseDriverStart (
|
||||
//
|
||||
// Resolution = 4 counts/mm
|
||||
//
|
||||
MouseDev->Mode.ResolutionX = 4;
|
||||
MouseDev->Mode.ResolutionY = 4;
|
||||
MouseDev->Mode.LeftButton = TRUE;
|
||||
MouseDev->Mode.RightButton = TRUE;
|
||||
MouseDev->Mode.ResolutionX = 4;
|
||||
MouseDev->Mode.ResolutionY = 4;
|
||||
MouseDev->Mode.LeftButton = TRUE;
|
||||
MouseDev->Mode.RightButton = TRUE;
|
||||
|
||||
MouseDev->SimplePointerProtocol.Reset = MouseReset;
|
||||
MouseDev->SimplePointerProtocol.GetState = MouseGetState;
|
||||
MouseDev->SimplePointerProtocol.Mode = &(MouseDev->Mode);
|
||||
MouseDev->SimplePointerProtocol.Reset = MouseReset;
|
||||
MouseDev->SimplePointerProtocol.GetState = MouseGetState;
|
||||
MouseDev->SimplePointerProtocol.Mode = &(MouseDev->Mode);
|
||||
|
||||
//
|
||||
// Initialize keyboard controller if necessary
|
||||
@@ -275,15 +279,15 @@ PS2MouseDriverStart (
|
||||
// Reset the mouse
|
||||
//
|
||||
Status = MouseDev->SimplePointerProtocol.Reset (
|
||||
&MouseDev->SimplePointerProtocol,
|
||||
FeaturePcdGet (PcdPs2MouseExtendedVerification)
|
||||
);
|
||||
&MouseDev->SimplePointerProtocol,
|
||||
FeaturePcdGet (PcdPs2MouseExtendedVerification)
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// mouse not connected
|
||||
//
|
||||
Status = EFI_SUCCESS;
|
||||
StatusCode = EFI_PERIPHERAL_MOUSE | EFI_P_EC_NOT_DETECTED;
|
||||
Status = EFI_SUCCESS;
|
||||
StatusCode = EFI_PERIPHERAL_MOUSE | EFI_P_EC_NOT_DETECTED;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
@@ -307,6 +311,7 @@ PS2MouseDriverStart (
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
//
|
||||
// Setup a periodic timer, used to poll mouse state
|
||||
//
|
||||
@@ -321,6 +326,7 @@ PS2MouseDriverStart (
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
//
|
||||
// Start timer to poll mouse (100 samples per second)
|
||||
//
|
||||
@@ -346,7 +352,6 @@ PS2MouseDriverStart (
|
||||
FALSE
|
||||
);
|
||||
|
||||
|
||||
//
|
||||
// Install protocol interfaces for the mouse device.
|
||||
//
|
||||
@@ -441,21 +446,21 @@ ErrorExit:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PS2MouseDriverStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_POINTER_PROTOCOL *SimplePointerProtocol;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
UINT8 Data;
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_POINTER_PROTOCOL *SimplePointerProtocol;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
UINT8 Data;
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiSimplePointerProtocolGuid,
|
||||
(VOID **) &SimplePointerProtocol,
|
||||
(VOID **)&SimplePointerProtocol,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -535,15 +540,15 @@ PS2MouseDriverStop (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
MouseReset (
|
||||
IN EFI_SIMPLE_POINTER_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN EFI_SIMPLE_POINTER_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
EFI_TPL OldTpl;
|
||||
BOOLEAN KeyboardEnable;
|
||||
UINT8 Data;
|
||||
EFI_STATUS Status;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
EFI_TPL OldTpl;
|
||||
BOOLEAN KeyboardEnable;
|
||||
UINT8 Data;
|
||||
|
||||
MouseDev = PS2_MOUSE_DEV_FROM_THIS (This);
|
||||
|
||||
@@ -625,6 +630,7 @@ MouseReset (
|
||||
goto Exit;
|
||||
}
|
||||
}
|
||||
|
||||
Exit:
|
||||
gBS->RestoreTPL (OldTpl);
|
||||
|
||||
@@ -646,11 +652,11 @@ Exit:
|
||||
**/
|
||||
BOOLEAN
|
||||
CheckMouseConnect (
|
||||
IN PS2_MOUSE_DEV *MouseDev
|
||||
IN PS2_MOUSE_DEV *MouseDev
|
||||
)
|
||||
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = PS2MouseEnable ();
|
||||
if (!EFI_ERROR (Status)) {
|
||||
@@ -673,12 +679,12 @@ CheckMouseConnect (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
MouseGetState (
|
||||
IN EFI_SIMPLE_POINTER_PROTOCOL *This,
|
||||
IN OUT EFI_SIMPLE_POINTER_STATE *State
|
||||
IN EFI_SIMPLE_POINTER_PROTOCOL *This,
|
||||
IN OUT EFI_SIMPLE_POINTER_STATE *State
|
||||
)
|
||||
{
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
EFI_TPL OldTpl;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
EFI_TPL OldTpl;
|
||||
|
||||
MouseDev = PS2_MOUSE_DEV_FROM_THIS (This);
|
||||
|
||||
@@ -717,13 +723,13 @@ MouseGetState (
|
||||
VOID
|
||||
EFIAPI
|
||||
MouseWaitForInput (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
|
||||
MouseDev = (PS2_MOUSE_DEV *) Context;
|
||||
MouseDev = (PS2_MOUSE_DEV *)Context;
|
||||
|
||||
//
|
||||
// Someone is waiting on the mouse event, if there's
|
||||
@@ -732,7 +738,6 @@ MouseWaitForInput (
|
||||
if (MouseDev->StateChanged) {
|
||||
gBS->SignalEvent (Event);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -751,9 +756,9 @@ PollMouse (
|
||||
)
|
||||
|
||||
{
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
PS2_MOUSE_DEV *MouseDev;
|
||||
|
||||
MouseDev = (PS2_MOUSE_DEV *) Context;
|
||||
MouseDev = (PS2_MOUSE_DEV *)Context;
|
||||
|
||||
//
|
||||
// Polling mouse packet data
|
||||
@@ -773,12 +778,12 @@ PollMouse (
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
InitializePs2Mouse(
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
InitializePs2Mouse (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// Install driver model protocol(s).
|
||||
@@ -793,7 +798,5 @@ InitializePs2Mouse(
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@@ -69,29 +69,29 @@ typedef enum {
|
||||
//
|
||||
// Driver Private Data
|
||||
//
|
||||
#define PS2_MOUSE_DEV_SIGNATURE SIGNATURE_32 ('p', 's', '2', 'm')
|
||||
#define PS2_MOUSE_DEV_SIGNATURE SIGNATURE_32 ('p', 's', '2', 'm')
|
||||
|
||||
typedef struct {
|
||||
UINTN Signature;
|
||||
UINTN Signature;
|
||||
|
||||
EFI_HANDLE Handle;
|
||||
EFI_SIMPLE_POINTER_PROTOCOL SimplePointerProtocol;
|
||||
EFI_SIMPLE_POINTER_STATE State;
|
||||
EFI_SIMPLE_POINTER_MODE Mode;
|
||||
BOOLEAN StateChanged;
|
||||
EFI_HANDLE Handle;
|
||||
EFI_SIMPLE_POINTER_PROTOCOL SimplePointerProtocol;
|
||||
EFI_SIMPLE_POINTER_STATE State;
|
||||
EFI_SIMPLE_POINTER_MODE Mode;
|
||||
BOOLEAN StateChanged;
|
||||
|
||||
//
|
||||
// PS2 Mouse device specific information
|
||||
//
|
||||
MOUSE_SR SampleRate;
|
||||
MOUSE_RE Resolution;
|
||||
MOUSE_SF Scaling;
|
||||
UINT8 DataPackageSize;
|
||||
MOUSE_SR SampleRate;
|
||||
MOUSE_RE Resolution;
|
||||
MOUSE_SF Scaling;
|
||||
UINT8 DataPackageSize;
|
||||
|
||||
EFI_EVENT TimerEvent;
|
||||
EFI_EVENT TimerEvent;
|
||||
|
||||
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
} PS2_MOUSE_DEV;
|
||||
|
||||
#define PS2_MOUSE_DEV_FROM_THIS(a) CR (a, PS2_MOUSE_DEV, SimplePointerProtocol, PS2_MOUSE_DEV_SIGNATURE)
|
||||
@@ -99,6 +99,7 @@ typedef struct {
|
||||
//
|
||||
// Function prototypes
|
||||
//
|
||||
|
||||
/**
|
||||
Test to see if this driver supports ControllerHandle. Any ControllerHandle
|
||||
than contains a IsaIo protocol can be supported.
|
||||
@@ -116,9 +117,9 @@ typedef struct {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PS2MouseDriverSupported (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -139,9 +140,9 @@ PS2MouseDriverSupported (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PS2MouseDriverStart (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -161,15 +162,16 @@ PS2MouseDriverStart (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PS2MouseDriverStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
);
|
||||
|
||||
//
|
||||
// EFI Component Name Functions
|
||||
//
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the driver.
|
||||
|
||||
@@ -217,7 +219,6 @@ Ps2MouseComponentNameGetDriverName (
|
||||
OUT CHAR16 **DriverName
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the controller
|
||||
that is being managed by a driver.
|
||||
@@ -289,11 +290,11 @@ Ps2MouseComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
Ps2MouseComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -311,8 +312,8 @@ Ps2MouseComponentNameGetControllerName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
MouseReset (
|
||||
IN EFI_SIMPLE_POINTER_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN EFI_SIMPLE_POINTER_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -328,8 +329,8 @@ MouseReset (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
MouseGetState (
|
||||
IN EFI_SIMPLE_POINTER_PROTOCOL *This,
|
||||
IN OUT EFI_SIMPLE_POINTER_STATE *State
|
||||
IN EFI_SIMPLE_POINTER_PROTOCOL *This,
|
||||
IN OUT EFI_SIMPLE_POINTER_STATE *State
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -344,8 +345,8 @@ MouseGetState (
|
||||
VOID
|
||||
EFIAPI
|
||||
MouseWaitForInput (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -373,7 +374,7 @@ PollMouse (
|
||||
**/
|
||||
EFI_STATUS
|
||||
In8042Data (
|
||||
IN OUT UINT8 *Data
|
||||
IN OUT UINT8 *Data
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -387,7 +388,7 @@ In8042Data (
|
||||
**/
|
||||
BOOLEAN
|
||||
CheckMouseConnect (
|
||||
IN PS2_MOUSE_DEV *MouseDev
|
||||
IN PS2_MOUSE_DEV *MouseDev
|
||||
);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user