]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/Ps2Mouse.c
Replace references to RFC 3066 with RFC 4646.
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Isa / Ps2MouseDxe / Ps2Mouse.c
index 45d7a33caf2c69293fe3865ae4244c4be5ca0441..32b527c72c4820d9c0561f98d50a95f0d91205f4 100644 (file)
@@ -1,30 +1,17 @@
-/*++\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
@@ -41,6 +28,20 @@ EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver = {
   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
@@ -48,20 +49,6 @@ PS2MouseDriverSupported (
   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
@@ -121,6 +108,21 @@ Returns:
   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
@@ -128,21 +130,6 @@ PS2MouseDriverStart (
   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
@@ -307,13 +294,22 @@ Returns:
   }\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
@@ -386,6 +382,20 @@ ErrorExit:
   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
@@ -394,21 +404,6 @@ PS2MouseDriverStop (
   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
@@ -487,29 +482,23 @@ PS2MouseDriverStop (
   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
@@ -609,26 +598,20 @@ Exit:
   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
@@ -640,30 +623,22 @@ Returns:
   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
@@ -693,24 +668,22 @@ Returns:
   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
@@ -728,29 +701,21 @@ Returns:
 \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
@@ -761,3 +726,40 @@ Returns:
   //\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