Implement BlClearConsoleLine() routine
This commit is contained in:
parent
ec861c6296
commit
10aaf7e24e
@ -47,6 +47,7 @@ typedef EFI_STATUS (*PBL_ALLOCATE_PAGES)(IN UINT64 Size, OUT PEFI_PHYSICAL_ADDRE
|
||||
typedef EFI_STATUS (*PBL_ALLOCATE_POOL)(IN UINT_PTR Size, OUT PVOID *Memory);
|
||||
typedef VOID (*PBL_BOOTMENU_INITIALIZE_OS_LIST)(OUT PXTBL_BOOTMENU_ITEM MenuEntries, OUT PULONG EntriesCount, OUT PULONG DefaultId);
|
||||
typedef EFI_STATUS (*PBL_CLOSE_VOLUME)(IN PEFI_HANDLE VolumeHandle);
|
||||
typedef VOID (*PBL_CLEAR_CONSOLE_LINE)(IN ULONGLONG LineNo);
|
||||
typedef VOID (*PBL_CONSOLE_CLEAR_SCREEN)();
|
||||
typedef VOID (*PBL_CONSOLE_DISABLE_CURSOR)();
|
||||
typedef VOID (*PBL_CONSOLE_ENABLE_CURSOR)();
|
||||
@ -114,6 +115,7 @@ typedef struct _XTBL_LOADER_PROTOCOL
|
||||
{
|
||||
struct
|
||||
{
|
||||
PBL_CLEAR_CONSOLE_LINE ClearLine;
|
||||
PBL_CONSOLE_CLEAR_SCREEN ClearScreen;
|
||||
PBL_CONSOLE_DISABLE_CURSOR DisableCursor;
|
||||
PBL_CONSOLE_ENABLE_CURSOR EnableCursor;
|
||||
|
@ -9,6 +9,34 @@
|
||||
#include <xtldr.h>
|
||||
|
||||
|
||||
/**
|
||||
* Clears a specified line on the UEFI text console.
|
||||
*
|
||||
* @param LineNo
|
||||
* Supplies a line number to clear.
|
||||
*
|
||||
* @return This routine does not return any value.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTCDECL
|
||||
VOID
|
||||
BlClearConsoleLine(IN ULONGLONG LineNo)
|
||||
{
|
||||
UINT_PTR Index, ResX, ResY;
|
||||
|
||||
/* Query console mode */
|
||||
BlQueryConsoleMode(&ResX, &ResY);
|
||||
|
||||
/* Set cursor position and clear line */
|
||||
BlSetCursorPosition(0, LineNo);
|
||||
for(Index = 0; Index < ResX; Index++)
|
||||
{
|
||||
/* Clear line */
|
||||
BlConsoleWrite(L" ");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This routine clears the UEFI console screen.
|
||||
*
|
||||
|
@ -16,6 +16,10 @@
|
||||
typedef VOID (BMPRINTCHAR)(IN USHORT Character);
|
||||
|
||||
/* XTLDR routines forward references */
|
||||
XTCDECL
|
||||
VOID
|
||||
BlClearConsoleLine(IN ULONGLONG LineNo);
|
||||
|
||||
XTCDECL
|
||||
VOID
|
||||
BlClearConsoleScreen();
|
||||
|
@ -90,6 +90,7 @@ BlpRegisterXtLoaderProtocol()
|
||||
EFI_HANDLE Handle = NULL;
|
||||
|
||||
/* Set all routines available via loader protocol */
|
||||
LdrProtocol.Console.ClearLine = BlClearConsoleLine;
|
||||
LdrProtocol.Console.ClearScreen = BlClearConsoleScreen;
|
||||
LdrProtocol.Console.DisableCursor = BlDisableConsoleCursor;
|
||||
LdrProtocol.Console.EnableCursor = BlEnableConsoleCursor;
|
||||
|
Loading…
Reference in New Issue
Block a user