DxeUbaSystemConfigUpdateLib.c 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /** @file
  2. @copyright
  3. Copyright 2017 - 2018 Intel Corporation. <BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #include <Base.h>
  7. #include <Uefi.h>
  8. #include <Library/BaseLib.h>
  9. #include <Library/BaseMemoryLib.h>
  10. #include <Library/MemoryAllocationLib.h>
  11. #include <Library/UefiBootServicesTableLib.h>
  12. #include <Library/DebugLib.h>
  13. #include <Library/UbaSystemConfigUpdateLib.h>
  14. #include <Protocol/UbaCfgDb.h>
  15. EFI_STATUS
  16. UpdateIioDefaultConfig (
  17. IN SYSTEM_CONFIGURATION *Default
  18. )
  19. {
  20. EFI_STATUS Status;
  21. UBA_CONFIG_DATABASE_PROTOCOL *UbaConfigProtocol = NULL;
  22. UINTN DataLength = 0;
  23. SYSTEM_CONFIG_UPDATE_DATA SystemConfigUpdateTable;
  24. Status = gBS->LocateProtocol (
  25. &gUbaConfigDatabaseProtocolGuid,
  26. NULL,
  27. &UbaConfigProtocol
  28. );
  29. if (EFI_ERROR (Status)) {
  30. DEBUG ((DEBUG_ERROR," [UpdateIioDefaultConfig] Locate UbaConfigProtocol fail!\n"));
  31. return Status;
  32. }
  33. DataLength = sizeof(SystemConfigUpdateTable);
  34. Status = UbaConfigProtocol->GetData (
  35. UbaConfigProtocol,
  36. &gSystemConfigUpdateDataGuid,
  37. &SystemConfigUpdateTable,
  38. &DataLength
  39. );
  40. if (EFI_ERROR (Status)) {
  41. DEBUG ((DEBUG_ERROR," [UpdateIioDefaultConfig] Get Data fail!\n"));
  42. return Status;
  43. }
  44. ASSERT (SystemConfigUpdateTable.Signature == SYSTEM_CONFIG_UPDATE_SIGNATURE);
  45. ASSERT (SystemConfigUpdateTable.Version == SYSTEM_CONFIG_UPDATE_VERSION);
  46. SystemConfigUpdateTable.CallUpdateIioConfig (Default);
  47. return Status;
  48. }