ReactOS 0.4.15-dev-7846-g8ba6c66
SimpleTextOut.h
Go to the documentation of this file.
1
20#ifndef __SIMPLE_TEXT_OUT_H__
21#define __SIMPLE_TEXT_OUT_H__
22
23#define EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID \
24 { \
25 0x387477c2, 0x69c7, 0x11d2, { 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
26 }
27
31#define SIMPLE_TEXT_OUTPUT_PROTOCOL EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID
32
34
39
40//
41// Define's for required EFI Unicode Box Draw characters
42//
43#define BOXDRAW_HORIZONTAL 0x2500
44#define BOXDRAW_VERTICAL 0x2502
45#define BOXDRAW_DOWN_RIGHT 0x250c
46#define BOXDRAW_DOWN_LEFT 0x2510
47#define BOXDRAW_UP_RIGHT 0x2514
48#define BOXDRAW_UP_LEFT 0x2518
49#define BOXDRAW_VERTICAL_RIGHT 0x251c
50#define BOXDRAW_VERTICAL_LEFT 0x2524
51#define BOXDRAW_DOWN_HORIZONTAL 0x252c
52#define BOXDRAW_UP_HORIZONTAL 0x2534
53#define BOXDRAW_VERTICAL_HORIZONTAL 0x253c
54#define BOXDRAW_DOUBLE_HORIZONTAL 0x2550
55#define BOXDRAW_DOUBLE_VERTICAL 0x2551
56#define BOXDRAW_DOWN_RIGHT_DOUBLE 0x2552
57#define BOXDRAW_DOWN_DOUBLE_RIGHT 0x2553
58#define BOXDRAW_DOUBLE_DOWN_RIGHT 0x2554
59#define BOXDRAW_DOWN_LEFT_DOUBLE 0x2555
60#define BOXDRAW_DOWN_DOUBLE_LEFT 0x2556
61#define BOXDRAW_DOUBLE_DOWN_LEFT 0x2557
62#define BOXDRAW_UP_RIGHT_DOUBLE 0x2558
63#define BOXDRAW_UP_DOUBLE_RIGHT 0x2559
64#define BOXDRAW_DOUBLE_UP_RIGHT 0x255a
65#define BOXDRAW_UP_LEFT_DOUBLE 0x255b
66#define BOXDRAW_UP_DOUBLE_LEFT 0x255c
67#define BOXDRAW_DOUBLE_UP_LEFT 0x255d
68#define BOXDRAW_VERTICAL_RIGHT_DOUBLE 0x255e
69#define BOXDRAW_VERTICAL_DOUBLE_RIGHT 0x255f
70#define BOXDRAW_DOUBLE_VERTICAL_RIGHT 0x2560
71#define BOXDRAW_VERTICAL_LEFT_DOUBLE 0x2561
72#define BOXDRAW_VERTICAL_DOUBLE_LEFT 0x2562
73#define BOXDRAW_DOUBLE_VERTICAL_LEFT 0x2563
74#define BOXDRAW_DOWN_HORIZONTAL_DOUBLE 0x2564
75#define BOXDRAW_DOWN_DOUBLE_HORIZONTAL 0x2565
76#define BOXDRAW_DOUBLE_DOWN_HORIZONTAL 0x2566
77#define BOXDRAW_UP_HORIZONTAL_DOUBLE 0x2567
78#define BOXDRAW_UP_DOUBLE_HORIZONTAL 0x2568
79#define BOXDRAW_DOUBLE_UP_HORIZONTAL 0x2569
80#define BOXDRAW_VERTICAL_HORIZONTAL_DOUBLE 0x256a
81#define BOXDRAW_VERTICAL_DOUBLE_HORIZONTAL 0x256b
82#define BOXDRAW_DOUBLE_VERTICAL_HORIZONTAL 0x256c
83
84//
85// EFI Required Block Elements Code Chart
86//
87#define BLOCKELEMENT_FULL_BLOCK 0x2588
88#define BLOCKELEMENT_LIGHT_SHADE 0x2591
89
90//
91// EFI Required Geometric Shapes Code Chart
92//
93#define GEOMETRICSHAPE_UP_TRIANGLE 0x25b2
94#define GEOMETRICSHAPE_RIGHT_TRIANGLE 0x25ba
95#define GEOMETRICSHAPE_DOWN_TRIANGLE 0x25bc
96#define GEOMETRICSHAPE_LEFT_TRIANGLE 0x25c4
97
98//
99// EFI Required Arrow shapes
100//
101#define ARROW_LEFT 0x2190
102#define ARROW_UP 0x2191
103#define ARROW_RIGHT 0x2192
104#define ARROW_DOWN 0x2193
105
106//
107// EFI Console Colours
108//
109#define EFI_BLACK 0x00
110#define EFI_BLUE 0x01
111#define EFI_GREEN 0x02
112#define EFI_CYAN (EFI_BLUE | EFI_GREEN)
113#define EFI_RED 0x04
114#define EFI_MAGENTA (EFI_BLUE | EFI_RED)
115#define EFI_BROWN (EFI_GREEN | EFI_RED)
116#define EFI_LIGHTGRAY (EFI_BLUE | EFI_GREEN | EFI_RED)
117#define EFI_BRIGHT 0x08
118#define EFI_DARKGRAY (EFI_BRIGHT)
119#define EFI_LIGHTBLUE (EFI_BLUE | EFI_BRIGHT)
120#define EFI_LIGHTGREEN (EFI_GREEN | EFI_BRIGHT)
121#define EFI_LIGHTCYAN (EFI_CYAN | EFI_BRIGHT)
122#define EFI_LIGHTRED (EFI_RED | EFI_BRIGHT)
123#define EFI_LIGHTMAGENTA (EFI_MAGENTA | EFI_BRIGHT)
124#define EFI_YELLOW (EFI_BROWN | EFI_BRIGHT)
125#define EFI_WHITE (EFI_BLUE | EFI_GREEN | EFI_RED | EFI_BRIGHT)
126
127#define EFI_TEXT_ATTR(f, b) ((f) | ((b) << 4))
128
129#define EFI_BACKGROUND_BLACK 0x00
130#define EFI_BACKGROUND_BLUE 0x10
131#define EFI_BACKGROUND_GREEN 0x20
132#define EFI_BACKGROUND_CYAN (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_GREEN)
133#define EFI_BACKGROUND_RED 0x40
134#define EFI_BACKGROUND_MAGENTA (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_RED)
135#define EFI_BACKGROUND_BROWN (EFI_BACKGROUND_GREEN | EFI_BACKGROUND_RED)
136#define EFI_BACKGROUND_LIGHTGRAY (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_GREEN | EFI_BACKGROUND_RED)
137
138//
139// We currently define attributes from 0 - 7F for color manipulations
140// To internally handle the local display characteristics for a particular character,
141// Bit 7 signifies the local glyph representation for a character. If turned on, glyphs will be
142// pulled from the wide glyph database and will display locally as a wide character (16 X 19 versus 8 X 19)
143// If bit 7 is off, the narrow glyph database will be used. This does NOT affect information that is sent to
144// non-local displays, such as serial or LAN consoles.
145//
146#define EFI_WIDE_ATTRIBUTE 0x80
147
160typedef
164IN BOOLEAN ExtendedVerification
165);
166
185typedef
190);
191
206typedef
211);
212
229typedef
233IN UINTN ModeNumber,
236);
237
249typedef
253IN UINTN ModeNumber
254);
255
270typedef
274IN UINTN Attribute
275);
276
288typedef
292);
293
311typedef
315IN UINTN Column,
316IN UINTN Row
317);
318
333typedef
337IN BOOLEAN Visible
338);
339
344typedef struct {
349
350 //
351 // current settings
352 //
353
375
384
387
391
395
400};
401
403
404#endif
signed int INT32
unsigned char BOOLEAN
unsigned short CHAR16
#define EFIAPI
UINT32 UINTN
EFI_STATUS(EFIAPI * EFI_TEXT_SET_ATTRIBUTE)(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN UINTN Attribute)
EFI_STATUS(EFIAPI * EFI_TEXT_ENABLE_CURSOR)(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN BOOLEAN Visible)
EFI_STATUS(EFIAPI * EFI_TEXT_SET_CURSOR_POSITION)(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN UINTN Column, IN UINTN Row)
EFI_GUID gEfiSimpleTextOutProtocolGuid
EFI_STATUS(EFIAPI * EFI_TEXT_SET_MODE)(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN UINTN ModeNumber)
EFI_STATUS(EFIAPI * EFI_TEXT_TEST_STRING)(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN CHAR16 *String)
EFI_STATUS(EFIAPI * EFI_TEXT_CLEAR_SCREEN)(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This)
EFI_STATUS(EFIAPI * EFI_TEXT_QUERY_MODE)(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN UINTN ModeNumber, OUT UINTN *Columns, OUT UINTN *Rows)
EFI_STATUS(EFIAPI * EFI_TEXT_RESET)(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SIMPLE_TEXT_OUTPUT_INTERFACE
Definition: SimpleTextOut.h:38
EFI_STATUS(EFIAPI * EFI_TEXT_STRING)(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN CHAR16 *String)
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:31
static const COLUMN_LIST Columns[]
Definition: listview.c:19
EFI_TEXT_ENABLE_CURSOR EnableCursor
EFI_TEXT_CLEAR_SCREEN ClearScreen
EFI_TEXT_TEST_STRING TestString
EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition
EFI_SIMPLE_TEXT_OUTPUT_MODE * Mode
EFI_TEXT_SET_ATTRIBUTE SetAttribute
#define IN
Definition: typedefs.h:39
#define OUT
Definition: typedefs.h:40
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_In_ ULONG Rows
Definition: haltypes.h:7