/** * PROJECT: ExectOS * COPYRIGHT: See COPYING.md in the top level directory * FILE: xtldr/console.c * DESCRIPTION: EFI console support * DEVELOPERS: Rafal Kupiec */ #include /** * This routine clears the UEFI console screen. * * @return This routine does not return any value. * * @since XT 1.0 */ XTCDECL VOID BmClearScreen() { /* Clear screen */ EfiSystemTable->ConOut->ClearScreen(EfiSystemTable->ConOut); } /** * Disables the cursor on the UEFI console. * * @return This routine does not return any value. * * @since XT 1.0 */ XTCDECL VOID BmDisableCursor() { EfiSystemTable->ConOut->EnableCursor(EfiSystemTable->ConOut, FALSE); } /** * Enables the cursor on the UEFI console. * * @return This routine does not return any value. * * @since XT 1.0 */ XTCDECL VOID BmEnableCursor() { EfiSystemTable->ConOut->EnableCursor(EfiSystemTable->ConOut, TRUE); } /** * This routine initializes the EFI console. * * @return This routine returns status code. * * @since XT 1.0 */ XTCDECL VOID BmInitializeConsole() { /* Clear console buffers */ EfiSystemTable->ConIn->Reset(EfiSystemTable->ConIn, TRUE); EfiSystemTable->ConOut->Reset(EfiSystemTable->ConOut, TRUE); EfiSystemTable->StdErr->Reset(EfiSystemTable->StdErr, TRUE); /* Clear screen and enable cursor */ BmClearScreen(); BmEnableCursor(); } /** * Writes a character to the default EFI console. * * @param Character * The integer promotion of the character to be written. * * @return This routine does not return any value. * * @since XT 1.0 */ XTCDECL VOID BmPrintChar(IN USHORT Character) { USHORT Buffer[2]; /* Write character to the screen console */ Buffer[0] = Character; Buffer[1] = 0; EfiSystemTable->ConOut->OutputString(EfiSystemTable->ConOut, Buffer); }