-/*++\r
-\r
-Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved. <BR>\r
-This software and associated documentation (if any) is furnished\r
-under a license and may only be used or copied in accordance\r
-with the terms of the license. Except as permitted by such\r
-license, no part of this software or documentation may be\r
-reproduced, stored in a retrieval system, or transmitted in any\r
-form or by any means without the express written consent of\r
-Intel Corporation.\r
-\r
-\r
-Module Name:\r
-\r
- Ps2Mouse.c\r
-\r
-Abstract:\r
-\r
+/**@file\r
PS/2 Mouse driver. Routines that interacts with callers,\r
conforming to EFI driver model\r
+ \r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
\r
---*/\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
-//\r
-// Include common header file for this module.\r
-//\r
-#include "CommonHeader.h"\r
+**/\r
\r
#include "Ps2Mouse.h"\r
#include "CommPs2.h"\r
NULL\r
};\r
\r
+/**\r
+ Test to see if this driver supports ControllerHandle. Any ControllerHandle\r
+ than contains a IsaIo protocol can be supported.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param ControllerHandle Handle of device to test\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS This driver supports this device\r
+ @retval EFI_ALREADY_STARTED This driver is already running on this device\r
+ @retval other This driver does not support this device\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
PS2MouseDriverSupported (\r
IN EFI_HANDLE Controller,\r
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- ControllerDriver Protocol Method\r
-\r
-Arguments:\r
-\r
-Returns:\r
-\r
---*/\r
-// GC_TODO: This - add argument and description to function comment\r
-// GC_TODO: Controller - add argument and description to function comment\r
-// GC_TODO: RemainingDevicePath - add argument and description to function comment\r
{\r
EFI_STATUS Status;\r
EFI_ISA_IO_PROTOCOL *IsaIo;\r
return Status;\r
}\r
\r
+/**\r
+ Start this driver on ControllerHandle by opening a IsaIo\r
+ protocol, creating PS2_MOUSE_ABSOLUTE_POINTER_DEV device and install gEfiAbsolutePointerProtocolGuid\r
+ finnally.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param ControllerHandle Handle of device to bind driver to\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS This driver is added to ControllerHandle\r
+ @retval EFI_ALREADY_STARTED This driver is already running on ControllerHandle\r
+ @retval other This driver does not support this device\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
PS2MouseDriverStart (\r
IN EFI_HANDLE Controller,\r
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
-/*++\r
-\r
-Routine Description:\r
- Start protocol interfaces for the mouse device handles.\r
-\r
-Arguments:\r
- This - Protocol instance pointer.\r
- Controller - Handle of device to bind driver to.\r
- RemainingDevicePath - Not used.\r
-\r
-Returns:\r
- EFI_SUCCESS - This driver is added to DeviceHandle.\r
- other - Errors occurred.\r
-\r
---*/\r
{\r
EFI_STATUS Status;\r
EFI_STATUS EmptyStatus;\r
}\r
\r
MouseDev->ControllerNameTable = NULL;\r
- AddUnicodeString (\r
+ AddUnicodeString2 (\r
"eng",\r
gPs2MouseComponentName.SupportedLanguages,\r
&MouseDev->ControllerNameTable,\r
- L"PS/2 Mouse Device"\r
+ L"PS/2 Mouse Device",\r
+ TRUE\r
+ );\r
+ AddUnicodeString2 (\r
+ "en",\r
+ gPs2MouseComponentName2.SupportedLanguages,\r
+ &MouseDev->ControllerNameTable,\r
+ L"PS/2 Mouse Device",\r
+ FALSE\r
);\r
\r
+\r
//\r
// Install protocol interfaces for the mouse device.\r
//\r
return Status;\r
}\r
\r
+/**\r
+ Stop this driver on ControllerHandle. Support stoping any child handles\r
+ created by this driver.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param ControllerHandle Handle of device to stop driver on\r
+ @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of\r
+ children is zero stop the entire bus driver.\r
+ @param ChildHandleBuffer List of Child Handles to Stop.\r
+\r
+ @retval EFI_SUCCESS This driver is removed ControllerHandle\r
+ @retval other This driver was not removed from this device\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
PS2MouseDriverStop (\r
IN UINTN NumberOfChildren,\r
IN EFI_HANDLE *ChildHandleBuffer\r
)\r
-/*++\r
-\r
- Routine Description:\r
-\r
- Arguments:\r
-\r
- Returns:\r
-\r
---*/\r
-// GC_TODO: This - add argument and description to function comment\r
-// GC_TODO: Controller - add argument and description to function comment\r
-// GC_TODO: NumberOfChildren - add argument and description to function comment\r
-// GC_TODO: ChildHandleBuffer - add argument and description to function comment\r
-// GC_TODO: EFI_SUCCESS - add return value to function comment\r
-// GC_TODO: EFI_SUCCESS - add return value to function comment\r
{\r
EFI_STATUS Status;\r
EFI_SIMPLE_POINTER_PROTOCOL *SimplePointerProtocol;\r
return EFI_SUCCESS;\r
}\r
\r
+/**\r
+ Reset the Mouse and do BAT test for it, if ExtendedVerification isTRUE and there is a mouse device connectted to system\r
+\r
+ @param This - Pointer of simple pointer Protocol.\r
+ @param ExtendedVerification - Whether configure mouse parameters. True: do; FALSE: skip.\r
+\r
+\r
+ @retval EFI_SUCCESS - The command byte is written successfully.\r
+ @retval EFI_DEVICE_ERROR - Errors occurred during reseting keyboard.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
MouseReset (\r
IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
IN BOOLEAN ExtendedVerification\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Reset the Mouse and do BAT test for it, if ExtendedVerification isTRUE and there is a mouse device connectted to system\r
-\r
-Arguments:\r
-\r
- This - Pointer of simple pointer Protocol.\r
- ExtendedVerification - Whether configure mouse parameters. True: do; FALSE: skip.\r
-\r
-Returns:\r
-\r
- EFI_SUCCESS - The command byte is written successfully.\r
- EFI_DEVICE_ERROR - Errors occurred during reseting keyboard.\r
-\r
---*/\r
{\r
EFI_STATUS Status;\r
PS2_MOUSE_DEV *MouseDev;\r
return Status;\r
}\r
\r
-BOOLEAN\r
-CheckMouseConnect (\r
- IN PS2_MOUSE_DEV *MouseDev\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
+/**\r
Check whether there is Ps/2 mouse device in system\r
\r
-Arguments:\r
-\r
- PS2_MOUSE_DEV - Mouse Private Data Structure\r
+ @param PS2_MOUSE_DEV - Mouse Private Data Structure\r
\r
-Returns:\r
+ @retval TRUE - Keyboard in System.\r
+ @retval FALSE - Keyboard not in System.\r
\r
- TRUE - Keyboard in System.\r
- FALSE - Keyboard not in System.\r
+**/\r
+BOOLEAN\r
+CheckMouseConnect (\r
+ IN PS2_MOUSE_DEV *MouseDev\r
+ )\r
\r
---*/\r
{\r
EFI_STATUS Status;\r
\r
return FALSE;\r
}\r
\r
+/**\r
+ Get and Clear mouse status.\r
+ \r
+ @param This - Pointer of simple pointer Protocol.\r
+ @param State - Output buffer holding status.\r
+\r
+ @retval EFI_INVALID_PARAMETER Output buffer is invalid.\r
+ @retval EFI_NOT_READY Mouse is not changed status yet.\r
+ @retval EFI_SUCCESS Mouse status is changed and get successful.\r
+**/\r
EFI_STATUS\r
EFIAPI\r
MouseGetState (\r
IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
IN OUT EFI_SIMPLE_POINTER_STATE *State\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- GC_TODO: Add function description\r
-\r
-Arguments:\r
-\r
- This - GC_TODO: add argument description\r
- State - GC_TODO: add argument description\r
-\r
-Returns:\r
-\r
- EFI_INVALID_PARAMETER - GC_TODO: Add description for return value\r
- EFI_NOT_READY - GC_TODO: Add description for return value\r
- EFI_SUCCESS - GC_TODO: Add description for return value\r
-\r
---*/\r
{\r
PS2_MOUSE_DEV *MouseDev;\r
EFI_TPL OldTpl;\r
return EFI_SUCCESS;\r
}\r
\r
-VOID\r
-EFIAPI\r
-MouseWaitForInput (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- )\r
-/*++\r
-\r
-Routine Description:\r
+/**\r
\r
Event notification function for SIMPLE_POINTER.WaitForInput event\r
Signal the event if there is input from mouse\r
\r
-Arguments:\r
+ @param Event event object\r
+ @param Context event context\r
\r
-Returns:\r
+**/\r
\r
---*/\r
+VOID\r
+EFIAPI\r
+MouseWaitForInput (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ )\r
// GC_TODO: Event - add argument and description to function comment\r
// GC_TODO: Context - add argument and description to function comment\r
{\r
\r
}\r
\r
+/**\r
+ Event notification function for TimerEvent event\r
+ If mouse device is connected to system, try to get the mouse packet data\r
+\r
+ @param Event - TimerEvent in PS2_MOUSE_DEV\r
+ @param Context - Pointer to PS2_MOUSE_DEV structure\r
+\r
+**/\r
VOID\r
EFIAPI\r
PollMouse (\r
IN EFI_EVENT Event,\r
IN VOID *Context\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Event notification function for TimerEvent event\r
- If mouse device is connected to system, try to get the mouse packet data\r
\r
-Arguments:\r
-\r
- Event - TimerEvent in PS2_MOUSE_DEV\r
- Context - Pointer to PS2_MOUSE_DEV structure\r
-\r
-Returns:\r
-\r
- None\r
-\r
---*/\r
{\r
PS2_MOUSE_DEV *MouseDev;\r
\r
//\r
PS2MouseGetPacket (MouseDev);\r
}\r
+\r
+/**\r
+ The user Entry Point for module Ps2Mouse. The user code starts with this function.\r
+\r
+ @param[in] ImageHandle The firmware allocated handle for the EFI image. \r
+ @param[in] SystemTable A pointer to the EFI System Table.\r
+ \r
+ @retval EFI_SUCCESS The entry point is executed successfully.\r
+ @retval other Some error occurs when executing this entry point.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+InitializePs2Mouse(\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+\r
+ //\r
+ // Install driver model protocol(s).\r
+ //\r
+ Status = EfiLibInstallDriverBindingComponentName2 (\r
+ ImageHandle,\r
+ SystemTable,\r
+ &gPS2MouseDriver,\r
+ ImageHandle,\r
+ &gPs2MouseComponentName,\r
+ &gPs2MouseComponentName2\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
+\r
+ return Status;\r
+}\r
+\r