Implement more wrappers and refactoring
This commit is contained in:
parent
83e555043a
commit
74cac842a5
@ -39,6 +39,8 @@ typedef VOID (*PBL_CONSOLE_DISABLE_CURSOR)();
|
|||||||
typedef VOID (*PBL_CONSOLE_ENABLE_CURSOR)();
|
typedef VOID (*PBL_CONSOLE_ENABLE_CURSOR)();
|
||||||
typedef VOID (*PBL_CONSOLE_PRINT)(IN PUINT16 Format, IN ...);
|
typedef VOID (*PBL_CONSOLE_PRINT)(IN PUINT16 Format, IN ...);
|
||||||
typedef VOID (*PBL_CONSOLE_QUERY_MODE)(OUT PUINT_PTR ResX, OUT PUINT_PTR ResY);
|
typedef VOID (*PBL_CONSOLE_QUERY_MODE)(OUT PUINT_PTR ResX, OUT PUINT_PTR ResY);
|
||||||
|
typedef VOID (*PBL_CONSOLE_READ_KEY_STROKE)(OUT PEFI_INPUT_KEY Key);
|
||||||
|
typedef VOID (*PBL_CONSOLE_RESET_INPUT_BUFFER)();
|
||||||
typedef VOID (*PBL_CONSOLE_SET_ATTRIBUTES)(IN ULONGLONG Attributes);
|
typedef VOID (*PBL_CONSOLE_SET_ATTRIBUTES)(IN ULONGLONG Attributes);
|
||||||
typedef VOID (*PBL_CONSOLE_SET_CURSOR_POSITION)(IN ULONGLONG PosX, IN ULONGLONG PosY);
|
typedef VOID (*PBL_CONSOLE_SET_CURSOR_POSITION)(IN ULONGLONG PosX, IN ULONGLONG PosY);
|
||||||
typedef VOID (*PBL_CONSOLE_WRITE)(IN PUSHORT String);
|
typedef VOID (*PBL_CONSOLE_WRITE)(IN PUSHORT String);
|
||||||
@ -51,6 +53,7 @@ typedef EFI_STATUS (*PBL_OPEN_VOLUME)(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath, O
|
|||||||
typedef EFI_STATUS (*PBL_OPEN_XT_PROTOCOL)(OUT PVOID *ProtocolHandler, IN PEFI_GUID ProtocolGuid);
|
typedef EFI_STATUS (*PBL_OPEN_XT_PROTOCOL)(OUT PVOID *ProtocolHandler, IN PEFI_GUID ProtocolGuid);
|
||||||
typedef EFI_STATUS (*PBL_READ_FILE)(IN PEFI_FILE_HANDLE DirHandle, IN CONST PWCHAR FileName, OUT PVOID *FileData, OUT PSIZE_T FileSize);
|
typedef EFI_STATUS (*PBL_READ_FILE)(IN PEFI_FILE_HANDLE DirHandle, IN CONST PWCHAR FileName, OUT PVOID *FileData, OUT PSIZE_T FileSize);
|
||||||
typedef VOID (*PBL_SLEEP_EXECUTION)(IN ULONG_PTR Milliseconds);
|
typedef VOID (*PBL_SLEEP_EXECUTION)(IN ULONG_PTR Milliseconds);
|
||||||
|
typedef EFI_STATUS (*PBL_WAIT_FOR_EFI_EVENT)(IN UINT_PTR NumberOfEvents, IN PEFI_EVENT Event, OUT PUINT_PTR Index);
|
||||||
|
|
||||||
/* XTLDR Configuration data */
|
/* XTLDR Configuration data */
|
||||||
typedef struct _XTBL_CONFIG_ENTRY
|
typedef struct _XTBL_CONFIG_ENTRY
|
||||||
@ -86,6 +89,8 @@ typedef struct _XTBL_LOADER_PROTOCOL
|
|||||||
PBL_CONSOLE_ENABLE_CURSOR EnableCursor;
|
PBL_CONSOLE_ENABLE_CURSOR EnableCursor;
|
||||||
PBL_CONSOLE_PRINT Print;
|
PBL_CONSOLE_PRINT Print;
|
||||||
PBL_CONSOLE_QUERY_MODE QueryMode;
|
PBL_CONSOLE_QUERY_MODE QueryMode;
|
||||||
|
PBL_CONSOLE_READ_KEY_STROKE ReadKeyStroke;
|
||||||
|
PBL_CONSOLE_RESET_INPUT_BUFFER ResetInputBuffer;
|
||||||
PBL_CONSOLE_SET_ATTRIBUTES SetAttributes;
|
PBL_CONSOLE_SET_ATTRIBUTES SetAttributes;
|
||||||
PBL_CONSOLE_SET_CURSOR_POSITION SetCursorPosition;
|
PBL_CONSOLE_SET_CURSOR_POSITION SetCursorPosition;
|
||||||
PBL_CONSOLE_WRITE Write;
|
PBL_CONSOLE_WRITE Write;
|
||||||
@ -116,6 +121,7 @@ typedef struct _XTBL_LOADER_PROTOCOL
|
|||||||
PBL_EXIT_BOOT_SERVICES ExitBootServices;
|
PBL_EXIT_BOOT_SERVICES ExitBootServices;
|
||||||
PBL_GET_SECURE_BOOT_STATUS GetSecureBootStatus;
|
PBL_GET_SECURE_BOOT_STATUS GetSecureBootStatus;
|
||||||
PBL_SLEEP_EXECUTION SleepExecution;
|
PBL_SLEEP_EXECUTION SleepExecution;
|
||||||
|
PBL_WAIT_FOR_EFI_EVENT WaitForEfiEvent;
|
||||||
} Util;
|
} Util;
|
||||||
} XTBL_LOADER_PROTOCOL, *PXTBL_LOADER_PROTOCOL;
|
} XTBL_LOADER_PROTOCOL, *PXTBL_LOADER_PROTOCOL;
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
XTCDECL
|
XTCDECL
|
||||||
VOID
|
VOID
|
||||||
BlConsoleClearScreen()
|
BlClearConsoleScreen()
|
||||||
{
|
{
|
||||||
/* Clear screen */
|
/* Clear screen */
|
||||||
EfiSystemTable->ConOut->ClearScreen(EfiSystemTable->ConOut);
|
EfiSystemTable->ConOut->ClearScreen(EfiSystemTable->ConOut);
|
||||||
@ -33,7 +33,7 @@ BlConsoleClearScreen()
|
|||||||
*/
|
*/
|
||||||
XTCDECL
|
XTCDECL
|
||||||
VOID
|
VOID
|
||||||
BlConsoleDisableCursor()
|
BlDisableConsoleCursor()
|
||||||
{
|
{
|
||||||
EfiSystemTable->ConOut->EnableCursor(EfiSystemTable->ConOut, FALSE);
|
EfiSystemTable->ConOut->EnableCursor(EfiSystemTable->ConOut, FALSE);
|
||||||
}
|
}
|
||||||
@ -47,7 +47,7 @@ BlConsoleDisableCursor()
|
|||||||
*/
|
*/
|
||||||
XTCDECL
|
XTCDECL
|
||||||
VOID
|
VOID
|
||||||
BlConsoleEnableCursor()
|
BlEnableConsoleCursor()
|
||||||
{
|
{
|
||||||
EfiSystemTable->ConOut->EnableCursor(EfiSystemTable->ConOut, TRUE);
|
EfiSystemTable->ConOut->EnableCursor(EfiSystemTable->ConOut, TRUE);
|
||||||
}
|
}
|
||||||
@ -93,27 +93,6 @@ BlConsolePrint(IN PUINT16 Format,
|
|||||||
VA_END(Arguments);
|
VA_END(Arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Queries information concerning the output device’s supported text mode.
|
|
||||||
*
|
|
||||||
* @param ResX
|
|
||||||
* Supplies a buffer to receive the horizontal resolution.
|
|
||||||
*
|
|
||||||
* @param ResY
|
|
||||||
* Supplies a buffer to receive the vertical resolution.
|
|
||||||
*
|
|
||||||
* @return This routine does not return any value.
|
|
||||||
*
|
|
||||||
* @since XT 1.0
|
|
||||||
*/
|
|
||||||
XTCDECL
|
|
||||||
VOID
|
|
||||||
BlConsoleQueryMode(OUT PUINT_PTR ResX,
|
|
||||||
OUT PUINT_PTR ResY)
|
|
||||||
{
|
|
||||||
EfiSystemTable->ConOut->QueryMode(EfiSystemTable->ConOut, EfiSystemTable->ConOut->Mode->Mode, ResX, ResY);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays the string on the device at the current cursor location.
|
* Displays the string on the device at the current cursor location.
|
||||||
*
|
*
|
||||||
@ -131,6 +110,58 @@ BlConsoleWrite(IN PUSHORT String)
|
|||||||
EfiSystemTable->ConOut->OutputString(EfiSystemTable->ConOut, String);
|
EfiSystemTable->ConOut->OutputString(EfiSystemTable->ConOut, String);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Queries information concerning the output device’s supported text mode.
|
||||||
|
*
|
||||||
|
* @param ResX
|
||||||
|
* Supplies a buffer to receive the horizontal resolution.
|
||||||
|
*
|
||||||
|
* @param ResY
|
||||||
|
* Supplies a buffer to receive the vertical resolution.
|
||||||
|
*
|
||||||
|
* @return This routine does not return any value.
|
||||||
|
*
|
||||||
|
* @since XT 1.0
|
||||||
|
*/
|
||||||
|
XTCDECL
|
||||||
|
VOID
|
||||||
|
BlQueryConsoleMode(OUT PUINT_PTR ResX,
|
||||||
|
OUT PUINT_PTR ResY)
|
||||||
|
{
|
||||||
|
EfiSystemTable->ConOut->QueryMode(EfiSystemTable->ConOut, EfiSystemTable->ConOut->Mode->Mode, ResX, ResY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads a keystroke from the input device.
|
||||||
|
*
|
||||||
|
* @param Key
|
||||||
|
* Supplies a pointer to the EFI_INPUT_KEY structure that will receive the keystroke.
|
||||||
|
*
|
||||||
|
* @return This routine does not return any value.
|
||||||
|
*
|
||||||
|
* @since XT 1.0
|
||||||
|
*/
|
||||||
|
XTCDECL
|
||||||
|
VOID
|
||||||
|
BlReadKeyStroke(OUT PEFI_INPUT_KEY Key)
|
||||||
|
{
|
||||||
|
EfiSystemTable->ConIn->ReadKeyStroke(EfiSystemTable->ConIn, Key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets the console input device and clears its input buffer.
|
||||||
|
*
|
||||||
|
* @return This routine does not return any value.
|
||||||
|
*
|
||||||
|
* @since XT 1.0
|
||||||
|
*/
|
||||||
|
XTCDECL
|
||||||
|
VOID
|
||||||
|
BlResetConsoleInputBuffer()
|
||||||
|
{
|
||||||
|
EfiSystemTable->ConIn->Reset(EfiSystemTable->ConIn, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the foreground and background colors.
|
* Sets the foreground and background colors.
|
||||||
*
|
*
|
||||||
@ -208,6 +239,6 @@ BlpInitializeConsole()
|
|||||||
EfiSystemTable->StdErr->Reset(EfiSystemTable->StdErr, TRUE);
|
EfiSystemTable->StdErr->Reset(EfiSystemTable->StdErr, TRUE);
|
||||||
|
|
||||||
/* Clear screen and enable cursor */
|
/* Clear screen and enable cursor */
|
||||||
BlConsoleClearScreen();
|
BlClearConsoleScreen();
|
||||||
BlConsoleEnableCursor();
|
BlEnableConsoleCursor();
|
||||||
}
|
}
|
||||||
|
@ -94,6 +94,31 @@ BlSleepExecution(IN ULONG_PTR Milliseconds)
|
|||||||
EfiSystemTable->BootServices->Stall(Milliseconds * 1000);
|
EfiSystemTable->BootServices->Stall(Milliseconds * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Waits for one or more EFI events.
|
||||||
|
*
|
||||||
|
* @param NumberOfEvents
|
||||||
|
* Supplies the number of events to wait for.
|
||||||
|
*
|
||||||
|
* @param Event
|
||||||
|
* Supplies the array of events to wait for.
|
||||||
|
*
|
||||||
|
* @param Index
|
||||||
|
* Receives the index of the event that was signaled.
|
||||||
|
*
|
||||||
|
* @return This routine returns status code.
|
||||||
|
*
|
||||||
|
* @since XT 1.0
|
||||||
|
*/
|
||||||
|
XTCDECL
|
||||||
|
EFI_STATUS
|
||||||
|
BlWaitForEfiEvent(IN UINT_PTR NumberOfEvents,
|
||||||
|
IN PEFI_EVENT Event,
|
||||||
|
OUT PUINT_PTR Index)
|
||||||
|
{
|
||||||
|
return EfiSystemTable->BootServices->WaitForEvent(NumberOfEvents, Event, Index);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes EFI Boot Loader (XTLDR).
|
* Initializes EFI Boot Loader (XTLDR).
|
||||||
*
|
*
|
||||||
|
@ -16,32 +16,19 @@
|
|||||||
typedef VOID (BMPRINTCHAR)(IN USHORT Character);
|
typedef VOID (BMPRINTCHAR)(IN USHORT Character);
|
||||||
|
|
||||||
/* XTLDR routines forward references */
|
/* XTLDR routines forward references */
|
||||||
|
XTCDECL
|
||||||
|
VOID
|
||||||
|
BlClearConsoleScreen();
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BlCloseVolume(IN PEFI_HANDLE VolumeHandle);
|
BlCloseVolume(IN PEFI_HANDLE VolumeHandle);
|
||||||
|
|
||||||
XTCDECL
|
|
||||||
VOID
|
|
||||||
BlConsoleClearScreen();
|
|
||||||
|
|
||||||
XTCDECL
|
|
||||||
VOID
|
|
||||||
BlConsoleDisableCursor();
|
|
||||||
|
|
||||||
XTCDECL
|
|
||||||
VOID
|
|
||||||
BlConsoleEnableCursor();
|
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
VOID
|
VOID
|
||||||
BlConsolePrint(IN PUINT16 Format,
|
BlConsolePrint(IN PUINT16 Format,
|
||||||
IN ...);
|
IN ...);
|
||||||
|
|
||||||
XTCDECL
|
|
||||||
VOID
|
|
||||||
BlConsoleQueryMode(OUT PUINT_PTR ResX,
|
|
||||||
OUT PUINT_PTR ResY);
|
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
VOID
|
VOID
|
||||||
BlConsoleWrite(IN PUSHORT String);
|
BlConsoleWrite(IN PUSHORT String);
|
||||||
@ -51,6 +38,14 @@ VOID
|
|||||||
BlDebugPrint(IN PUINT16 Format,
|
BlDebugPrint(IN PUINT16 Format,
|
||||||
IN ...);
|
IN ...);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
VOID
|
||||||
|
BlDisableConsoleCursor();
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
VOID
|
||||||
|
BlEnableConsoleCursor();
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BlEnumerateBlockDevices();
|
BlEnumerateBlockDevices();
|
||||||
@ -96,6 +91,11 @@ BlOpenVolume(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath,
|
|||||||
OUT PEFI_HANDLE DiskHandle,
|
OUT PEFI_HANDLE DiskHandle,
|
||||||
OUT PEFI_FILE_HANDLE *FsHandle);
|
OUT PEFI_FILE_HANDLE *FsHandle);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
VOID
|
||||||
|
BlQueryConsoleMode(OUT PUINT_PTR ResX,
|
||||||
|
OUT PUINT_PTR ResY);
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BlReadFile(IN PEFI_FILE_HANDLE DirHandle,
|
BlReadFile(IN PEFI_FILE_HANDLE DirHandle,
|
||||||
@ -103,6 +103,14 @@ BlReadFile(IN PEFI_FILE_HANDLE DirHandle,
|
|||||||
OUT PVOID *FileData,
|
OUT PVOID *FileData,
|
||||||
OUT PSIZE_T FileSize);
|
OUT PSIZE_T FileSize);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
VOID
|
||||||
|
BlReadKeyStroke(OUT PEFI_INPUT_KEY Key);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
VOID
|
||||||
|
BlResetConsoleInputBuffer();
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BlMemoryFreePages(IN UINT64 Pages,
|
BlMemoryFreePages(IN UINT64 Pages,
|
||||||
@ -140,6 +148,12 @@ EFI_STATUS
|
|||||||
BlStartXtLoader(IN EFI_HANDLE ImageHandle,
|
BlStartXtLoader(IN EFI_HANDLE ImageHandle,
|
||||||
IN PEFI_SYSTEM_TABLE SystemTable);
|
IN PEFI_SYSTEM_TABLE SystemTable);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
EFI_STATUS
|
||||||
|
BlWaitForEfiEvent(IN UINT_PTR NumberOfEvents,
|
||||||
|
IN PEFI_EVENT Event,
|
||||||
|
OUT PUINT_PTR Index);
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BlpActivateSerialIOController();
|
BlpActivateSerialIOController();
|
||||||
|
@ -90,11 +90,13 @@ BlpRegisterXtLoaderProtocol()
|
|||||||
EFI_HANDLE Handle = NULL;
|
EFI_HANDLE Handle = NULL;
|
||||||
|
|
||||||
/* Set all routines available via loader protocol */
|
/* Set all routines available via loader protocol */
|
||||||
LdrProtocol.Console.ClearScreen = BlConsoleClearScreen;
|
LdrProtocol.Console.ClearScreen = BlClearConsoleScreen;
|
||||||
LdrProtocol.Console.DisableCursor = BlConsoleDisableCursor;
|
LdrProtocol.Console.DisableCursor = BlDisableConsoleCursor;
|
||||||
LdrProtocol.Console.EnableCursor = BlConsoleEnableCursor;
|
LdrProtocol.Console.EnableCursor = BlEnableConsoleCursor;
|
||||||
LdrProtocol.Console.Print = BlConsolePrint;
|
LdrProtocol.Console.Print = BlConsolePrint;
|
||||||
LdrProtocol.Console.QueryMode = BlConsoleQueryMode;
|
LdrProtocol.Console.QueryMode = BlQueryConsoleMode;
|
||||||
|
LdrProtocol.Console.ReadKeyStroke = BlReadKeyStroke;
|
||||||
|
LdrProtocol.Console.ResetInputBuffer = BlResetConsoleInputBuffer;
|
||||||
LdrProtocol.Console.SetAttributes = BlSetConsoleAttributes;
|
LdrProtocol.Console.SetAttributes = BlSetConsoleAttributes;
|
||||||
LdrProtocol.Console.SetCursorPosition = BlSetCursorPosition;
|
LdrProtocol.Console.SetCursorPosition = BlSetCursorPosition;
|
||||||
LdrProtocol.Console.Write = BlConsoleWrite;
|
LdrProtocol.Console.Write = BlConsoleWrite;
|
||||||
@ -110,6 +112,7 @@ BlpRegisterXtLoaderProtocol()
|
|||||||
LdrProtocol.Util.ExitBootServices = BlExitBootServices;
|
LdrProtocol.Util.ExitBootServices = BlExitBootServices;
|
||||||
LdrProtocol.Util.GetSecureBootStatus = BlGetSecureBootStatus;
|
LdrProtocol.Util.GetSecureBootStatus = BlGetSecureBootStatus;
|
||||||
LdrProtocol.Util.SleepExecution = BlSleepExecution;
|
LdrProtocol.Util.SleepExecution = BlSleepExecution;
|
||||||
|
LdrProtocol.Util.WaitForEfiEvent = BlWaitForEfiEvent;
|
||||||
|
|
||||||
/* Register XTLDR loader protocol */
|
/* Register XTLDR loader protocol */
|
||||||
BlDebugPrint(L"Registering XT loader protocol\n");
|
BlDebugPrint(L"Registering XT loader protocol\n");
|
||||||
|
@ -122,7 +122,7 @@ BlpDetermineDialogBoxSize(IN OUT PXTBL_DIALOG_HANDLE Handle,
|
|||||||
Width += 4;
|
Width += 4;
|
||||||
|
|
||||||
/* Get console resolution */
|
/* Get console resolution */
|
||||||
BlConsoleQueryMode(&Handle->ResX, &Handle->ResY);
|
BlQueryConsoleMode(&Handle->ResX, &Handle->ResY);
|
||||||
|
|
||||||
/* Make sure dialog window fits in the buffer */
|
/* Make sure dialog window fits in the buffer */
|
||||||
if(Width > TUI_MAX_DIALOG_WIDTH)
|
if(Width > TUI_MAX_DIALOG_WIDTH)
|
||||||
@ -328,7 +328,7 @@ BlpDrawDialogButton(IN PXTBL_DIALOG_HANDLE Handle)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Disable cursor and draw dialog button */
|
/* Disable cursor and draw dialog button */
|
||||||
BlConsoleDisableCursor();
|
BlDisableConsoleCursor();
|
||||||
BlSetConsoleAttributes(ButtonColor | TextColor);
|
BlSetConsoleAttributes(ButtonColor | TextColor);
|
||||||
BlSetCursorPosition(Handle->ResX / 2 - 4, Handle->PosY + Handle->Height - 2);
|
BlSetCursorPosition(Handle->ResX / 2 - 4, Handle->PosY + Handle->Height - 2);
|
||||||
BlConsolePrint(L"[ OK ]");
|
BlConsolePrint(L"[ OK ]");
|
||||||
@ -393,7 +393,7 @@ BlpDrawDialogInputField(IN PXTBL_DIALOG_HANDLE Handle,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Disable cursor and write input field to console */
|
/* Disable cursor and write input field to console */
|
||||||
BlConsoleDisableCursor();
|
BlDisableConsoleCursor();
|
||||||
BlConsoleWrite(InputField);
|
BlConsoleWrite(InputField);
|
||||||
|
|
||||||
/* Write input field text */
|
/* Write input field text */
|
||||||
@ -404,7 +404,7 @@ BlpDrawDialogInputField(IN PXTBL_DIALOG_HANDLE Handle,
|
|||||||
if(Handle->Attributes & TUI_DIALOG_ACTIVE_INPUT_FIELD)
|
if(Handle->Attributes & TUI_DIALOG_ACTIVE_INPUT_FIELD)
|
||||||
{
|
{
|
||||||
/* Enable cursor for active input field */
|
/* Enable cursor for active input field */
|
||||||
BlConsoleEnableCursor();
|
BlEnableConsoleCursor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,14 +459,26 @@ BlpDrawDialogProgressBar(IN PXTBL_DIALOG_HANDLE Handle,
|
|||||||
ProgressBar[Index] = 0;
|
ProgressBar[Index] = 0;
|
||||||
|
|
||||||
/* Disable cursor and write progress bar to console */
|
/* Disable cursor and write progress bar to console */
|
||||||
BlConsoleDisableCursor();
|
BlDisableConsoleCursor();
|
||||||
BlConsoleWrite(ProgressBar);
|
BlConsoleWrite(ProgressBar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Displays a red error dialog box with the specified caption and message.
|
||||||
|
*
|
||||||
|
* @param Caption
|
||||||
|
* Supplies a caption string put on the dialog box.
|
||||||
|
*
|
||||||
|
* @param Message
|
||||||
|
* Supplies a message string put on the dialog box.
|
||||||
|
*
|
||||||
|
* @return This routine does not return any value.
|
||||||
|
*
|
||||||
|
* @since XT 1.0
|
||||||
|
*/
|
||||||
XTCDECL
|
XTCDECL
|
||||||
VOID
|
VOID
|
||||||
BlDisplayErrorDialog(IN PWCHAR Caption,
|
BlDisplayErrorDialog(IN PWCHAR Caption,
|
||||||
@ -483,7 +495,7 @@ BlDisplayErrorDialog(IN PWCHAR Caption,
|
|||||||
BlpDetermineDialogBoxSize(&Handle, Message);
|
BlpDetermineDialogBoxSize(&Handle, Message);
|
||||||
|
|
||||||
/* Disable cursor and draw dialog box */
|
/* Disable cursor and draw dialog box */
|
||||||
BlConsoleDisableCursor();
|
BlDisableConsoleCursor();
|
||||||
BlpDrawDialogBox(&Handle, Caption, Message);
|
BlpDrawDialogBox(&Handle, Caption, Message);
|
||||||
|
|
||||||
/* Draw active button */
|
/* Draw active button */
|
||||||
@ -497,14 +509,14 @@ BlDisplayErrorDialog(IN PWCHAR Caption,
|
|||||||
while(Key.ScanCode != 0x17 && Key.UnicodeChar != 0x0D)
|
while(Key.ScanCode != 0x17 && Key.UnicodeChar != 0x0D)
|
||||||
{
|
{
|
||||||
/* Wait for key press and read key stroke */
|
/* Wait for key press and read key stroke */
|
||||||
EfiSystemTable->BootServices->WaitForEvent(1, &EfiSystemTable->ConIn->WaitForKey, &Index);
|
BlWaitForEfiEvent(1, &EfiSystemTable->ConIn->WaitForKey, &Index);
|
||||||
EfiSystemTable->ConIn->ReadKeyStroke(EfiSystemTable->ConIn, &Key);
|
BlReadKeyStroke(&Key);
|
||||||
EfiSystemTable->ConIn->Reset(EfiSystemTable->ConIn, FALSE);
|
BlResetConsoleInputBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clear screen to remove dialog box */
|
/* Clear screen to remove dialog box */
|
||||||
BlSetConsoleAttributes(EFI_TEXT_BGCOLOR_BLACK | EFI_TEXT_FGCOLOR_LIGHTGRAY);
|
BlSetConsoleAttributes(EFI_TEXT_BGCOLOR_BLACK | EFI_TEXT_FGCOLOR_LIGHTGRAY);
|
||||||
BlConsoleClearScreen();
|
BlClearConsoleScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
@ -523,7 +535,7 @@ BlDisplayInfoDialog(IN PWCHAR Caption,
|
|||||||
BlpDetermineDialogBoxSize(&Handle, Message);
|
BlpDetermineDialogBoxSize(&Handle, Message);
|
||||||
|
|
||||||
/* Disable cursor and draw dialog box */
|
/* Disable cursor and draw dialog box */
|
||||||
BlConsoleDisableCursor();
|
BlDisableConsoleCursor();
|
||||||
BlpDrawDialogBox(&Handle, Caption, Message);
|
BlpDrawDialogBox(&Handle, Caption, Message);
|
||||||
|
|
||||||
/* Draw active button */
|
/* Draw active button */
|
||||||
@ -537,14 +549,14 @@ BlDisplayInfoDialog(IN PWCHAR Caption,
|
|||||||
while(Key.ScanCode != 0x17 && Key.UnicodeChar != 0x0D)
|
while(Key.ScanCode != 0x17 && Key.UnicodeChar != 0x0D)
|
||||||
{
|
{
|
||||||
/* Wait for key press and read key stroke */
|
/* Wait for key press and read key stroke */
|
||||||
EfiSystemTable->BootServices->WaitForEvent(1, &EfiSystemTable->ConIn->WaitForKey, &Index);
|
BlWaitForEfiEvent(1, &EfiSystemTable->ConIn->WaitForKey, &Index);
|
||||||
EfiSystemTable->ConIn->ReadKeyStroke(EfiSystemTable->ConIn, &Key);
|
BlReadKeyStroke(&Key);
|
||||||
EfiSystemTable->ConIn->Reset(EfiSystemTable->ConIn, FALSE);
|
BlResetConsoleInputBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clear screen to remove dialog box */
|
/* Clear screen to remove dialog box */
|
||||||
BlSetConsoleAttributes(EFI_TEXT_BGCOLOR_BLACK | EFI_TEXT_FGCOLOR_LIGHTGRAY);
|
BlSetConsoleAttributes(EFI_TEXT_BGCOLOR_BLACK | EFI_TEXT_FGCOLOR_LIGHTGRAY);
|
||||||
BlConsoleClearScreen();
|
BlClearConsoleScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
@ -565,7 +577,7 @@ BlDisplayInputDialog(IN PWCHAR Caption,
|
|||||||
BlpDetermineDialogBoxSize(&Handle, Message);
|
BlpDetermineDialogBoxSize(&Handle, Message);
|
||||||
|
|
||||||
/* Disable cursor and draw dialog box */
|
/* Disable cursor and draw dialog box */
|
||||||
BlConsoleDisableCursor();
|
BlDisableConsoleCursor();
|
||||||
BlpDrawDialogBox(&Handle, Caption, Message);
|
BlpDrawDialogBox(&Handle, Caption, Message);
|
||||||
|
|
||||||
/* Draw inactive button */
|
/* Draw inactive button */
|
||||||
@ -593,9 +605,9 @@ BlDisplayInputDialog(IN PWCHAR Caption,
|
|||||||
while(TRUE)
|
while(TRUE)
|
||||||
{
|
{
|
||||||
/* Wait for key press and read key stroke */
|
/* Wait for key press and read key stroke */
|
||||||
EfiSystemTable->BootServices->WaitForEvent(1, &EfiSystemTable->ConIn->WaitForKey, &Index);
|
BlWaitForEfiEvent(1, &EfiSystemTable->ConIn->WaitForKey, &Index);
|
||||||
EfiSystemTable->ConIn->ReadKeyStroke(EfiSystemTable->ConIn, &Key);
|
BlReadKeyStroke(&Key);
|
||||||
EfiSystemTable->ConIn->Reset(EfiSystemTable->ConIn, FALSE);
|
BlResetConsoleInputBuffer();
|
||||||
|
|
||||||
/* Check key press scan code */
|
/* Check key press scan code */
|
||||||
if(Key.ScanCode == 0x17)
|
if(Key.ScanCode == 0x17)
|
||||||
@ -711,7 +723,7 @@ BlDisplayInputDialog(IN PWCHAR Caption,
|
|||||||
|
|
||||||
/* Clear screen to remove dialog box */
|
/* Clear screen to remove dialog box */
|
||||||
BlSetConsoleAttributes(EFI_TEXT_BGCOLOR_BLACK | EFI_TEXT_FGCOLOR_LIGHTGRAY);
|
BlSetConsoleAttributes(EFI_TEXT_BGCOLOR_BLACK | EFI_TEXT_FGCOLOR_LIGHTGRAY);
|
||||||
BlConsoleClearScreen();
|
BlClearConsoleScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
@ -729,7 +741,7 @@ BlDisplayProgressDialog(IN PWCHAR Caption,
|
|||||||
BlpDetermineDialogBoxSize(&Handle, Message);
|
BlpDetermineDialogBoxSize(&Handle, Message);
|
||||||
|
|
||||||
/* Disable cursor and draw dialog box */
|
/* Disable cursor and draw dialog box */
|
||||||
BlConsoleDisableCursor();
|
BlDisableConsoleCursor();
|
||||||
BlpDrawDialogBox(&Handle, Caption, Message);
|
BlpDrawDialogBox(&Handle, Caption, Message);
|
||||||
|
|
||||||
/* Draw active button */
|
/* Draw active button */
|
||||||
|
Loading…
Reference in New Issue
Block a user