xref: /netbsd-src/sys/external/bsd/gnu-efi/dist/apps/printenv.c (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
1 /*	$NetBSD: printenv.c,v 1.1.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