//\r
// Function prototypes\r
//\r
+\r
/**\r
Test controller is a keyboard Controller.\r
\r
EFI_STATUS\r
EFIAPI\r
KbdControllerDriverSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
KbdControllerDriverStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
KbdControllerDriverStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN UINTN NumberOfChildren,\r
+ IN EFI_HANDLE *ChildHandleBuffer\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
KbdFreeNotifyList (\r
- IN OUT LIST_ENTRY *ListHead\r
+ IN OUT LIST_ENTRY *ListHead\r
);\r
\r
//\r
// DriverBinding Protocol Instance\r
//\r
-EFI_DRIVER_BINDING_PROTOCOL gKeyboardControllerDriver = {\r
+EFI_DRIVER_BINDING_PROTOCOL gKeyboardControllerDriver = {\r
KbdControllerDriverSupported,\r
KbdControllerDriverStart,\r
KbdControllerDriverStop,\r
EFI_STATUS\r
EFIAPI\r
KbdControllerDriverSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_SIO_PROTOCOL *Sio;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- ACPI_HID_DEVICE_PATH *Acpi;\r
+ EFI_STATUS Status;\r
+ EFI_SIO_PROTOCOL *Sio;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ ACPI_HID_DEVICE_PATH *Acpi;\r
\r
//\r
// Check whether the controller is keyboard.\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiDevicePathProtocolGuid,\r
- (VOID **) &DevicePath,\r
+ (VOID **)&DevicePath,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
}\r
\r
do {\r
- Acpi = (ACPI_HID_DEVICE_PATH *) DevicePath;\r
+ Acpi = (ACPI_HID_DEVICE_PATH *)DevicePath;\r
DevicePath = NextDevicePathNode (DevicePath);\r
} while (!IsDevicePathEnd (DevicePath));\r
\r
- if (DevicePathType (Acpi) != ACPI_DEVICE_PATH ||\r
- (DevicePathSubType (Acpi) != ACPI_DP && DevicePathSubType (Acpi) != ACPI_EXTENDED_DP)) {\r
+ if ((DevicePathType (Acpi) != ACPI_DEVICE_PATH) ||\r
+ ((DevicePathSubType (Acpi) != ACPI_DP) && (DevicePathSubType (Acpi) != ACPI_EXTENDED_DP)))\r
+ {\r
return EFI_UNSUPPORTED;\r
}\r
\r
- if (Acpi->HID != EISA_PNP_ID (0x303) || Acpi->UID != 0) {\r
+ if ((Acpi->HID != EISA_PNP_ID (0x303)) || (Acpi->UID != 0)) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiSioProtocolGuid,\r
- (VOID **) &Sio,\r
+ (VOID **)&Sio,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
EFI_STATUS\r
EFIAPI\r
KbdControllerDriverStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_STATUS Status1;\r
- EFI_SIO_PROTOCOL *Sio;\r
- KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;\r
- UINT8 Data;\r
- EFI_STATUS_CODE_VALUE StatusCode;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_STATUS Status;\r
+ EFI_STATUS Status1;\r
+ EFI_SIO_PROTOCOL *Sio;\r
+ KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;\r
+ UINT8 Data;\r
+ EFI_STATUS_CODE_VALUE StatusCode;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
\r
StatusCode = 0;\r
\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiDevicePathProtocolGuid,\r
- (VOID **) &DevicePath,\r
+ (VOID **)&DevicePath,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
//\r
// Report that the keyboard is being enabled\r
//\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiSioProtocolGuid,\r
- (VOID **) &Sio,\r
+ (VOID **)&Sio,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
//\r
// Allocate private data\r
//\r
ConsoleIn = AllocateZeroPool (sizeof (KEYBOARD_CONSOLE_IN_DEV));\r
if (ConsoleIn == NULL) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
- StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
goto ErrorExit;\r
}\r
+\r
//\r
// Setup the device instance\r
//\r
// If nobody decodes KBC I/O port, it will read back as 0xFF.\r
// Check the Time-Out and Parity bit to see if it has an active KBC in system\r
//\r
- Status = EFI_DEVICE_ERROR;\r
- StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;\r
+ Status = EFI_DEVICE_ERROR;\r
+ StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;\r
goto ErrorExit;\r
}\r
}\r
&((ConsoleIn->ConIn).WaitForKey)\r
);\r
if (EFI_ERROR (Status)) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
- StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
goto ErrorExit;\r
}\r
+\r
//\r
// Setup the WaitForKeyEx event\r
//\r
&(ConsoleIn->ConInEx.WaitForKeyEx)\r
);\r
if (EFI_ERROR (Status)) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
- StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
goto ErrorExit;\r
}\r
+\r
// Setup a periodic timer, used for reading keystrokes at a fixed interval\r
//\r
Status = gBS->CreateEvent (\r
&ConsoleIn->TimerEvent\r
);\r
if (EFI_ERROR (Status)) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
- StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
goto ErrorExit;\r
}\r
\r
KEYBOARD_TIMER_INTERVAL\r
);\r
if (EFI_ERROR (Status)) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
- StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
goto ErrorExit;\r
}\r
\r
&ConsoleIn->KeyNotifyProcessEvent\r
);\r
if (EFI_ERROR (Status)) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
- StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
goto ErrorExit;\r
}\r
\r
//\r
Status = ConsoleIn->ConInEx.Reset (&ConsoleIn->ConInEx, FeaturePcdGet (PcdPs2KbdExtendedVerification));\r
if (EFI_ERROR (Status)) {\r
- Status = EFI_DEVICE_ERROR;\r
- StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;\r
+ Status = EFI_DEVICE_ERROR;\r
+ StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;\r
goto ErrorExit;\r
}\r
\r
FALSE\r
);\r
\r
-\r
//\r
// Install protocol interfaces for the keyboard device.\r
//\r
if ((ConsoleIn != NULL) && (ConsoleIn->TimerEvent != NULL)) {\r
gBS->CloseEvent (ConsoleIn->TimerEvent);\r
}\r
+\r
if ((ConsoleIn != NULL) && (ConsoleIn->ConInEx.WaitForKeyEx != NULL)) {\r
gBS->CloseEvent (ConsoleIn->ConInEx.WaitForKeyEx);\r
}\r
+\r
if ((ConsoleIn != NULL) && (ConsoleIn->KeyNotifyProcessEvent != NULL)) {\r
gBS->CloseEvent (ConsoleIn->KeyNotifyProcessEvent);\r
}\r
+\r
KbdFreeNotifyList (&ConsoleIn->NotifyList);\r
if ((ConsoleIn != NULL) && (ConsoleIn->ControllerNameTable != NULL)) {\r
FreeUnicodeStringTable (ConsoleIn->ControllerNameTable);\r
}\r
+\r
//\r
// Since there will be no timer handler for keyboard input any more,\r
// exhaust input data just in case there is still keyboard data left\r
if (ConsoleIn != NULL) {\r
Status1 = EFI_SUCCESS;\r
while (!EFI_ERROR (Status1) && (Status != EFI_DEVICE_ERROR)) {\r
- Status1 = KeyboardRead (ConsoleIn, &Data);;\r
+ Status1 = KeyboardRead (ConsoleIn, &Data);\r
}\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
KbdControllerDriverStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN UINTN NumberOfChildren,\r
+ IN EFI_HANDLE *ChildHandleBuffer\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;\r
- KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;\r
- UINT8 Data;\r
+ EFI_STATUS Status;\r
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;\r
+ KEYBOARD_CONSOLE_IN_DEV *ConsoleIn;\r
+ UINT8 Data;\r
\r
//\r
// Disable Keyboard\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiSimpleTextInProtocolGuid,\r
- (VOID **) &ConIn,\r
+ (VOID **)&ConIn,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiSimpleTextInputExProtocolGuid,\r
//\r
Status = EFI_SUCCESS;\r
while (!EFI_ERROR (Status)) {\r
- Status = KeyboardRead (ConsoleIn, &Data);;\r
+ Status = KeyboardRead (ConsoleIn, &Data);\r
}\r
+\r
//\r
// Uninstall the SimpleTextIn and SimpleTextInEx protocols\r
//\r
gBS->CloseEvent ((ConsoleIn->ConIn).WaitForKey);\r
(ConsoleIn->ConIn).WaitForKey = NULL;\r
}\r
+\r
if (ConsoleIn->ConInEx.WaitForKeyEx != NULL) {\r
gBS->CloseEvent (ConsoleIn->ConInEx.WaitForKeyEx);\r
ConsoleIn->ConInEx.WaitForKeyEx = NULL;\r
}\r
+\r
if (ConsoleIn->KeyNotifyProcessEvent != NULL) {\r
gBS->CloseEvent (ConsoleIn->KeyNotifyProcessEvent);\r
ConsoleIn->KeyNotifyProcessEvent = NULL;\r
}\r
+\r
KbdFreeNotifyList (&ConsoleIn->NotifyList);\r
FreeUnicodeStringTable (ConsoleIn->ControllerNameTable);\r
gBS->FreePool (ConsoleIn);\r
**/\r
EFI_STATUS\r
KbdFreeNotifyList (\r
- IN OUT LIST_ENTRY *ListHead\r
+ IN OUT LIST_ENTRY *ListHead\r
)\r
{\r
- KEYBOARD_CONSOLE_IN_EX_NOTIFY *NotifyNode;\r
+ KEYBOARD_CONSOLE_IN_EX_NOTIFY *NotifyNode;\r
\r
if (ListHead == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
while (!IsListEmpty (ListHead)) {\r
NotifyNode = CR (\r
ListHead->ForwardLink,\r
**/\r
EFI_STATUS\r
EFIAPI\r
-InitializePs2Keyboard(\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+InitializePs2Keyboard (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// Install driver model protocol(s).\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
-\r
return Status;\r
}\r
-\r