doc: Editorial changes to hypercall hld

Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
This commit is contained in:
Reyes, Amy 2022-09-21 08:31:53 -07:00 committed by Amy Reyes
parent 245951f8ea
commit dc6fccfa0d

View File

@ -13,26 +13,26 @@ The application binary interface (ABI) of ACRN hypercalls is defined as follows.
- A guest VM executes the ``vmcall`` instruction to trigger a hypercall. - A guest VM executes the ``vmcall`` instruction to trigger a hypercall.
- Input parameters of a hypercall includes: - Input parameters of a hypercall include:
- An hypercall ID in register ``R8``, which specifies the kind of service - A hypercall ID in register ``R8``, which specifies the kind of service
requested by the guest VM. requested by the guest VM.
- The first parameter in register ``RDI`` and the second in register - The first parameter in register ``RDI`` and the second in register
``RSI``. The semantics of those two parameters vary among different kinds of ``RSI``. The semantics of those two parameters vary among different kinds of
hypercalls and are defined in the hypercall APIs reference. For hypercalls hypercalls and are defined in the :ref:`hv-hypercall-ref`. For hypercalls
requesting operations on a specific VM, the first parameter is typically the requesting operations on a specific VM, the first parameter is typically the
ID of that VM. ID of that VM.
- The register ``RAX`` contains the return value of the hypercall after a guest - The register ``RAX`` contains the return value of the hypercall after a guest
VM executes the ``vmcall`` instruction, unless the ``vmcall`` instruction VM executes the ``vmcall`` instruction, unless the ``vmcall`` instruction
triggers an exception. Other general purpose registers are not modified by a triggers an exception. Other general-purpose registers are not modified by a
hypercall. hypercall.
- In case a hypercall parameter is defined as a pointer to a data structure, - If a hypercall parameter is defined as a pointer to a data structure,
fields in that structure can be either input, output or inout. fields in that structure can be either input, output, or inout.
There are some restrictions for hypercall and upcall: There are some restrictions for hypercalls and upcalls:
#. Only specific VMs (the Service VM and the VM with Trusty enabled) #. Only specific VMs (the Service VM and the VM with Trusty enabled)
can invoke hypercalls. A VM that cannot invoke hypercalls gets ``#UD`` can invoke hypercalls. A VM that cannot invoke hypercalls gets ``#UD``
@ -58,6 +58,8 @@ Service VM registers the IRQ handler for vector (0xF3) and notifies the I/O
emulation module in the Service VM once the IRQ is triggered. View the detailed emulation module in the Service VM once the IRQ is triggered. View the detailed
upcall process at :ref:`ipi-management`. upcall process at :ref:`ipi-management`.
.. _hv-hypercall-ref:
Hypercall APIs Reference Hypercall APIs Reference
************************ ************************