ReactOS 0.4.16-dev-1998-g617f3bd
ueficon.c File Reference
#include <uefildr.h>
Include dependency graph for ueficon.c:

Go to the source code of this file.

Functions

VOID UefiConsPutChar (int c)
 
static UCHAR ConvertToBiosExtValue (UCHAR KeyIn)
 
BOOLEAN UefiConsKbHit (VOID)
 
int UefiConsGetCh (VOID)
 

Variables

EFI_SYSTEM_TABLEGlobalSystemTable
 
static unsigned CurrentCursorX = 0
 
static unsigned CurrentCursorY = 0
 
static unsigned CurrentAttr = 0x0f
 
static EFI_INPUT_KEY Key
 
static BOOLEAN ExtendedKey = FALSE
 
static char ExtendedScanCode = 0
 

Function Documentation

◆ ConvertToBiosExtValue()

static UCHAR ConvertToBiosExtValue ( UCHAR  KeyIn)
static

Definition at line 65 of file ueficon.c.

66{
67 switch (KeyIn)
68 {
69 case SCAN_UP:
70 return KEY_UP;
71 case SCAN_DOWN:
72 return KEY_DOWN;
73 case SCAN_RIGHT:
74 return KEY_RIGHT;
75 case SCAN_LEFT:
76 return KEY_LEFT;
77 case SCAN_HOME:
78 return KEY_HOME;
79 case SCAN_END:
80 return KEY_END;
81
82 // case SCAN_INSERT:
83 // break;
84
85 case SCAN_DELETE:
86 return KEY_DELETE;
87
88 // case SCAN_PAGE_UP:
89 // case SCAN_PAGE_DOWN:
90 // break;
91
92 case SCAN_F1:
93 return KEY_F1;
94 case SCAN_F2:
95 return KEY_F2;
96 case SCAN_F3:
97 return KEY_F3;
98 case SCAN_F4:
99 return KEY_F4;
100 case SCAN_F5:
101 return KEY_F5;
102 case SCAN_F6:
103 return KEY_F6;
104 case SCAN_F7:
105 return KEY_F7;
106 case SCAN_F8:
107 return KEY_F8;
108 case SCAN_F9:
109 return KEY_F9;
110 case SCAN_F10:
111 return KEY_F10;
112 case SCAN_ESC:
113 return KEY_ESC;
114 }
115 return 0;
116}
#define SCAN_F3
Definition: SimpleTextIn.h:71
#define SCAN_LEFT
Definition: SimpleTextIn.h:62
#define SCAN_HOME
Definition: SimpleTextIn.h:63
#define SCAN_F4
Definition: SimpleTextIn.h:72
#define SCAN_F6
Definition: SimpleTextIn.h:74
#define SCAN_RIGHT
Definition: SimpleTextIn.h:61
#define SCAN_F9
Definition: SimpleTextIn.h:77
#define SCAN_UP
Definition: SimpleTextIn.h:59
#define SCAN_F8
Definition: SimpleTextIn.h:76
#define SCAN_F5
Definition: SimpleTextIn.h:73
#define SCAN_F10
Definition: SimpleTextIn.h:78
#define SCAN_ESC
Definition: SimpleTextIn.h:79
#define SCAN_DELETE
Definition: SimpleTextIn.h:66
#define SCAN_DOWN
Definition: SimpleTextIn.h:60
#define SCAN_F1
Definition: SimpleTextIn.h:69
#define SCAN_END
Definition: SimpleTextIn.h:64
#define SCAN_F2
Definition: SimpleTextIn.h:70
#define SCAN_F7
Definition: SimpleTextIn.h:75
#define KEY_RIGHT
Definition: keycodes.h:48
#define KEY_DELETE
Definition: keycodes.h:41
#define KEY_DOWN
Definition: keycodes.h:46
#define KEY_F1
Definition: keycodes.h:51
#define KEY_F5
Definition: keycodes.h:55
#define KEY_F3
Definition: keycodes.h:53
#define KEY_F9
Definition: keycodes.h:59
#define KEY_F8
Definition: keycodes.h:58
#define KEY_F7
Definition: keycodes.h:57
#define KEY_ESC
Definition: keycodes.h:49
#define KEY_END
Definition: keycodes.h:64
#define KEY_F4
Definition: keycodes.h:54
#define KEY_F6
Definition: keycodes.h:56
#define KEY_F10
Definition: keycodes.h:60
#define KEY_F2
Definition: keycodes.h:52
#define KEY_LEFT
Definition: keycodes.h:47
#define KEY_HOME
Definition: keycodes.h:44
#define KEY_UP
Definition: keycodes.h:45

Referenced by UefiConsGetCh().

◆ UefiConsGetCh()

int UefiConsGetCh ( VOID  )

Definition at line 125 of file ueficon.c.

126{
127 UCHAR KeyOutput = 0;
128
129 /* If an extended key press was detected the last time we were called
130 * then return the scan code of that key. */
131 if (ExtendedKey)
132 {
134 return ExtendedScanCode;
135 }
136
137 if (Key.UnicodeChar != 0)
138 {
139 KeyOutput = Key.UnicodeChar;
140 }
141 else
142 {
145 KeyOutput = KEY_EXTENDED;
146 }
147
148 /* UEFI will stack input requests, we have to clear it */
149 Key.UnicodeChar = 0;
150 Key.ScanCode = 0;
151 return KeyOutput;
152}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define KEY_EXTENDED
Definition: keycodes.h:38
static UCHAR ConvertToBiosExtValue(UCHAR KeyIn)
Definition: ueficon.c:65
static BOOLEAN ExtendedKey
Definition: ueficon.c:17
static char ExtendedScanCode
Definition: ueficon.c:18
unsigned char UCHAR
Definition: xmlstorage.h:181

Referenced by MachInit().

◆ UefiConsKbHit()

BOOLEAN UefiConsKbHit ( VOID  )

Definition at line 119 of file ueficon.c.

120{
122}
#define EFI_NOT_READY
Definition: UefiBaseType.h:126
EFI_SIMPLE_TEXT_INPUT_PROTOCOL * ConIn
Definition: UefiSpec.h:1932
EFI_INPUT_READ_KEY ReadKeyStroke
Definition: SimpleTextIn.h:125
EFI_SYSTEM_TABLE * GlobalSystemTable
Definition: uefildr.c:16

Referenced by MachInit().

◆ UefiConsPutChar()

VOID UefiConsPutChar ( int  c)

Definition at line 23 of file ueficon.c.

24{
26 BOOLEAN NeedScroll;
27
29
30 NeedScroll = (CurrentCursorY >= Height);
31 if (NeedScroll)
32 {
35 }
36 if (c == '\r')
37 {
39 }
40 else if (c == '\n')
41 {
43
44 if (!NeedScroll)
46 }
47 else if (c == '\t')
48 {
49 CurrentCursorX = (CurrentCursorX + 8) & ~7;
50 }
51 else
52 {
55 }
56 if (CurrentCursorX >= Width)
57 {
60 }
61}
unsigned char BOOLEAN
const GLubyte * c
Definition: glext.h:8905
#define Unused(x)
Definition: atlwin.h:28
uint32_t ULONG
Definition: typedefs.h:59
static unsigned CurrentAttr
Definition: ueficon.c:15
static unsigned CurrentCursorX
Definition: ueficon.c:13
static unsigned CurrentCursorY
Definition: ueficon.c:14
VOID UefiVideoGetDisplaySize(PULONG Width, PULONG Height, PULONG Depth)
Definition: uefivid.c:152
VOID UefiVideoScrollUp(VOID)
Definition: uefivid.c:189
VOID UefiVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y)
Definition: uefivid.c:140
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
Definition: font.h:89
_In_ HFONT _Out_ PUINT Height
Definition: font.h:88

Referenced by MachInit().

Variable Documentation

◆ CurrentAttr

unsigned CurrentAttr = 0x0f
static

Definition at line 15 of file ueficon.c.

Referenced by UefiConsPutChar().

◆ CurrentCursorX

unsigned CurrentCursorX = 0
static

Definition at line 13 of file ueficon.c.

Referenced by UefiConsPutChar().

◆ CurrentCursorY

unsigned CurrentCursorY = 0
static

Definition at line 14 of file ueficon.c.

Referenced by UefiConsPutChar().

◆ ExtendedKey

BOOLEAN ExtendedKey = FALSE
static

Definition at line 17 of file ueficon.c.

Referenced by Pc98ConsGetCh(), PcConsGetCh(), and UefiConsGetCh().

◆ ExtendedScanCode

char ExtendedScanCode = 0
static

Definition at line 18 of file ueficon.c.

Referenced by Pc98ConsGetCh(), PcConsGetCh(), and UefiConsGetCh().

◆ GlobalSystemTable

EFI_SYSTEM_TABLE* GlobalSystemTable
extern

Definition at line 16 of file uefildr.c.

Referenced by UefiConsKbHit().

◆ Key

Definition at line 16 of file ueficon.c.