]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Library/BaseLib.h
MdePkg: Introduce basic Tdx functions in BaseLib
[mirror_edk2.git] / MdePkg / Include / Library / BaseLib.h
index 6aa0d972186e2101ca2b790caab3b6df03661c9d..9d58a7c4ad13e5a9eb240639370e3f964156e9c6 100644 (file)
@@ -4759,6 +4759,72 @@ SpeculationBarrier (
   VOID\r
   );\r
 \r
+#if defined (MDE_CPU_X64) || defined (MDE_CPU_IA32)\r
+\r
+/**\r
+  The TDCALL instruction causes a VM exit to the Intel TDX module.  It is\r
+  used to call guest-side Intel TDX functions, either local or a TD exit\r
+  to the host VMM, as selected by Leaf.\r
+\r
+  @param[in]      Leaf        Leaf number of TDCALL instruction\r
+  @param[in]      Arg1        Arg1\r
+  @param[in]      Arg2        Arg2\r
+  @param[in]      Arg3        Arg3\r
+  @param[in,out]  Results  Returned result of the Leaf function\r
+\r
+  @return 0               A successful call\r
+  @return Other           See individual leaf functions\r
+**/\r
+UINTN\r
+EFIAPI\r
+TdCall (\r
+  IN UINT64    Leaf,\r
+  IN UINT64    Arg1,\r
+  IN UINT64    Arg2,\r
+  IN UINT64    Arg3,\r
+  IN OUT VOID  *Results\r
+  );\r
+\r
+/**\r
+  TDVMALL is a leaf function 0 for TDCALL. It helps invoke services from the\r
+  host VMM to pass/receive information.\r
+\r
+  @param[in]     Leaf        Number of sub-functions\r
+  @param[in]     Arg1        Arg1\r
+  @param[in]     Arg2        Arg2\r
+  @param[in]     Arg3        Arg3\r
+  @param[in]     Arg4        Arg4\r
+  @param[in,out] Results     Returned result of the sub-function\r
+\r
+  @return 0               A successful call\r
+  @return Other           See individual sub-functions\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+TdVmCall (\r
+  IN UINT64    Leaf,\r
+  IN UINT64    Arg1,\r
+  IN UINT64    Arg2,\r
+  IN UINT64    Arg3,\r
+  IN UINT64    Arg4,\r
+  IN OUT VOID  *Results\r
+  );\r
+\r
+/**\r
+  Probe if TD is enabled.\r
+\r
+  @return TRUE    TD is enabled.\r
+  @return FALSE   TD is not enabled.\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+TdIsEnabled (\r
+  VOID\r
+  );\r
+\r
+#endif\r
+\r
 #if defined (MDE_CPU_X64)\r
 //\r
 // The page size for the PVALIDATE instruction\r