123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306 |
- #ifndef _EFI_CON_H
- #define _EFI_CON_H
- /*++
- Copyright (c) 1998 Intel Corporation
- Module Name:
- eficon.h
- Abstract:
- EFI console protocols
- Revision History
- --*/
- //
- // Text output protocol
- //
- #define EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID \
- { 0x387477c2, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
- #define SIMPLE_TEXT_OUTPUT_PROTOCOL EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID
- 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, EFI_SIMPLE_TEXT_OUT_PROTOCOL;
- //
- // 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 EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID \
- { 0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
- #define SIMPLE_TEXT_INPUT_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID
- 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_F11 0x0015
- #define SCAN_F12 0x0016
- #define SCAN_ESC 0x0017
- 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, EFI_SIMPLE_TEXT_IN_PROTOCOL;
- #endif
|