printenv.c 725 B

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