~galfy/helenos/bird-port-mainline

« back to all changes in this revision

Viewing changes to boot/arch/ia64/loader/gefi/inc/eficon.h

  • Committer: Martin Decky
  • Date: 2009-08-04 11:19:19 UTC
  • Revision ID: martin@uranus.dsrg.hide.ms.mff.cuni.cz-20090804111919-evyclddlr3v5lhmp
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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