]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.h
add UsbMouseSimulateTouchPad driver to verify the correction of dispatching AbsoluteP...
[mirror_edk2.git] / MdeModulePkg / Universal / Console / ConSplitterDxe / ConSplitter.h
index 4a71bb6294957cb39cdf2707ee7dd3bdbfa3d61a..40bafdf6d23cd83a2f08f132d4f24b10c9688ba3 100644 (file)
@@ -21,6 +21,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/GraphicsOutput.h>\r
 #include <Guid/PrimaryConsoleInDevice.h>\r
 #include <Protocol/SimplePointer.h>\r
+#include <Protocol/AbsolutePointer.h>\r
 #include <Protocol/SimpleTextOut.h>\r
 #include <Guid/ConsoleInDevice.h>\r
 #include <Protocol/SimpleTextIn.h>\r
@@ -47,6 +48,8 @@ extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConInComponentName2;
 extern EFI_DRIVER_BINDING_PROTOCOL  gConSplitterSimplePointerDriverBinding;\r
 extern EFI_COMPONENT_NAME_PROTOCOL  gConSplitterSimplePointerComponentName;\r
 extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterSimplePointerComponentName2;\r
+extern EFI_COMPONENT_NAME_PROTOCOL  gConSplitterAbsolutePointerComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterAbsolutePointerComponentName2;\r
 extern EFI_DRIVER_BINDING_PROTOCOL  gConSplitterConOutDriverBinding;\r
 extern EFI_COMPONENT_NAME_PROTOCOL  gConSplitterConOutComponentName;\r
 extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConOutComponentName2;\r
@@ -89,6 +92,7 @@ typedef struct _TEXT_IN_EX_SPLITTER_NOTIFY {
   EFI_KEY_NOTIFY_FUNCTION               KeyNotificationFn;\r
   LIST_ENTRY                            NotifyEntry;\r
 } TEXT_IN_EX_SPLITTER_NOTIFY;\r
+\r
 typedef struct {\r
   UINT64                         Signature;\r
   EFI_HANDLE                     VirtualHandle;\r
@@ -111,6 +115,13 @@ typedef struct {
   EFI_SIMPLE_POINTER_PROTOCOL    **PointerList;\r
   UINTN                          PointerListCount;\r
 \r
+  EFI_ABSOLUTE_POINTER_PROTOCOL         AbsolutePointer;\r
+  EFI_ABSOLUTE_POINTER_MODE             AbsolutePointerMode;\r
+  UINTN                                                         CurrentNumberOfAbsolutePointers;\r
+  EFI_ABSOLUTE_POINTER_PROTOCOL         **AbsolutePointerList;\r
+  UINTN                                                         AbsolutePointerListCount;\r
+  BOOLEAN                                               AbsoluteInputEventSignalState; \r
+\r
   BOOLEAN                        PasswordEnabled;\r
   CHAR16                         Password[MAX_STD_IN_PASSWORD];\r
   UINTN                          PwdIndex;\r
@@ -368,6 +379,111 @@ ConSplitterStdErrDriverBindingStop (
   )\r
 ;\r
 \r
+//\r
+// Driver binding functions\r
+//\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerDriverBindingSupported (\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
+  IN  EFI_HANDLE                      ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerDriverBindingStart (\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
+  IN  EFI_HANDLE                      ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerDriverBindingStop (\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
+  IN  EFI_HANDLE                      ControllerHandle,\r
+  IN  UINTN                           NumberOfChildren,\r
+  IN  EFI_HANDLE                      *ChildHandleBuffer\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+ConSplitterAbsolutePointerAddDevice (\r
+  IN  TEXT_IN_SPLITTER_PRIVATE_DATA     *Private,\r
+  IN  EFI_ABSOLUTE_POINTER_PROTOCOL     *AbsolutePointer\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+ConSplitterAbsolutePointerDeleteDevice (\r
+  IN  TEXT_IN_SPLITTER_PRIVATE_DATA     *Private,\r
+  IN  EFI_ABSOLUTE_POINTER_PROTOCOL     *AbsolutePointer\r
+  )\r
+;\r
+\r
+//\r
+// Absolute Pointer protocol interfaces\r
+//\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerReset (\r
+  IN EFI_ABSOLUTE_POINTER_PROTOCOL   *This,\r
+  IN BOOLEAN                         ExtendedVerification\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Resets the pointer device hardware.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+    ExtendedVerification  - Driver may perform diagnostics on reset.\r
+\r
+  Returns:\r
+    EFI_SUCCESS           - The device was reset.\r
+    EFI_DEVICE_ERROR      - The device is not functioning correctly and could \r
+                            not be reset.\r
+                            \r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI \r
+ConSplitterAbsolutePointerGetState (\r
+  IN EFI_ABSOLUTE_POINTER_PROTOCOL   *This,\r
+  IN OUT EFI_ABSOLUTE_POINTER_STATE  *State\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Retrieves the current state of a pointer device.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+    State                 - A pointer to the state information on the pointer device.\r
+\r
+  Returns:\r
+    EFI_SUCCESS           - The state of the pointer device was returned in State..\r
+    EFI_NOT_READY         - The state of the pointer device has not changed since the last call to\r
+                            GetState().                                                           \r
+    EFI_DEVICE_ERROR      - A device error occurred while attempting to retrieve the pointer\r
+                            device's current state.                                         \r
+--*/\r
+;\r
+\r
+VOID\r
+EFIAPI\r
+ConSplitterAbsolutePointerWaitForInput (\r
+  IN  EFI_EVENT                       Event,\r
+  IN  VOID                            *Context\r
+  )\r
+;\r
+\r
 /**\r
   Retrieves a Unicode string that is the user readable name of the driver.\r
 \r
@@ -573,6 +689,16 @@ ConSplitterSimplePointerComponentNameGetControllerName (
   OUT CHAR16                                          **ControllerName\r
   );\r
 \r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerComponentNameGetControllerName (\r
+  IN  EFI_COMPONENT_NAME_PROTOCOL                    *This,\r
+  IN  EFI_HANDLE                                      ControllerHandle,\r
+  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,\r
+  IN  CHAR8                                           *Language,\r
+  OUT CHAR16                                          **ControllerName\r
+  )\r
+;\r
 \r
 /**\r
   Retrieves a Unicode string that is the user readable name of the controller\r