Smbase.h 857 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /** @file
  2. SMBASE relocation for hot-plugged CPUs.
  3. Copyright (c) 2020, Red Hat, Inc.
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #ifndef SMBASE_H_
  7. #define SMBASE_H_
  8. #include <Uefi/UefiBaseType.h> // EFI_STATUS
  9. #include <Uefi/UefiSpec.h> // EFI_BOOT_SERVICES
  10. #include "ApicId.h" // APIC_ID
  11. EFI_STATUS
  12. SmbaseAllocatePostSmmPen (
  13. OUT UINT32 *PenAddress,
  14. IN CONST EFI_BOOT_SERVICES *BootServices
  15. );
  16. VOID
  17. SmbaseReinstallPostSmmPen (
  18. IN UINT32 PenAddress
  19. );
  20. VOID
  21. SmbaseReleasePostSmmPen (
  22. IN UINT32 PenAddress,
  23. IN CONST EFI_BOOT_SERVICES *BootServices
  24. );
  25. VOID
  26. SmbaseInstallFirstSmiHandler (
  27. VOID
  28. );
  29. EFI_STATUS
  30. SmbaseRelocate (
  31. IN APIC_ID ApicId,
  32. IN UINTN Smbase,
  33. IN UINT32 PenAddress
  34. );
  35. #endif // SMBASE_H_