diff options
author | Konstantin Aladyshev <aladyshev22@gmail.com> | 2021-07-10 00:04:40 +0300 |
---|---|---|
committer | Konstantin Aladyshev <aladyshev22@gmail.com> | 2021-07-10 00:04:40 +0300 |
commit | 6064c1e48b622f53538f4df9bdd402c607a87d51 (patch) | |
tree | 93d3c937b9568568307fd2ff7053a30c538ad72a /Lesson_29/UefiLessonsPkg/SaveBGRT | |
parent | a9c375c80c3505be794ec2b5d5bb90de27ef0d42 (diff) | |
download | UEFI-Lessons-6064c1e48b622f53538f4df9bdd402c607a87d51.tar.gz UEFI-Lessons-6064c1e48b622f53538f4df9bdd402c607a87d51.tar.bz2 UEFI-Lessons-6064c1e48b622f53538f4df9bdd402c607a87d51.zip |
Move lessons to separate folder
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
Diffstat (limited to 'Lesson_29/UefiLessonsPkg/SaveBGRT')
-rw-r--r-- | Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.c | 104 | ||||
-rw-r--r-- | Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.inf | 23 |
2 files changed, 0 insertions, 127 deletions
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 <Library/UefiBootServicesTableLib.h> -#include <Library/UefiLib.h> - -#include <Protocol/AcpiSystemDescriptionTable.h> -#include <Library/ShellLib.h> -#include <IndustryStandard/Bmp.h> - -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; -} diff --git a/Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.inf b/Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.inf deleted file mode 100644 index 93ab1b9..0000000 --- a/Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.inf +++ /dev/null @@ -1,23 +0,0 @@ -[Defines] - INF_VERSION = 1.25 - BASE_NAME = SaveBGRT - FILE_GUID = efe33e23-b17c-42b2-9551-87546f215935 - MODULE_TYPE = UEFI_APPLICATION - VERSION_STRING = 1.0 - ENTRY_POINT = UefiMain - -[Sources] - SaveBGRT.c - -[Packages] - MdePkg/MdePkg.dec - ShellPkg/ShellPkg.dec - -[LibraryClasses] - UefiApplicationEntryPoint - UefiLib - ShellLib - -[Protocols] - gEfiAcpiSdtProtocolGuid - |