diff --git a/sdk/xtdk/bltypes.h b/sdk/xtdk/bltypes.h index 67ba8e0..d78b9cf 100644 --- a/sdk/xtdk/bltypes.h +++ b/sdk/xtdk/bltypes.h @@ -36,6 +36,7 @@ typedef VOID (*PBL_CONSOLE_CLEAR_SCREEN)(); typedef VOID (*PBL_CONSOLE_DISABLE_CURSOR)(); typedef VOID (*PBL_CONSOLE_ENABLE_CURSOR)(); typedef VOID (*PBL_CONSOLE_PRINT)(IN PUINT16 Format, IN ...); +typedef VOID (*PBL_CONSOLE_WRITE)(IN PUSHORT String); typedef VOID (*PBL_DEBUG_PRINT)(IN PUINT16 Format, IN ...); typedef EFI_STATUS (*PBL_EXIT_BOOT_SERVICES)(IN UINT_PTR MapKey); typedef EFI_STATUS (*PBL_FREE_PAGES)(IN UINT64 Size, IN EFI_PHYSICAL_ADDRESS Memory); @@ -77,6 +78,7 @@ typedef struct _XTBL_LOADER_PROTOCOL PBL_CONSOLE_CLEAR_SCREEN ClearScreen; PBL_CONSOLE_DISABLE_CURSOR DisableCursor; PBL_CONSOLE_ENABLE_CURSOR EnableCursor; + PBL_CONSOLE_WRITE Write; PBL_CONSOLE_PRINT Print; } Console; struct diff --git a/xtldr2/console.c b/xtldr2/console.c index d8a7b8e..782810f 100644 --- a/xtldr2/console.c +++ b/xtldr2/console.c @@ -93,6 +93,23 @@ BlConsolePrint(IN PUINT16 Format, VA_END(Arguments); } +/** + * Displays the string on the device at the current cursor location. + * + * @param String + * The string to be displayed. + * + * @return This routine does not return any value. + * + * @since XT 1.0 + */ +XTCDECL +VOID +BlConsoleWrite(IN PUSHORT String) +{ + EfiSystemTable->ConOut->OutputString(EfiSystemTable->ConOut, String); +} + /** * This routine initializes the EFI console. * diff --git a/xtldr2/includes/bootman.h b/xtldr2/includes/bootman.h index 73d0658..d8ebedb 100644 --- a/xtldr2/includes/bootman.h +++ b/xtldr2/includes/bootman.h @@ -37,6 +37,10 @@ VOID BlConsolePrint(IN PUINT16 Format, IN ...); +XTCDECL +VOID +BlConsoleWrite(IN PUSHORT String); + XTCDECL VOID BlDebugPrint(IN PUINT16 Format, diff --git a/xtldr2/protocol.c b/xtldr2/protocol.c index 53feebe..069818f 100644 --- a/xtldr2/protocol.c +++ b/xtldr2/protocol.c @@ -94,6 +94,7 @@ BlpRegisterXtLoaderProtocol() LdrProtocol.Console.DisableCursor = BlConsoleDisableCursor; LdrProtocol.Console.EnableCursor = BlConsoleEnableCursor; LdrProtocol.Console.Print = BlConsolePrint; + LdrProtocol.Console.Write = BlConsoleWrite; LdrProtocol.Debug.Print = BlDebugPrint; LdrProtocol.Disk.CloseVolume = BlCloseVolume; LdrProtocol.Disk.OpenVolume = BlOpenVolume;