diff options
author | Konstantin Aladyshev <aladyshev22@gmail.com> | 2024-02-16 14:46:39 +0300 |
---|---|---|
committer | Konstantin Aladyshev <aladyshev22@gmail.com> | 2024-02-16 14:46:39 +0300 |
commit | de14b3a46c9e2feaea1c03f6a7726e771412d2dd (patch) | |
tree | 7bb42ad136b621422f54365b87b108c1116edb08 /UefiLessonsPkg | |
parent | ea8ae301624126b12fa8ed2e2220eddb1850e4b4 (diff) | |
download | UEFI-Lessons-de14b3a46c9e2feaea1c03f6a7726e771412d2dd.tar.gz UEFI-Lessons-de14b3a46c9e2feaea1c03f6a7726e771412d2dd.tar.bz2 UEFI-Lessons-de14b3a46c9e2feaea1c03f6a7726e771412d2dd.zip |
Add simple application to dump strings from HII package
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
Diffstat (limited to 'UefiLessonsPkg')
-rw-r--r-- | UefiLessonsPkg/ShowStrings/ShowStrings.c | 43 | ||||
-rw-r--r-- | UefiLessonsPkg/ShowStrings/ShowStrings.inf | 25 | ||||
-rw-r--r-- | UefiLessonsPkg/UefiLessonsPkg.dsc | 1 |
3 files changed, 69 insertions, 0 deletions
diff --git a/UefiLessonsPkg/ShowStrings/ShowStrings.c b/UefiLessonsPkg/ShowStrings/ShowStrings.c new file mode 100644 index 0000000..00d0625 --- /dev/null +++ b/UefiLessonsPkg/ShowStrings/ShowStrings.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2024, Konstantin Aladyshev <aladyshev22@gmail.com> + * + * SPDX-License-Identifier: MIT + */ + +#include <Library/UefiBootServicesTableLib.h> +#include <Library/UefiLib.h> +#include <Library/HiiLib.h> +#include <Library/MemoryAllocationLib.h> + + +INTN +EFIAPI +ShellAppMain ( + IN UINTN Argc, + IN CHAR16 **Argv + ) +{ + if (Argc != 2) { + Print(L"Usage:\n"); + Print(L" ShowStrings [Package GUID]\n"); + return EFI_INVALID_PARAMETER; + } + + EFI_GUID PackageGuid; + EFI_STATUS Status = StrToGuid(Argv[1], &PackageGuid); + if (Status != RETURN_SUCCESS) { + Print(L"Error! Can't convert <Package GUID> argument to GUID\n"); + return EFI_INVALID_PARAMETER; + } + + EFI_HII_HANDLE* Handle = HiiGetHiiHandles(&PackageGuid); + + for (UINTN i=1; i<0xFFFF; i++) { + EFI_STRING String = HiiGetString(*Handle, i, "en-US"); + if (String != NULL) { + Print(L"ID=%d, %s\n", i, String); + FreePool(String); + } + } + return EFI_SUCCESS; +} diff --git a/UefiLessonsPkg/ShowStrings/ShowStrings.inf b/UefiLessonsPkg/ShowStrings/ShowStrings.inf new file mode 100644 index 0000000..c5e8206 --- /dev/null +++ b/UefiLessonsPkg/ShowStrings/ShowStrings.inf @@ -0,0 +1,25 @@ +## +# Copyright (c) 2024, Konstantin Aladyshev <aladyshev22@gmail.com> +# +# SPDX-License-Identifier: MIT +## + +[Defines] + INF_VERSION = 1.25 + BASE_NAME = ShowStrings + FILE_GUID = ae4c1ff2-5621-4e53-a5f8-e4652b457661 + MODULE_TYPE = UEFI_APPLICATION + VERSION_STRING = 1.0 + ENTRY_POINT = ShellCEntryLib + +[Sources] + ShowStrings.c + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[LibraryClasses] + ShellCEntryLib + UefiLib + HiiLib diff --git a/UefiLessonsPkg/UefiLessonsPkg.dsc b/UefiLessonsPkg/UefiLessonsPkg.dsc index 970b5a6..c7bdde8 100644 --- a/UefiLessonsPkg/UefiLessonsPkg.dsc +++ b/UefiLessonsPkg/UefiLessonsPkg.dsc @@ -94,6 +94,7 @@ UefiLessonsPkg/HiddenSettings/HiddenSettings.inf UefiLessonsPkg/ShowHIIext/ShowHIIext.inf UefiLessonsPkg/ProtocolEventDriver/ProtocolEventDriver.inf + UefiLessonsPkg/ShowStrings/ShowStrings.inf #[PcdsFixedAtBuild] # gUefiLessonsPkgTokenSpaceGuid.PcdInt8|0x88|UINT8|0x3B81CDF1 |