]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/SimpleTextInEx.h
MdePkg/SimpleTextInEx.h: Fix comments alignment
[mirror_edk2.git] / MdePkg / Include / Protocol / SimpleTextInEx.h
index 430ec601bed9bdecf70efe25c0d091583d488c2e..ffc11c601e1304e3ee283d4675a4a633dc4bd571 100644 (file)
@@ -1,23 +1,26 @@
 /** @file\r
-  The file defines the protocol to obtain input from the\r
-  ConsoleIn device. The EFI specification requires that the\r
-  EFI_SIMPLE_TEXT_INPUT_PROTOCOL supports the same languages as\r
-  the corresponding\r
+  Simple Text Input Ex protocol from the UEFI 2.0 specification.\r
 \r
-  Copyright (c) 2006 - 2009, 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
+  This protocol defines an extension to the EFI_SIMPLE_TEXT_INPUT_PROTOCOL\r
+  which exposes much more state and modifier information from the input device,\r
+  also allows one to register a notification for a particular keystroke.\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
+  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  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
+  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
 \r
 #ifndef __SIMPLE_TEXT_IN_EX_H__\r
 #define __SIMPLE_TEXT_IN_EX_H__\r
 \r
+#include <Protocol/SimpleTextIn.h>\r
+\r
 #define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID \\r
   {0xdd9e7534, 0x7762, 0x4698, { 0x8c, 0x14, 0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa } }\r
 \r
@@ -44,7 +47,7 @@ typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL EFI_SIMPLE_TEXT_INPUT_EX_PROTO
 \r
 \r
   @retval EFI_SUCCESS       The device was reset.\r
-  \r
+\r
   @retval EFI_DEVICE_ERROR  The device is not functioning\r
                             correctly and could not be reset.\r
 \r
@@ -58,8 +61,8 @@ EFI_STATUS
 \r
 \r
 ///\r
-/// EFI_KEY_TOGGLE_STATE. The toggle state are defined.\r
-/// They are EFI_TOGGLE_STATE_VALID, EFI_SCROLL_LOCK_ACTIVE\r
+/// EFI_KEY_TOGGLE_STATE. The toggle states are defined.\r
+/// They are: EFI_TOGGLE_STATE_VALID, EFI_SCROLL_LOCK_ACTIVE\r
 /// EFI_NUM_LOCK_ACTIVE, EFI_CAPS_LOCK_ACTIVE\r
 ///\r
 typedef UINT8 EFI_KEY_TOGGLE_STATE;\r
@@ -110,17 +113,21 @@ typedef struct {
 #define EFI_MENU_KEY_PRESSED      0x00000100\r
 #define EFI_SYS_REQ_PRESSED       0x00000200\r
 \r
-//                            \r
-// Toggle state               \r
-//                            \r
+//\r
+// Toggle state\r
+//\r
 #define EFI_TOGGLE_STATE_VALID    0x80\r
+#define EFI_KEY_STATE_EXPOSED     0x40\r
 #define EFI_SCROLL_LOCK_ACTIVE    0x01\r
 #define EFI_NUM_LOCK_ACTIVE       0x02\r
 #define EFI_CAPS_LOCK_ACTIVE      0x04\r
-                              \r
-//                            \r
-// EFI Scan codes             \r
-//                            \r
+\r
+//\r
+// EFI Scan codes\r
+//\r
+#define SCAN_F11                  0x0015\r
+#define SCAN_F12                  0x0016\r
+#define SCAN_PAUSE                0x0048\r
 #define SCAN_F13                  0x0068\r
 #define SCAN_F14                  0x0069\r
 #define SCAN_F15                  0x006A\r
@@ -149,7 +156,7 @@ typedef struct {
   there is no pending keystroke the function returns\r
   EFI_NOT_READY. If there is a pending keystroke, then\r
   KeyData.Key.ScanCode is the EFI scan code defined in Error!\r
-  Reference source not found.. The KeyData.Key.UnicodeChar is the\r
+  Reference source not found. The KeyData.Key.UnicodeChar is the\r
   actual printable character or is zero if the key does not\r
   represent a printable character (control key, function key,\r
   etc.). The KeyData.KeyState is shift state for the character\r
@@ -175,21 +182,18 @@ typedef struct {
   state information, and in those cases the high order bit in the\r
   respective Toggle and Shift state fields should not be active.\r
 \r
-  \r
+\r
   @param This     A pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance.\r
 \r
   @param KeyData  A pointer to a buffer that is filled in with\r
                   the keystroke state data for the key that was\r
                   pressed.\r
 \r
-  \r
-  @retval EFI_SUCCESS     The keystroke information was\r
-                          returned.\r
-  \r
-  @retval EFI_NOT_READY   There was no keystroke data available.\r
-                          EFI_DEVICE_ERROR The keystroke\r
-                          information was not returned due to\r
-                          hardware errors.\r
+\r
+  @retval EFI_SUCCESS      The keystroke information was returned.\r
+  @retval EFI_NOT_READY    There was no keystroke data available.\r
+  @retval EFI_DEVICE_ERROR The keystroke information was not returned due to\r
+                           hardware errors.\r
 \r
 \r
 **/\r
@@ -203,13 +207,13 @@ EFI_STATUS
 /**\r
   The SetState() function allows the input device hardware to\r
   have state settings adjusted.\r
-  \r
+\r
   @param This           A pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance.\r
-  \r
+\r
   @param KeyToggleState Pointer to the EFI_KEY_TOGGLE_STATE to\r
                         set the state for the input device.\r
-  \r
-  \r
+\r
+\r
   @retval EFI_SUCCESS       The device state was set appropriately.\r
 \r
   @retval EFI_DEVICE_ERROR  The device is not functioning\r
@@ -239,23 +243,24 @@ EFI_STATUS
 /**\r
   The RegisterKeystrokeNotify() function registers a function\r
   which will be called when a specified keystroke will occur.\r
-  \r
+\r
   @param This                     A pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance.\r
-  \r
+\r
   @param KeyData                  A pointer to a buffer that is filled in with\r
                                   the keystroke information for the key that was\r
-                                  pressed.\r
-  \r
-  @param KeyNotificationFunction  Points to the function to be\r
-                                  called when the key sequence\r
-                                  is typed specified by KeyData.\r
-  \r
-  \r
+                                  pressed. If KeyData.Key, KeyData.KeyState.KeyToggleState\r
+                                  and KeyData.KeyState.KeyShiftState are 0, then any incomplete\r
+                                  keystroke will trigger a notification of the KeyNotificationFunction.\r
+\r
+  @param KeyNotificationFunction  Points to the function to be called when the key sequence\r
+                                  is typed specified by KeyData. This notification function\r
+                                  should be called at <=TPL_CALLBACK.\r
+\r
+\r
   @param NotifyHandle             Points to the unique handle assigned to\r
                                   the registered notification.\r
-  \r
-  @retval EFI_SUCCESS           The device state was set\r
-                                appropriately.\r
+\r
+  @retval EFI_SUCCESS           Key notify was registered successfully.\r
 \r
   @retval EFI_OUT_OF_RESOURCES  Unable to allocate necessary\r
                                 data structures.\r
@@ -267,20 +272,20 @@ EFI_STATUS
   IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
   IN  EFI_KEY_DATA                      *KeyData,\r
   IN  EFI_KEY_NOTIFY_FUNCTION           KeyNotificationFunction,\r
-  OUT EFI_HANDLE                        *NotifyHandle\r
+  OUT VOID                              **NotifyHandle\r
 );\r
 \r
 /**\r
   The UnregisterKeystrokeNotify() function removes the\r
   notification which was previously registered.\r
-  \r
+\r
   @param This               A pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance.\r
-  \r
+\r
   @param NotificationHandle The handle of the notification\r
                             function being unregistered.\r
-  \r
-  @retval EFI_SUCCESS The device state was set appropriately.\r
-  \r
+\r
+  @retval EFI_SUCCESS           Key notify was unregistered successfully.\r
+\r
   @retval EFI_INVALID_PARAMETER The NotificationHandle is\r
                                 invalid.\r
 \r
@@ -289,7 +294,7 @@ typedef
 EFI_STATUS\r
 (EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY)(\r
   IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,\r
-  IN EFI_HANDLE                         NotificationHandle\r
+  IN VOID                               *NotificationHandle\r
 );\r
 \r
 \r