| /** @file | |
| Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef TDX_MAILBOX_LIB_H_ | |
| #define TDX_MAILBOX_LIB_H_ | |
| #include <Library/BaseLib.h> | |
| #include <Uefi/UefiBaseType.h> | |
| #include <Uefi/UefiSpec.h> | |
| #include <Pi/PiPeiCis.h> | |
| #include <Library/DebugLib.h> | |
| #include <Protocol/DebugSupport.h> | |
| /** | |
| This function will be called by BSP to get the CPU number. | |
| @retval CPU number | |
| **/ | |
| UINT32 | |
| EFIAPI | |
| GetCpusNum ( | |
| VOID | |
| ); | |
| /** | |
| Get the address of Td mailbox. | |
| **/ | |
| volatile VOID * | |
| EFIAPI | |
| GetTdxMailBox ( | |
| VOID | |
| ); | |
| /** | |
| This function will be called by BSP to wakeup APs the are spinning on mailbox | |
| in protected mode | |
| @param[in] Command Command to send APs | |
| @param[in] WakeupVector If used, address for APs to start executing | |
| @param[in] WakeArgsX Args to pass to APs for excuting commands | |
| **/ | |
| VOID | |
| EFIAPI | |
| MpSendWakeupCommand ( | |
| IN UINT16 Command, | |
| IN UINT64 WakeupVector, | |
| IN UINT64 WakeupArgs1, | |
| IN UINT64 WakeupArgs2, | |
| IN UINT64 WakeupArgs3, | |
| IN UINT64 WakeupArgs4 | |
| ); | |
| /** | |
| BSP wait until all the APs arriving. It means the task triggered by BSP is started. | |
| **/ | |
| VOID | |
| EFIAPI | |
| MpSerializeStart ( | |
| VOID | |
| ); | |
| /** | |
| BSP wait until all the APs arriving. It means the task triggered by BSP is ended. | |
| **/ | |
| VOID | |
| EFIAPI | |
| MpSerializeEnd ( | |
| VOID | |
| ); | |
| #endif |