mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-25 15:02:13 +00:00
HV: doc: use doxygen-generated API docs in HLD
This patch adds ioreq.h to the input of doxygen and replaces hard-coded API docs with doxygen-generated ones. Tracked-On: #1595 Signed-off-by: Junjie Mao <junjie.mao@intel.com>
This commit is contained in:
parent
e0fcb70daa
commit
4e540e5494
@ -802,6 +802,7 @@ INPUT = custom-doxygen/mainpage.md \
|
|||||||
../hypervisor/include/arch/x86/guest/vlapic.h \
|
../hypervisor/include/arch/x86/guest/vlapic.h \
|
||||||
../hypervisor/include/arch/x86/guest/vioapic.h \
|
../hypervisor/include/arch/x86/guest/vioapic.h \
|
||||||
../hypervisor/include/arch/x86/guest/vpic.h \
|
../hypervisor/include/arch/x86/guest/vpic.h \
|
||||||
|
../hypervisor/include/arch/x86/ioreq.h \
|
||||||
../hypervisor/include/common/hypercall.h \
|
../hypervisor/include/common/hypercall.h \
|
||||||
../hypervisor/include/public/acrn_common.h \
|
../hypervisor/include/public/acrn_common.h \
|
||||||
../hypervisor/include/public/acrn_hv_defs.h \
|
../hypervisor/include/public/acrn_hv_defs.h \
|
||||||
|
@ -299,66 +299,54 @@ Initialization and Deinitialization
|
|||||||
|
|
||||||
The following structure represents a port I/O handler:
|
The following structure represents a port I/O handler:
|
||||||
|
|
||||||
.. note:: add reference to vm_io_handler_desc definition in ioreq.h
|
.. doxygenstruct:: vm_io_handler_desc
|
||||||
|
:project: Project ACRN
|
||||||
|
|
||||||
The following structure represents a MMIO handler.
|
The following structure represents a MMIO handler.
|
||||||
|
|
||||||
.. note:: add reference to mem_io_node definition in ioreq.h
|
.. doxygenstruct:: mem_io_node
|
||||||
|
:project: Project ACRN
|
||||||
|
|
||||||
The following APIs are provided to initialize, deinitialize or configure
|
The following APIs are provided to initialize, deinitialize or configure
|
||||||
I/O bitmaps and register or unregister I/O handlers:
|
I/O bitmaps and register or unregister I/O handlers:
|
||||||
|
|
||||||
.. code-block:: c
|
.. doxygenfunction:: setup_io_bitmap
|
||||||
|
:project: Project ACRN
|
||||||
|
|
||||||
/* Initialize the I/O bitmap for vm. */
|
.. doxygenfunction:: allow_guest_pio_access
|
||||||
void setup_io_bitmap(struct vm *vm)
|
:project: Project ACRN
|
||||||
|
|
||||||
/* Allow a VM to access a port I/O range.
|
.. doxygenfunction:: free_io_emulation_resource
|
||||||
* This API enables direct access from the given vm to the port I/O space
|
:project: Project ACRN
|
||||||
* starting from address_arg to address_arg + nbytes - 1.
|
|
||||||
*/
|
|
||||||
void allow_guest_io_access(struct vm *vm, uint32_t address_arg, uint32_t nbytes)
|
|
||||||
|
|
||||||
/* Free I/O bitmaps and port I/O handlers of vm. */
|
.. doxygenfunction:: register_io_emulation_handler
|
||||||
void free_io_emulation_resource(struct vm *vm)
|
:project: Project ACRN
|
||||||
|
|
||||||
/* Register a port I/O handler. */
|
.. doxygenfunction:: register_mmio_emulation_handler
|
||||||
void register_io_emulation_handler(struct vm *vm, struct vm_io_range *range,
|
:project: Project ACRN
|
||||||
io_read_fn_t io_read_fn_ptr, io_write_fn_t io_write_fn_ptr)
|
|
||||||
|
|
||||||
/* Register a MMIO handler. */
|
.. doxygenfunction:: unregister_mmio_emulation_handler
|
||||||
int register_mmio_emulation_handler(struct vm *vm, hv_mem_io_handler_t read_write,
|
:project: Project ACRN
|
||||||
uint64_t start, uint64_t end, void *handler_private_data)
|
|
||||||
|
|
||||||
/* Unregister a MMIO handler.*/
|
|
||||||
void unregister_mmio_emulation_handler(struct vm *vm, uint64_t start, uint64_t end)
|
|
||||||
|
|
||||||
.. note:: change these to reference API material from ioreq.h
|
|
||||||
|
|
||||||
I/O Emulation
|
I/O Emulation
|
||||||
=============
|
=============
|
||||||
|
|
||||||
The following APIs are provided for I/O emulation at runtime:
|
The following APIs are provided for I/O emulation at runtime:
|
||||||
|
|
||||||
.. code-block:: c
|
.. doxygenfunction:: emulate_io
|
||||||
|
:project: Project ACRN
|
||||||
|
|
||||||
/* Emulate the given I/O access for vcpu. */
|
.. doxygenfunction:: acrn_insert_request_wait
|
||||||
int32_t emulate_io(struct vcpu *vcpu, struct io_request *io_req)
|
:project: Project ACRN
|
||||||
|
|
||||||
/* Deliver io_req to SOS and suspend vcpu till its completion. */
|
.. doxygenfunction:: emulate_io_post
|
||||||
int32_t acrn_insert_request_wait(struct vcpu *vcpu, struct io_request *io_req)
|
:project: Project ACRN
|
||||||
|
|
||||||
/* General post-work for port I/O emulation. */
|
.. doxygenfunction:: emulate_mmio_post
|
||||||
void emulate_io_post(struct vcpu *vcpu)
|
:project: Project ACRN
|
||||||
|
|
||||||
/* General post-work for MMIO emulation. */
|
.. doxygenfunction:: dm_emulate_mmio_post
|
||||||
void emulate_mmio_post(struct vcpu *vcpu, struct io_request *io_req)
|
:project: Project ACRN
|
||||||
|
|
||||||
/* Post-work of I/O requests for MMIO. */
|
.. doxygenfunction:: pio_instr_vmexit_handler
|
||||||
void dm_emulate_mmio_post(struct vcpu *vcpu)
|
:project: Project ACRN
|
||||||
|
|
||||||
/* The handler of VM exits on I/O instructions. */
|
|
||||||
int32_t pio_instr_vmexit_handler(struct vcpu *vcpu)
|
|
||||||
|
|
||||||
.. note:: change these to reference API material from ioreq.h
|
|
||||||
|
Loading…
Reference in New Issue
Block a user