EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index

MdePkg/Include/Protocol/SimpleTextInEx.h

Go to the documentation of this file.
00001 
00019 #ifndef __SIMPLE_TEXT_IN_EX_H__
00020 #define __SIMPLE_TEXT_IN_EX_H__
00021 
00022 #include <Protocol/SimpleTextIn.h>
00023 
00024 #define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID \
00025   {0xdd9e7534, 0x7762, 0x4698, { 0x8c, 0x14, 0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa } }
00026 
00027 
00028 typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL;
00029 
00055 typedef
00056 EFI_STATUS
00057 (EFIAPI *EFI_INPUT_RESET_EX)(
00058   IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
00059   IN BOOLEAN                           ExtendedVerification
00060 );
00061 
00062 
00068 typedef UINT8 EFI_KEY_TOGGLE_STATE;
00069 
00070 typedef struct _EFI_KEY_STATE {
00077   UINT32                KeyShiftState;
00084   EFI_KEY_TOGGLE_STATE  KeyToggleState;
00085 } EFI_KEY_STATE;
00086 
00087 typedef struct {
00091   EFI_INPUT_KEY   Key;
00095   EFI_KEY_STATE   KeyState;
00096 } EFI_KEY_DATA;
00097 
00098 //
00099 // Any Shift or Toggle State that is valid should have
00100 // high order bit set.
00101 //
00102 // Shift state
00103 //
00104 #define EFI_SHIFT_STATE_VALID     0x80000000
00105 #define EFI_RIGHT_SHIFT_PRESSED   0x00000001
00106 #define EFI_LEFT_SHIFT_PRESSED    0x00000002
00107 #define EFI_RIGHT_CONTROL_PRESSED 0x00000004
00108 #define EFI_LEFT_CONTROL_PRESSED  0x00000008
00109 #define EFI_RIGHT_ALT_PRESSED     0x00000010
00110 #define EFI_LEFT_ALT_PRESSED      0x00000020
00111 #define EFI_RIGHT_LOGO_PRESSED    0x00000040
00112 #define EFI_LEFT_LOGO_PRESSED     0x00000080
00113 #define EFI_MENU_KEY_PRESSED      0x00000100
00114 #define EFI_SYS_REQ_PRESSED       0x00000200
00115 
00116 //
00117 // Toggle state
00118 //
00119 #define EFI_TOGGLE_STATE_VALID    0x80
00120 #define EFI_KEY_STATE_EXPOSED     0x40
00121 #define EFI_SCROLL_LOCK_ACTIVE    0x01
00122 #define EFI_NUM_LOCK_ACTIVE       0x02
00123 #define EFI_CAPS_LOCK_ACTIVE      0x04
00124 
00125 //
00126 // EFI Scan codes
00127 //
00128 #define SCAN_F11                  0x0015
00129 #define SCAN_F12                  0x0016
00130 #define SCAN_PAUSE                0x0048
00131 #define SCAN_F13                  0x0068
00132 #define SCAN_F14                  0x0069
00133 #define SCAN_F15                  0x006A
00134 #define SCAN_F16                  0x006B
00135 #define SCAN_F17                  0x006C
00136 #define SCAN_F18                  0x006D
00137 #define SCAN_F19                  0x006E
00138 #define SCAN_F20                  0x006F
00139 #define SCAN_F21                  0x0070
00140 #define SCAN_F22                  0x0071
00141 #define SCAN_F23                  0x0072
00142 #define SCAN_F24                  0x0073
00143 #define SCAN_MUTE                 0x007F
00144 #define SCAN_VOLUME_UP            0x0080
00145 #define SCAN_VOLUME_DOWN          0x0081
00146 #define SCAN_BRIGHTNESS_UP        0x0100
00147 #define SCAN_BRIGHTNESS_DOWN      0x0101
00148 #define SCAN_SUSPEND              0x0102
00149 #define SCAN_HIBERNATE            0x0103
00150 #define SCAN_TOGGLE_DISPLAY       0x0104
00151 #define SCAN_RECOVERY             0x0105
00152 #define SCAN_EJECT                0x0106
00153 
00203 typedef
00204 EFI_STATUS
00205 (EFIAPI *EFI_INPUT_READ_KEY_EX)(
00206   IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
00207   OUT EFI_KEY_DATA                      *KeyData
00208 );
00209 
00230 typedef
00231 EFI_STATUS
00232 (EFIAPI *EFI_SET_STATE)(
00233   IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
00234   IN EFI_KEY_TOGGLE_STATE              *KeyToggleState
00235 );
00236 
00240 typedef
00241 EFI_STATUS
00242 (EFIAPI *EFI_KEY_NOTIFY_FUNCTION)(
00243   IN EFI_KEY_DATA *KeyData
00244 );
00245 
00271 typedef
00272 EFI_STATUS
00273 (EFIAPI *EFI_REGISTER_KEYSTROKE_NOTIFY)(
00274   IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
00275   IN  EFI_KEY_DATA                      *KeyData,
00276   IN  EFI_KEY_NOTIFY_FUNCTION           KeyNotificationFunction,
00277   OUT EFI_HANDLE                        *NotifyHandle
00278 );
00279 
00295 typedef
00296 EFI_STATUS
00297 (EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY)(
00298   IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,
00299   IN EFI_HANDLE                         NotificationHandle
00300 );
00301 
00302 
00309 struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL{
00310   EFI_INPUT_RESET_EX              Reset;
00311   EFI_INPUT_READ_KEY_EX           ReadKeyStrokeEx;
00315   EFI_EVENT                       WaitForKeyEx;
00316   EFI_SET_STATE                   SetState;
00317   EFI_REGISTER_KEYSTROKE_NOTIFY   RegisterKeyNotify;
00318   EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify;
00319 };
00320 
00321 
00322 extern EFI_GUID gEfiSimpleTextInputExProtocolGuid;
00323 
00324 #endif
00325 
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines