Rev 2726 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 2726 | vana | 1 | #ifndef _EFI_CON_H |
| 2 | #define _EFI_CON_H |
||
| 3 | |||
| 4 | /*++ |
||
| 5 | |||
| 6 | Copyright (c) 1998 Intel Corporation |
||
| 7 | |||
| 8 | Module Name: |
||
| 9 | |||
| 10 | eficon.h |
||
| 11 | |||
| 12 | Abstract: |
||
| 13 | |||
| 14 | EFI console protocols |
||
| 15 | |||
| 16 | |||
| 17 | |||
| 18 | Revision History |
||
| 19 | |||
| 20 | --*/ |
||
| 21 | |||
| 22 | // |
||
| 23 | // Text output protocol |
||
| 24 | // |
||
| 25 | |||
| 26 | #define SIMPLE_TEXT_OUTPUT_PROTOCOL \ |
||
| 27 | { 0x387477c2, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } |
||
| 28 | |||
| 29 | INTERFACE_DECL(_SIMPLE_TEXT_OUTPUT_INTERFACE); |
||
| 30 | |||
| 31 | typedef |
||
| 32 | EFI_STATUS |
||
| 33 | (EFIAPI *EFI_TEXT_RESET) ( |
||
| 34 | IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, |
||
| 35 | IN BOOLEAN ExtendedVerification |
||
| 36 | ); |
||
| 37 | |||
| 38 | typedef |
||
| 39 | EFI_STATUS |
||
| 40 | (EFIAPI *EFI_TEXT_OUTPUT_STRING) ( |
||
| 41 | IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, |
||
| 42 | IN CHAR16 *String |
||
| 43 | ); |
||
| 44 | |||
| 45 | typedef |
||
| 46 | EFI_STATUS |
||
| 47 | (EFIAPI *EFI_TEXT_TEST_STRING) ( |
||
| 48 | IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, |
||
| 49 | IN CHAR16 *String |
||
| 50 | ); |
||
| 51 | |||
| 52 | typedef |
||
| 53 | EFI_STATUS |
||
| 54 | (EFIAPI *EFI_TEXT_QUERY_MODE) ( |
||
| 55 | IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, |
||
| 56 | IN UINTN ModeNumber, |
||
| 57 | OUT UINTN *Columns, |
||
| 58 | OUT UINTN *Rows |
||
| 59 | ); |
||
| 60 | |||
| 61 | typedef |
||
| 62 | EFI_STATUS |
||
| 63 | (EFIAPI *EFI_TEXT_SET_MODE) ( |
||
| 64 | IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, |
||
| 65 | IN UINTN ModeNumber |
||
| 66 | ); |
||
| 67 | |||
| 68 | typedef |
||
| 69 | EFI_STATUS |
||
| 70 | (EFIAPI *EFI_TEXT_SET_ATTRIBUTE) ( |
||
| 71 | IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, |
||
| 72 | IN UINTN Attribute |
||
| 73 | ); |
||
| 74 | |||
| 75 | #define EFI_BLACK 0x00 |
||
| 76 | #define EFI_BLUE 0x01 |
||
| 77 | #define EFI_GREEN 0x02 |
||
| 78 | #define EFI_CYAN (EFI_BLUE | EFI_GREEN) |
||
| 79 | #define EFI_RED 0x04 |
||
| 80 | #define EFI_MAGENTA (EFI_BLUE | EFI_RED) |
||
| 81 | #define EFI_BROWN (EFI_GREEN | EFI_RED) |
||
| 82 | #define EFI_LIGHTGRAY (EFI_BLUE | EFI_GREEN | EFI_RED) |
||
| 83 | #define EFI_BRIGHT 0x08 |
||
| 84 | #define EFI_DARKGRAY (EFI_BRIGHT) |
||
| 85 | #define EFI_LIGHTBLUE (EFI_BLUE | EFI_BRIGHT) |
||
| 86 | #define EFI_LIGHTGREEN (EFI_GREEN | EFI_BRIGHT) |
||
| 87 | #define EFI_LIGHTCYAN (EFI_CYAN | EFI_BRIGHT) |
||
| 88 | #define EFI_LIGHTRED (EFI_RED | EFI_BRIGHT) |
||
| 89 | #define EFI_LIGHTMAGENTA (EFI_MAGENTA | EFI_BRIGHT) |
||
| 90 | #define EFI_YELLOW (EFI_BROWN | EFI_BRIGHT) |
||
| 91 | #define EFI_WHITE (EFI_BLUE | EFI_GREEN | EFI_RED | EFI_BRIGHT) |
||
| 92 | |||
| 93 | #define EFI_TEXT_ATTR(f,b) ((f) | ((b) << 4)) |
||
| 94 | |||
| 95 | #define EFI_BACKGROUND_BLACK 0x00 |
||
| 96 | #define EFI_BACKGROUND_BLUE 0x10 |
||
| 97 | #define EFI_BACKGROUND_GREEN 0x20 |
||
| 98 | #define EFI_BACKGROUND_CYAN (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_GREEN) |
||
| 99 | #define EFI_BACKGROUND_RED 0x40 |
||
| 100 | #define EFI_BACKGROUND_MAGENTA (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_RED) |
||
| 101 | #define EFI_BACKGROUND_BROWN (EFI_BACKGROUND_GREEN | EFI_BACKGROUND_RED) |
||
| 102 | #define EFI_BACKGROUND_LIGHTGRAY (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_GREEN | EFI_BACKGROUND_RED) |
||
| 103 | |||
| 104 | |||
| 105 | typedef |
||
| 106 | EFI_STATUS |
||
| 107 | (EFIAPI *EFI_TEXT_CLEAR_SCREEN) ( |
||
| 108 | IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This |
||
| 109 | ); |
||
| 110 | |||
| 111 | typedef |
||
| 112 | EFI_STATUS |
||
| 113 | (EFIAPI *EFI_TEXT_SET_CURSOR_POSITION) ( |
||
| 114 | IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, |
||
| 115 | IN UINTN Column, |
||
| 116 | IN UINTN Row |
||
| 117 | ); |
||
| 118 | |||
| 119 | typedef |
||
| 120 | EFI_STATUS |
||
| 121 | (EFIAPI *EFI_TEXT_ENABLE_CURSOR) ( |
||
| 122 | IN struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, |
||
| 123 | IN BOOLEAN Enable |
||
| 124 | ); |
||
| 125 | |||
| 126 | typedef struct { |
||
| 127 | INT32 MaxMode; |
||
| 128 | // current settings |
||
| 129 | INT32 Mode; |
||
| 130 | INT32 Attribute; |
||
| 131 | INT32 CursorColumn; |
||
| 132 | INT32 CursorRow; |
||
| 133 | BOOLEAN CursorVisible; |
||
| 134 | } SIMPLE_TEXT_OUTPUT_MODE; |
||
| 135 | |||
| 136 | typedef struct _SIMPLE_TEXT_OUTPUT_INTERFACE { |
||
| 137 | EFI_TEXT_RESET Reset; |
||
| 138 | |||
| 139 | EFI_TEXT_OUTPUT_STRING OutputString; |
||
| 140 | EFI_TEXT_TEST_STRING TestString; |
||
| 141 | |||
| 142 | EFI_TEXT_QUERY_MODE QueryMode; |
||
| 143 | EFI_TEXT_SET_MODE SetMode; |
||
| 144 | EFI_TEXT_SET_ATTRIBUTE SetAttribute; |
||
| 145 | |||
| 146 | EFI_TEXT_CLEAR_SCREEN ClearScreen; |
||
| 147 | EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition; |
||
| 148 | EFI_TEXT_ENABLE_CURSOR EnableCursor; |
||
| 149 | |||
| 150 | // Current mode |
||
| 151 | SIMPLE_TEXT_OUTPUT_MODE *Mode; |
||
| 152 | } SIMPLE_TEXT_OUTPUT_INTERFACE; |
||
| 153 | |||
| 154 | // |
||
| 155 | // Define's for required EFI Unicode Box Draw character |
||
| 156 | // |
||
| 157 | |||
| 158 | #define BOXDRAW_HORIZONTAL 0x2500 |
||
| 159 | #define BOXDRAW_VERTICAL 0x2502 |
||
| 160 | #define BOXDRAW_DOWN_RIGHT 0x250c |
||
| 161 | #define BOXDRAW_DOWN_LEFT 0x2510 |
||
| 162 | #define BOXDRAW_UP_RIGHT 0x2514 |
||
| 163 | #define BOXDRAW_UP_LEFT 0x2518 |
||
| 164 | #define BOXDRAW_VERTICAL_RIGHT 0x251c |
||
| 165 | #define BOXDRAW_VERTICAL_LEFT 0x2524 |
||
| 166 | #define BOXDRAW_DOWN_HORIZONTAL 0x252c |
||
| 167 | #define BOXDRAW_UP_HORIZONTAL 0x2534 |
||
| 168 | #define BOXDRAW_VERTICAL_HORIZONTAL 0x253c |
||
| 169 | |||
| 170 | #define BOXDRAW_DOUBLE_HORIZONTAL 0x2550 |
||
| 171 | #define BOXDRAW_DOUBLE_VERTICAL 0x2551 |
||
| 172 | #define BOXDRAW_DOWN_RIGHT_DOUBLE 0x2552 |
||
| 173 | #define BOXDRAW_DOWN_DOUBLE_RIGHT 0x2553 |
||
| 174 | #define BOXDRAW_DOUBLE_DOWN_RIGHT 0x2554 |
||
| 175 | |||
| 176 | #define BOXDRAW_DOWN_LEFT_DOUBLE 0x2555 |
||
| 177 | #define BOXDRAW_DOWN_DOUBLE_LEFT 0x2556 |
||
| 178 | #define BOXDRAW_DOUBLE_DOWN_LEFT 0x2557 |
||
| 179 | |||
| 180 | #define BOXDRAW_UP_RIGHT_DOUBLE 0x2558 |
||
| 181 | #define BOXDRAW_UP_DOUBLE_RIGHT 0x2559 |
||
| 182 | #define BOXDRAW_DOUBLE_UP_RIGHT 0x255a |
||
| 183 | |||
| 184 | #define BOXDRAW_UP_LEFT_DOUBLE 0x255b |
||
| 185 | #define BOXDRAW_UP_DOUBLE_LEFT 0x255c |
||
| 186 | #define BOXDRAW_DOUBLE_UP_LEFT 0x255d |
||
| 187 | |||
| 188 | #define BOXDRAW_VERTICAL_RIGHT_DOUBLE 0x255e |
||
| 189 | #define BOXDRAW_VERTICAL_DOUBLE_RIGHT 0x255f |
||
| 190 | #define BOXDRAW_DOUBLE_VERTICAL_RIGHT 0x2560 |
||
| 191 | |||
| 192 | #define BOXDRAW_VERTICAL_LEFT_DOUBLE 0x2561 |
||
| 193 | #define BOXDRAW_VERTICAL_DOUBLE_LEFT 0x2562 |
||
| 194 | #define BOXDRAW_DOUBLE_VERTICAL_LEFT 0x2563 |
||
| 195 | |||
| 196 | #define BOXDRAW_DOWN_HORIZONTAL_DOUBLE 0x2564 |
||
| 197 | #define BOXDRAW_DOWN_DOUBLE_HORIZONTAL 0x2565 |
||
| 198 | #define BOXDRAW_DOUBLE_DOWN_HORIZONTAL 0x2566 |
||
| 199 | |||
| 200 | #define BOXDRAW_UP_HORIZONTAL_DOUBLE 0x2567 |
||
| 201 | #define BOXDRAW_UP_DOUBLE_HORIZONTAL 0x2568 |
||
| 202 | #define BOXDRAW_DOUBLE_UP_HORIZONTAL 0x2569 |
||
| 203 | |||
| 204 | #define BOXDRAW_VERTICAL_HORIZONTAL_DOUBLE 0x256a |
||
| 205 | #define BOXDRAW_VERTICAL_DOUBLE_HORIZONTAL 0x256b |
||
| 206 | #define BOXDRAW_DOUBLE_VERTICAL_HORIZONTAL 0x256c |
||
| 207 | |||
| 208 | // |
||
| 209 | // EFI Required Block Elements Code Chart |
||
| 210 | // |
||
| 211 | |||
| 212 | #define BLOCKELEMENT_FULL_BLOCK 0x2588 |
||
| 213 | #define BLOCKELEMENT_LIGHT_SHADE 0x2591 |
||
| 214 | // |
||
| 215 | // EFI Required Geometric Shapes Code Chart |
||
| 216 | // |
||
| 217 | |||
| 218 | #define GEOMETRICSHAPE_UP_TRIANGLE 0x25b2 |
||
| 219 | #define GEOMETRICSHAPE_RIGHT_TRIANGLE 0x25ba |
||
| 220 | #define GEOMETRICSHAPE_DOWN_TRIANGLE 0x25bc |
||
| 221 | #define GEOMETRICSHAPE_LEFT_TRIANGLE 0x25c4 |
||
| 222 | |||
| 223 | // |
||
| 224 | // EFI Required Arrow shapes |
||
| 225 | // |
||
| 226 | |||
| 227 | #define ARROW_UP 0x2191 |
||
| 228 | #define ARROW_DOWN 0x2193 |
||
| 229 | |||
| 230 | // |
||
| 231 | // Text input protocol |
||
| 232 | // |
||
| 233 | |||
| 234 | #define SIMPLE_TEXT_INPUT_PROTOCOL \ |
||
| 235 | { 0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } |
||
| 236 | |||
| 237 | INTERFACE_DECL(_SIMPLE_INPUT_INTERFACE); |
||
| 238 | |||
| 239 | typedef struct { |
||
| 240 | UINT16 ScanCode; |
||
| 241 | CHAR16 UnicodeChar; |
||
| 242 | } EFI_INPUT_KEY; |
||
| 243 | |||
| 244 | // |
||
| 245 | // Baseline unicode control chars |
||
| 246 | // |
||
| 247 | |||
| 248 | #define CHAR_NULL 0x0000 |
||
| 249 | #define CHAR_BACKSPACE 0x0008 |
||
| 250 | #define CHAR_TAB 0x0009 |
||
| 251 | #define CHAR_LINEFEED 0x000A |
||
| 252 | #define CHAR_CARRIAGE_RETURN 0x000D |
||
| 253 | |||
| 254 | // |
||
| 255 | // Scan codes for base line keys |
||
| 256 | // |
||
| 257 | |||
| 258 | #define SCAN_NULL 0x0000 |
||
| 259 | #define SCAN_UP 0x0001 |
||
| 260 | #define SCAN_DOWN 0x0002 |
||
| 261 | #define SCAN_RIGHT 0x0003 |
||
| 262 | #define SCAN_LEFT 0x0004 |
||
| 263 | #define SCAN_HOME 0x0005 |
||
| 264 | #define SCAN_END 0x0006 |
||
| 265 | #define SCAN_INSERT 0x0007 |
||
| 266 | #define SCAN_DELETE 0x0008 |
||
| 267 | #define SCAN_PAGE_UP 0x0009 |
||
| 268 | #define SCAN_PAGE_DOWN 0x000A |
||
| 269 | #define SCAN_F1 0x000B |
||
| 270 | #define SCAN_F2 0x000C |
||
| 271 | #define SCAN_F3 0x000D |
||
| 272 | #define SCAN_F4 0x000E |
||
| 273 | #define SCAN_F5 0x000F |
||
| 274 | #define SCAN_F6 0x0010 |
||
| 275 | #define SCAN_F7 0x0011 |
||
| 276 | #define SCAN_F8 0x0012 |
||
| 277 | #define SCAN_F9 0x0013 |
||
| 278 | #define SCAN_F10 0x0014 |
||
| 279 | #define SCAN_ESC 0x0017 |
||
| 280 | |||
| 281 | typedef |
||
| 282 | EFI_STATUS |
||
| 283 | (EFIAPI *EFI_INPUT_RESET) ( |
||
| 284 | IN struct _SIMPLE_INPUT_INTERFACE *This, |
||
| 285 | IN BOOLEAN ExtendedVerification |
||
| 286 | ); |
||
| 287 | |||
| 288 | typedef |
||
| 289 | EFI_STATUS |
||
| 290 | (EFIAPI *EFI_INPUT_READ_KEY) ( |
||
| 291 | IN struct _SIMPLE_INPUT_INTERFACE *This, |
||
| 292 | OUT EFI_INPUT_KEY *Key |
||
| 293 | ); |
||
| 294 | |||
| 295 | typedef struct _SIMPLE_INPUT_INTERFACE { |
||
| 296 | EFI_INPUT_RESET Reset; |
||
| 297 | EFI_INPUT_READ_KEY ReadKeyStroke; |
||
| 298 | EFI_EVENT WaitForKey; |
||
| 299 | } SIMPLE_INPUT_INTERFACE; |
||
| 300 | |||
| 301 | #endif |
||
| 302 |