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