6564182252
This update does add diag and debug capabilities to interpret the efi variables, configuration and protocols (lsefi). The side effect is that we add/update bunch of related headers.
528 lines
15 KiB
C
528 lines
15 KiB
C
/* $FreeBSD$ */
|
|
#ifndef _EFI_CON_H
|
|
#define _EFI_CON_H
|
|
|
|
/*++
|
|
|
|
Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved
|
|
This software and associated documentation (if any) is furnished
|
|
under a license and may only be used or copied in accordance
|
|
with the terms of the license. Except as permitted by such
|
|
license, no part of this software or documentation may be
|
|
reproduced, stored in a retrieval system, or transmitted in any
|
|
form or by any means without the express written consent of
|
|
Intel Corporation.
|
|
|
|
Module Name:
|
|
|
|
eficon.h
|
|
|
|
Abstract:
|
|
|
|
EFI console protocols
|
|
|
|
|
|
|
|
Revision History
|
|
|
|
--*/
|
|
|
|
//
|
|
// Text output protocol
|
|
//
|
|
|
|
#define SIMPLE_TEXT_OUTPUT_PROTOCOL \
|
|
{ 0x387477c2, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
|
|
|
|
INTERFACE_DECL(_SIMPLE_TEXT_OUTPUT_INTERFACE);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TEXT_RESET) (
|
|
IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
|
|
IN BOOLEAN ExtendedVerification
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TEXT_OUTPUT_STRING) (
|
|
IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
|
|
IN CHAR16 *String
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TEXT_TEST_STRING) (
|
|
IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
|
|
IN CHAR16 *String
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TEXT_QUERY_MODE) (
|
|
IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
|
|
IN UINTN ModeNumber,
|
|
OUT UINTN *Columns,
|
|
OUT UINTN *Rows
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TEXT_SET_MODE) (
|
|
IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
|
|
IN UINTN ModeNumber
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TEXT_SET_ATTRIBUTE) (
|
|
IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
|
|
IN UINTN Attribute
|
|
);
|
|
|
|
#define EFI_BLACK 0x00
|
|
#define EFI_BLUE 0x01
|
|
#define EFI_GREEN 0x02
|
|
#define EFI_CYAN (EFI_BLUE | EFI_GREEN)
|
|
#define EFI_RED 0x04
|
|
#define EFI_MAGENTA (EFI_BLUE | EFI_RED)
|
|
#define EFI_BROWN (EFI_GREEN | EFI_RED)
|
|
#define EFI_LIGHTGRAY (EFI_BLUE | EFI_GREEN | EFI_RED)
|
|
#define EFI_BRIGHT 0x08
|
|
#define EFI_DARKGRAY (EFI_BRIGHT)
|
|
#define EFI_LIGHTBLUE (EFI_BLUE | EFI_BRIGHT)
|
|
#define EFI_LIGHTGREEN (EFI_GREEN | EFI_BRIGHT)
|
|
#define EFI_LIGHTCYAN (EFI_CYAN | EFI_BRIGHT)
|
|
#define EFI_LIGHTRED (EFI_RED | EFI_BRIGHT)
|
|
#define EFI_LIGHTMAGENTA (EFI_MAGENTA | EFI_BRIGHT)
|
|
#define EFI_YELLOW (EFI_BROWN | EFI_BRIGHT)
|
|
#define EFI_WHITE (EFI_BLUE | EFI_GREEN | EFI_RED | EFI_BRIGHT)
|
|
|
|
#define EFI_TEXT_ATTR(f,b) ((f) | ((b) << 4))
|
|
|
|
#define EFI_BACKGROUND_BLACK 0x00
|
|
#define EFI_BACKGROUND_BLUE 0x10
|
|
#define EFI_BACKGROUND_GREEN 0x20
|
|
#define EFI_BACKGROUND_CYAN (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_GREEN)
|
|
#define EFI_BACKGROUND_RED 0x40
|
|
#define EFI_BACKGROUND_MAGENTA (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_RED)
|
|
#define EFI_BACKGROUND_BROWN (EFI_BACKGROUND_GREEN | EFI_BACKGROUND_RED)
|
|
#define EFI_BACKGROUND_LIGHTGRAY (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_GREEN | EFI_BACKGROUND_RED)
|
|
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TEXT_CLEAR_SCREEN) (
|
|
IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TEXT_SET_CURSOR_POSITION) (
|
|
IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
|
|
IN UINTN Column,
|
|
IN UINTN Row
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TEXT_ENABLE_CURSOR) (
|
|
IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
|
|
IN BOOLEAN Enable
|
|
);
|
|
|
|
typedef struct {
|
|
INT32 MaxMode;
|
|
// current settings
|
|
INT32 Mode;
|
|
INT32 Attribute;
|
|
INT32 CursorColumn;
|
|
INT32 CursorRow;
|
|
BOOLEAN CursorVisible;
|
|
} SIMPLE_TEXT_OUTPUT_MODE;
|
|
|
|
typedef struct _SIMPLE_TEXT_OUTPUT_INTERFACE {
|
|
EFI_TEXT_RESET Reset;
|
|
|
|
EFI_TEXT_OUTPUT_STRING OutputString;
|
|
EFI_TEXT_TEST_STRING TestString;
|
|
|
|
EFI_TEXT_QUERY_MODE QueryMode;
|
|
EFI_TEXT_SET_MODE SetMode;
|
|
EFI_TEXT_SET_ATTRIBUTE SetAttribute;
|
|
|
|
EFI_TEXT_CLEAR_SCREEN ClearScreen;
|
|
EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition;
|
|
EFI_TEXT_ENABLE_CURSOR EnableCursor;
|
|
|
|
// Current mode
|
|
SIMPLE_TEXT_OUTPUT_MODE *Mode;
|
|
} SIMPLE_TEXT_OUTPUT_INTERFACE;
|
|
|
|
//
|
|
// Define's for required EFI Unicode Box Draw character
|
|
//
|
|
|
|
#define BOXDRAW_HORIZONTAL 0x2500
|
|
#define BOXDRAW_VERTICAL 0x2502
|
|
#define BOXDRAW_DOWN_RIGHT 0x250c
|
|
#define BOXDRAW_DOWN_LEFT 0x2510
|
|
#define BOXDRAW_UP_RIGHT 0x2514
|
|
#define BOXDRAW_UP_LEFT 0x2518
|
|
#define BOXDRAW_VERTICAL_RIGHT 0x251c
|
|
#define BOXDRAW_VERTICAL_LEFT 0x2524
|
|
#define BOXDRAW_DOWN_HORIZONTAL 0x252c
|
|
#define BOXDRAW_UP_HORIZONTAL 0x2534
|
|
#define BOXDRAW_VERTICAL_HORIZONTAL 0x253c
|
|
|
|
#define BOXDRAW_DOUBLE_HORIZONTAL 0x2550
|
|
#define BOXDRAW_DOUBLE_VERTICAL 0x2551
|
|
#define BOXDRAW_DOWN_RIGHT_DOUBLE 0x2552
|
|
#define BOXDRAW_DOWN_DOUBLE_RIGHT 0x2553
|
|
#define BOXDRAW_DOUBLE_DOWN_RIGHT 0x2554
|
|
|
|
#define BOXDRAW_DOWN_LEFT_DOUBLE 0x2555
|
|
#define BOXDRAW_DOWN_DOUBLE_LEFT 0x2556
|
|
#define BOXDRAW_DOUBLE_DOWN_LEFT 0x2557
|
|
|
|
#define BOXDRAW_UP_RIGHT_DOUBLE 0x2558
|
|
#define BOXDRAW_UP_DOUBLE_RIGHT 0x2559
|
|
#define BOXDRAW_DOUBLE_UP_RIGHT 0x255a
|
|
|
|
#define BOXDRAW_UP_LEFT_DOUBLE 0x255b
|
|
#define BOXDRAW_UP_DOUBLE_LEFT 0x255c
|
|
#define BOXDRAW_DOUBLE_UP_LEFT 0x255d
|
|
|
|
#define BOXDRAW_VERTICAL_RIGHT_DOUBLE 0x255e
|
|
#define BOXDRAW_VERTICAL_DOUBLE_RIGHT 0x255f
|
|
#define BOXDRAW_DOUBLE_VERTICAL_RIGHT 0x2560
|
|
|
|
#define BOXDRAW_VERTICAL_LEFT_DOUBLE 0x2561
|
|
#define BOXDRAW_VERTICAL_DOUBLE_LEFT 0x2562
|
|
#define BOXDRAW_DOUBLE_VERTICAL_LEFT 0x2563
|
|
|
|
#define BOXDRAW_DOWN_HORIZONTAL_DOUBLE 0x2564
|
|
#define BOXDRAW_DOWN_DOUBLE_HORIZONTAL 0x2565
|
|
#define BOXDRAW_DOUBLE_DOWN_HORIZONTAL 0x2566
|
|
|
|
#define BOXDRAW_UP_HORIZONTAL_DOUBLE 0x2567
|
|
#define BOXDRAW_UP_DOUBLE_HORIZONTAL 0x2568
|
|
#define BOXDRAW_DOUBLE_UP_HORIZONTAL 0x2569
|
|
|
|
#define BOXDRAW_VERTICAL_HORIZONTAL_DOUBLE 0x256a
|
|
#define BOXDRAW_VERTICAL_DOUBLE_HORIZONTAL 0x256b
|
|
#define BOXDRAW_DOUBLE_VERTICAL_HORIZONTAL 0x256c
|
|
|
|
//
|
|
// EFI Required Block Elements Code Chart
|
|
//
|
|
|
|
#define BLOCKELEMENT_FULL_BLOCK 0x2588
|
|
#define BLOCKELEMENT_LIGHT_SHADE 0x2591
|
|
//
|
|
// EFI Required Geometric Shapes Code Chart
|
|
//
|
|
|
|
#define GEOMETRICSHAPE_UP_TRIANGLE 0x25b2
|
|
#define GEOMETRICSHAPE_RIGHT_TRIANGLE 0x25ba
|
|
#define GEOMETRICSHAPE_DOWN_TRIANGLE 0x25bc
|
|
#define GEOMETRICSHAPE_LEFT_TRIANGLE 0x25c4
|
|
|
|
//
|
|
// EFI Required Arrow shapes
|
|
//
|
|
|
|
#define ARROW_UP 0x2191
|
|
#define ARROW_DOWN 0x2193
|
|
|
|
//
|
|
// Text input protocol
|
|
//
|
|
|
|
#define SIMPLE_TEXT_INPUT_PROTOCOL \
|
|
{ 0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
|
|
|
|
INTERFACE_DECL(_SIMPLE_INPUT_INTERFACE);
|
|
|
|
typedef struct {
|
|
UINT16 ScanCode;
|
|
CHAR16 UnicodeChar;
|
|
} EFI_INPUT_KEY;
|
|
|
|
//
|
|
// Baseline unicode control chars
|
|
//
|
|
|
|
#define CHAR_NULL 0x0000
|
|
#define CHAR_BACKSPACE 0x0008
|
|
#define CHAR_TAB 0x0009
|
|
#define CHAR_LINEFEED 0x000A
|
|
#define CHAR_CARRIAGE_RETURN 0x000D
|
|
|
|
//
|
|
// Scan codes for base line keys
|
|
//
|
|
|
|
#define SCAN_NULL 0x0000
|
|
#define SCAN_UP 0x0001
|
|
#define SCAN_DOWN 0x0002
|
|
#define SCAN_RIGHT 0x0003
|
|
#define SCAN_LEFT 0x0004
|
|
#define SCAN_HOME 0x0005
|
|
#define SCAN_END 0x0006
|
|
#define SCAN_INSERT 0x0007
|
|
#define SCAN_DELETE 0x0008
|
|
#define SCAN_PAGE_UP 0x0009
|
|
#define SCAN_PAGE_DOWN 0x000A
|
|
#define SCAN_F1 0x000B
|
|
#define SCAN_F2 0x000C
|
|
#define SCAN_F3 0x000D
|
|
#define SCAN_F4 0x000E
|
|
#define SCAN_F5 0x000F
|
|
#define SCAN_F6 0x0010
|
|
#define SCAN_F7 0x0011
|
|
#define SCAN_F8 0x0012
|
|
#define SCAN_F9 0x0013
|
|
#define SCAN_F10 0x0014
|
|
#define SCAN_ESC 0x0017
|
|
|
|
//
|
|
// EFI Scan code Ex
|
|
//
|
|
#define SCAN_F11 0x0015
|
|
#define SCAN_F12 0x0016
|
|
#define SCAN_F13 0x0068
|
|
#define SCAN_F14 0x0069
|
|
#define SCAN_F15 0x006A
|
|
#define SCAN_F16 0x006B
|
|
#define SCAN_F17 0x006C
|
|
#define SCAN_F18 0x006D
|
|
#define SCAN_F19 0x006E
|
|
#define SCAN_F20 0x006F
|
|
#define SCAN_F21 0x0070
|
|
#define SCAN_F22 0x0071
|
|
#define SCAN_F23 0x0072
|
|
#define SCAN_F24 0x0073
|
|
#define SCAN_MUTE 0x007F
|
|
#define SCAN_VOLUME_UP 0x0080
|
|
#define SCAN_VOLUME_DOWN 0x0081
|
|
#define SCAN_BRIGHTNESS_UP 0x0100
|
|
#define SCAN_BRIGHTNESS_DOWN 0x0101
|
|
#define SCAN_SUSPEND 0x0102
|
|
#define SCAN_HIBERNATE 0x0103
|
|
#define SCAN_TOGGLE_DISPLAY 0x0104
|
|
#define SCAN_RECOVERY 0x0105
|
|
#define SCAN_EJECT 0x0106
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_INPUT_RESET) (
|
|
IN struct _SIMPLE_INPUT_INTERFACE *This,
|
|
IN BOOLEAN ExtendedVerification
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_INPUT_READ_KEY) (
|
|
IN struct _SIMPLE_INPUT_INTERFACE *This,
|
|
OUT EFI_INPUT_KEY *Key
|
|
);
|
|
|
|
typedef struct _SIMPLE_INPUT_INTERFACE {
|
|
EFI_INPUT_RESET Reset;
|
|
EFI_INPUT_READ_KEY ReadKeyStroke;
|
|
EFI_EVENT WaitForKey;
|
|
} SIMPLE_INPUT_INTERFACE;
|
|
|
|
#define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID \
|
|
{0xdd9e7534, 0x7762, 0x4698, {0x8c, 0x14, 0xf5, 0x85, \
|
|
0x17, 0xa6, 0x25, 0xaa} }
|
|
|
|
INTERFACE_DECL(_EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL);
|
|
|
|
typedef UINT8 EFI_KEY_TOGGLE_STATE;
|
|
//
|
|
// Any Shift or Toggle State that is valid should have
|
|
// high order bit set.
|
|
//
|
|
typedef struct EFI_KEY_STATE {
|
|
UINT32 KeyShiftState;
|
|
EFI_KEY_TOGGLE_STATE KeyToggleState;
|
|
} EFI_KEY_STATE;
|
|
|
|
typedef struct {
|
|
EFI_INPUT_KEY Key;
|
|
EFI_KEY_STATE KeyState;
|
|
} EFI_KEY_DATA;
|
|
|
|
//
|
|
// Shift state
|
|
//
|
|
#define EFI_SHIFT_STATE_VALID 0x80000000
|
|
#define EFI_RIGHT_SHIFT_PRESSED 0x00000001
|
|
#define EFI_LEFT_SHIFT_PRESSED 0x00000002
|
|
#define EFI_RIGHT_CONTROL_PRESSED 0x00000004
|
|
#define EFI_LEFT_CONTROL_PRESSED 0x00000008
|
|
#define EFI_RIGHT_ALT_PRESSED 0x00000010
|
|
#define EFI_LEFT_ALT_PRESSED 0x00000020
|
|
#define EFI_RIGHT_LOGO_PRESSED 0x00000040
|
|
#define EFI_LEFT_LOGO_PRESSED 0x00000080
|
|
#define EFI_MENU_KEY_PRESSED 0x00000100
|
|
#define EFI_SYS_REQ_PRESSED 0x00000200
|
|
|
|
//
|
|
// Toggle state
|
|
//
|
|
#define EFI_TOGGLE_STATE_VALID 0x80
|
|
#define EFI_KEY_STATE_EXPOSED 0x40
|
|
#define EFI_SCROLL_LOCK_ACTIVE 0x01
|
|
#define EFI_NUM_LOCK_ACTIVE 0x02
|
|
#define EFI_CAPS_LOCK_ACTIVE 0x04
|
|
|
|
//
|
|
// EFI Key Notfication Function
|
|
//
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_KEY_NOTIFY_FUNCTION) (
|
|
IN EFI_KEY_DATA *KeyData
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_INPUT_RESET_EX) (
|
|
IN struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
|
|
IN BOOLEAN ExtendedVerification
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
Reset the input device and optionaly run diagnostics
|
|
|
|
Arguments:
|
|
This - Protocol instance pointer.
|
|
ExtendedVerification - Driver may perform diagnostics on reset.
|
|
|
|
Returns:
|
|
EFI_SUCCESS - The device was reset.
|
|
EFI_DEVICE_ERROR - The device is not functioning properly and could
|
|
not be reset.
|
|
|
|
--*/
|
|
;
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_INPUT_READ_KEY_EX) (
|
|
IN struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
|
|
OUT EFI_KEY_DATA *KeyData
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
Reads the next keystroke from the input device. The WaitForKey Event can
|
|
be used to test for existance of a keystroke via WaitForEvent () call.
|
|
|
|
Arguments:
|
|
This - Protocol instance pointer.
|
|
KeyData - A pointer to a buffer that is filled in with the keystroke
|
|
state data for the key that was pressed.
|
|
|
|
Returns:
|
|
EFI_SUCCESS - The keystroke information was returned.
|
|
EFI_NOT_READY - There was no keystroke data availiable.
|
|
EFI_DEVICE_ERROR - The keystroke information was not returned due to
|
|
hardware errors.
|
|
EFI_INVALID_PARAMETER - KeyData is NULL.
|
|
--*/
|
|
;
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_SET_STATE) (
|
|
IN struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
|
|
IN EFI_KEY_TOGGLE_STATE *KeyToggleState
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
Set certain state for the input device.
|
|
|
|
Arguments:
|
|
This - Protocol instance pointer.
|
|
KeyToggleState - A pointer to the EFI_KEY_TOGGLE_STATE to set the
|
|
state for the input device.
|
|
|
|
Returns:
|
|
EFI_SUCCESS - The device state was set successfully.
|
|
EFI_DEVICE_ERROR - The device is not functioning correctly and could
|
|
not have the setting adjusted.
|
|
EFI_UNSUPPORTED - The device does not have the ability to set its state.
|
|
EFI_INVALID_PARAMETER - KeyToggleState is NULL.
|
|
|
|
--*/
|
|
;
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_REGISTER_KEYSTROKE_NOTIFY) (
|
|
IN struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
|
|
IN EFI_KEY_DATA *KeyData,
|
|
IN EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction,
|
|
OUT EFI_HANDLE *NotifyHandle
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
Register a notification function for a particular keystroke for the input device.
|
|
|
|
Arguments:
|
|
This - Protocol instance pointer.
|
|
KeyData - A pointer to a buffer that is filled in with the keystroke
|
|
information data for the key that was pressed.
|
|
KeyNotificationFunction - Points to the function to be called when the key
|
|
sequence is typed specified by KeyData.
|
|
NotifyHandle - Points to the unique handle assigned to the registered notification.
|
|
|
|
Returns:
|
|
EFI_SUCCESS - The notification function was registered successfully.
|
|
EFI_OUT_OF_RESOURCES - Unable to allocate resources for necesssary data structures.
|
|
EFI_INVALID_PARAMETER - KeyData or NotifyHandle is NULL.
|
|
|
|
--*/
|
|
;
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY) (
|
|
IN struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
|
|
IN EFI_HANDLE NotificationHandle
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
Remove a registered notification function from a particular keystroke.
|
|
|
|
Arguments:
|
|
This - Protocol instance pointer.
|
|
NotificationHandle - The handle of the notification function being unregistered.
|
|
|
|
Returns:
|
|
EFI_SUCCESS - The notification function was unregistered successfully.
|
|
EFI_INVALID_PARAMETER - The NotificationHandle is invalid.
|
|
EFI_NOT_FOUND - Can not find the matching entry in database.
|
|
|
|
--*/
|
|
;
|
|
|
|
typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL {
|
|
EFI_INPUT_RESET_EX Reset;
|
|
EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx;
|
|
EFI_EVENT WaitForKeyEx;
|
|
EFI_SET_STATE SetState;
|
|
EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify;
|
|
EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify;
|
|
} EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL;
|
|
|
|
#endif
|