printenv.c revision 1.1 1 /* $NetBSD: printenv.c,v 1.1 2014/04/01 16:16:06 jakllsch Exp $ */
2
3 #include <efi.h>
4 #include <efilib.h>
5
6 EFI_STATUS
7 efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
8 {
9 EFI_STATUS status;
10 CHAR16 name[256], *val, fmt[20];
11 EFI_GUID vendor;
12 UINTN size;
13
14 InitializeLib(image, systab);
15
16 name[0] = 0;
17 vendor = NullGuid;
18
19 Print(L"GUID Variable Name Value\n");
20 Print(L"=================================== ==================== ========\n");
21
22 StrCpy(fmt, L"%.-35g %.-20s %s\n");
23 while (1) {
24 size = sizeof(name);
25 status = uefi_call_wrapper(RT->GetNextVariableName, 3, &size, name, &vendor);
26 if (status != EFI_SUCCESS)
27 break;
28
29 val = LibGetVariable(name, &vendor);
30 Print(fmt, &vendor, name, val);
31 FreePool(val);
32 }
33 return EFI_SUCCESS;
34 }
35