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:
Junjie Mao 2018-10-30 19:46:36 +08:00 committed by David Kinder
parent e0fcb70daa
commit 4e540e5494
2 changed files with 29 additions and 40 deletions

View File

@ -802,6 +802,7 @@ INPUT = custom-doxygen/mainpage.md \
../hypervisor/include/arch/x86/guest/vlapic.h \
../hypervisor/include/arch/x86/guest/vioapic.h \
../hypervisor/include/arch/x86/guest/vpic.h \
../hypervisor/include/arch/x86/ioreq.h \
../hypervisor/include/common/hypercall.h \
../hypervisor/include/public/acrn_common.h \
../hypervisor/include/public/acrn_hv_defs.h \

View File

@ -299,66 +299,54 @@ Initialization and Deinitialization
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.
.. 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
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. */
void setup_io_bitmap(struct vm *vm)
.. doxygenfunction:: allow_guest_pio_access
:project: Project ACRN
/* Allow a VM to access a port I/O range.
* This API enables direct access from the given vm to the port I/O space
* starting from address_arg to address_arg + nbytes - 1.
*/
void allow_guest_io_access(struct vm *vm, uint32_t address_arg, uint32_t nbytes)
.. doxygenfunction:: free_io_emulation_resource
:project: Project ACRN
/* Free I/O bitmaps and port I/O handlers of vm. */
void free_io_emulation_resource(struct vm *vm)
.. doxygenfunction:: register_io_emulation_handler
:project: Project ACRN
/* Register a port I/O handler. */
void register_io_emulation_handler(struct vm *vm, struct vm_io_range *range,
io_read_fn_t io_read_fn_ptr, io_write_fn_t io_write_fn_ptr)
.. doxygenfunction:: register_mmio_emulation_handler
:project: Project ACRN
/* Register a MMIO handler. */
int register_mmio_emulation_handler(struct vm *vm, hv_mem_io_handler_t read_write,
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
.. doxygenfunction:: unregister_mmio_emulation_handler
:project: Project ACRN
I/O Emulation
=============
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. */
int32_t emulate_io(struct vcpu *vcpu, struct io_request *io_req)
.. doxygenfunction:: acrn_insert_request_wait
:project: Project ACRN
/* Deliver io_req to SOS and suspend vcpu till its completion. */
int32_t acrn_insert_request_wait(struct vcpu *vcpu, struct io_request *io_req)
.. doxygenfunction:: emulate_io_post
:project: Project ACRN
/* General post-work for port I/O emulation. */
void emulate_io_post(struct vcpu *vcpu)
.. doxygenfunction:: emulate_mmio_post
:project: Project ACRN
/* General post-work for MMIO emulation. */
void emulate_mmio_post(struct vcpu *vcpu, struct io_request *io_req)
.. doxygenfunction:: dm_emulate_mmio_post
:project: Project ACRN
/* Post-work of I/O requests for MMIO. */
void dm_emulate_mmio_post(struct vcpu *vcpu)
/* 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
.. doxygenfunction:: pio_instr_vmexit_handler
:project: Project ACRN