From 6064c1e48b622f53538f4df9bdd402c607a87d51 Mon Sep 17 00:00:00 2001 From: Konstantin Aladyshev Date: Sat, 10 Jul 2021 00:04:40 +0300 Subject: Move lessons to separate folder Signed-off-by: Konstantin Aladyshev --- Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.c | 104 --------------------------- 1 file changed, 104 deletions(-) delete mode 100644 Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.c (limited to 'Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.c') diff --git a/Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.c b/Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.c deleted file mode 100644 index 2fda8d8..0000000 --- a/Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.c +++ /dev/null @@ -1,104 +0,0 @@ -#include -#include - -#include -#include -#include - -EFI_STATUS WriteFile(CHAR16* FileName, VOID* Data, UINTN* Size) -{ - SHELL_FILE_HANDLE FileHandle; - EFI_STATUS Status = ShellOpenFileByName( - FileName, - &FileHandle, - EFI_FILE_MODE_CREATE | EFI_FILE_MODE_WRITE | EFI_FILE_MODE_READ, - 0 - ); - if (!EFI_ERROR(Status)) { - Print(L"Save it to %s\n", FileName); - UINTN ToWrite = *Size; - Status = ShellWriteFile( - FileHandle, - Size, - Data - ); - if (EFI_ERROR(Status)) { - Print(L"Can't write file: %r\n", Status); - } - if (*Size != ToWrite) { - Print(L"Error! Not all data was written\n"); - } - Status = ShellCloseFile( - &FileHandle - ); - if (EFI_ERROR(Status)) { - Print(L"Can't close file: %r\n", Status); - } - } else { - Print(L"Can't open file: %r\n", Status); - } - return Status; -} - -EFI_STATUS -EFIAPI -UefiMain ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ) -{ - EFI_ACPI_SDT_PROTOCOL* AcpiSdtProtocol; - EFI_STATUS Status = gBS->LocateProtocol ( - &gEfiAcpiSdtProtocolGuid, - NULL, - (VOID**)&AcpiSdtProtocol - ); - if (EFI_ERROR (Status)) { - return Status; - } - - BOOLEAN BGRT_found = FALSE; - UINTN Index = 0; - EFI_ACPI_SDT_HEADER* Table; - EFI_ACPI_TABLE_VERSION Version; - UINTN TableKey; - while (TRUE) { - Status = AcpiSdtProtocol->GetAcpiTable(Index, - &Table, - &Version, - &TableKey - ); - if (EFI_ERROR(Status)) { - break; - } - if (((CHAR8)((Table->Signature >> 0) & 0xFF) == 'B') && - ((CHAR8)((Table->Signature >> 8) & 0xFF) == 'G') && - ((CHAR8)((Table->Signature >> 16) & 0xFF) == 'R') && - ((CHAR8)((Table->Signature >> 24) & 0xFF) == 'T')) { - BGRT_found = TRUE; - break; - } - Index++; - } - if (!BGRT_found) { - Print(L"BGRT table is not present in the system\n"); - return EFI_UNSUPPORTED; - } - - EFI_ACPI_6_3_BOOT_GRAPHICS_RESOURCE_TABLE* BGRT = (EFI_ACPI_6_3_BOOT_GRAPHICS_RESOURCE_TABLE*)Table; - if (BGRT->ImageType == 0) { - BMP_IMAGE_HEADER* BMP = (BMP_IMAGE_HEADER*)(BGRT->ImageAddress); - - if ((BMP->CharB != 'B') || (BMP->CharM != 'M')) { - Print(L"BMP image has wrong signature!\n"); - return EFI_UNSUPPORTED; - } - Print(L"BGRT conatins BMP image with %dx%d resolution\n", BMP->PixelWidth, BMP->PixelHeight); - UINTN Size = BMP->Size; - Status = WriteFile(L"BGRT.bmp", BMP, &Size); - if (EFI_ERROR(Status)) { - Print(L"Error! Can't write BGRT.bmp file\n"); - } - } - return Status; -} -- cgit v1.2.3-18-g5258