176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <efi.h>
276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <efilib.h>
376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS
576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanefi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman{
776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	EFI_STATUS status;
876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	CHAR16 name[256], *val, fmt[20];
976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	EFI_GUID vendor;
1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	UINTN size;
1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	InitializeLib(image, systab);
1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	name[0] = 0;
1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	vendor = NullGuid;
1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	Print(L"GUID                                Variable Name        Value\n");
1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	Print(L"=================================== ==================== ========\n");
1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	StrCpy(fmt, L"%.-35g %.-20s %s\n");
2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	while (1) {
2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman		size = sizeof(name);
2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman		status = uefi_call_wrapper(RT->GetNextVariableName, 3, &size, name, &vendor);
2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman		if (status != EFI_SUCCESS)
2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman			break;
2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman		val = LibGetVariable(name, &vendor);
2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman		Print(fmt, &vendor, name, val);
2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman		FreePool(val);
3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	}
3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	return EFI_SUCCESS;
3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman}
33