doc: Editorial changes to hypercall hld
@@ -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.
-- 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.
- The first parameter in register ``RDI`` and the second in register
``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
ID of that VM.
- The register ``RAX`` contains the return value of the hypercall after a guest
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.
-- In case a hypercall parameter is defined as a pointer to a data structure,
- fields in that structure can be either input, output or inout.
+- If a hypercall parameter is defined as a pointer to a data structure,
+ 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)
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
upcall process at :ref:`ipi-management`.
+.. _hv-hypercall-ref:
+
Hypercall APIs Reference
************************
