Expand description
The TDVMCALL helps invoke services from the host VMM. From the perspective of the host VMM, the TDVMCALL is a trap-like, VM exit into the host VMM, reported via the SEAMRET instruction flow.
By design, after the SEAMRET, the host VMM services the request specified in the parameters passed by the TD during the TDG.VP.VMCALL (that are passed via SEAMRET to the VMM), then resumes the TD via a SEAMCALL [TDH.VP.ENTER] invocation.
Structs§
Enums§
- Direction
- IoSize
- Operand
- TdVmcall
Error - TdVmcall
Num - TDVMCALL Instruction Leaf Numbers Definition.
Functions§
- cpuid
- get_
quote - GetQuote TDG.VP.VMCALL is a doorbell-like interface used to help send a message to the host VMM to queue operations that tend to be long-running operations.
- get_
td_ service - In Service TD scenario, there is a need to define interfaces for the command/response that may have long latency, such as communicating with local device via Secure Protocol and Data Model (SPDM), communicating with remote platform via Transport Layer Security (TLS) Protocol, or communicating with a Quoting Enclave (QE) on attestation or mutual authentication.
- get_
tdvmcall_ info - GetTdVmCallInfo TDG.VP.VMCALL is used to help request the host VMM enumerate which TDG.VP.VMCALLs are supported.
- hlt
- io_read
- io_
write - map_gpa
- MapGPA TDG.VP.VMCALL is used to help request the host VMM to map a GPA range as private or shared-memory mappings. This API may also be used to convert page mappings from private to shared. The GPA range passed in this operation can indicate if the mapping is requested for a shared or private memory via the GPA.Shared bit in the start address.
- perform_
cache_ operation - Used to help perform WBINVD or WBNOINVD operation.
- rdmsr⚠
- Safety
- read_
mmio ⚠ - Safety
- setup_
event_ notify_ interrupt - The guest TD may request that the host VMM specify which interrupt vector to use as an event-notify vector.
- write_
mmio ⚠ - Safety
- wrmsr⚠
- Safety