aboutsummaryrefslogtreecommitdiffstats
path: root/Lesson_29/UefiLessonsPkg/SaveBGRT
diff options
context:
space:
mode:
authorKonstantin Aladyshev <aladyshev22@gmail.com>2021-07-10 00:04:40 +0300
committerKonstantin Aladyshev <aladyshev22@gmail.com>2021-07-10 00:04:40 +0300
commit6064c1e48b622f53538f4df9bdd402c607a87d51 (patch)
tree93d3c937b9568568307fd2ff7053a30c538ad72a /Lesson_29/UefiLessonsPkg/SaveBGRT
parenta9c375c80c3505be794ec2b5d5bb90de27ef0d42 (diff)
downloadUEFI-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.c104
-rw-r--r--Lesson_29/UefiLessonsPkg/SaveBGRT/SaveBGRT.inf23
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
-