mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-28 08:16:54 +00:00
HV:doc:use doxygen-generated API docs in HLD
The patch adds related head files to the input of doxygen and replaces hard-code API docs with doxygen-generated ones. v1-->v2: Put the 'kerneldoc' back. V2-->V3: Rebase Tracked-On: #1595 Signed-off-by: Xiangyang Wu <xiangyang.wu@linux.intel.com>
This commit is contained in:
parent
7c3c6ea442
commit
f69dd1c6ea
@ -186,53 +186,23 @@ Interfaces Design
|
|||||||
MMU Initialization
|
MMU Initialization
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
.. list-table::
|
.. doxygenfunction:: enable_smep
|
||||||
:widths: 50 50
|
:project: Project ACRN
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
.. doxygenfunction:: enable_paging
|
||||||
- Description
|
:project: Project ACRN
|
||||||
|
|
||||||
* - void enable_smep(void)
|
.. doxygenfunction:: init_paging
|
||||||
- Supervisor-mode execution prevention (SMEP) enable
|
:project: Project ACRN
|
||||||
|
|
||||||
* - void enable_paging(uint64_t pml64_base_addr)
|
|
||||||
- MMU paging enable
|
|
||||||
|
|
||||||
* - void init_paging(void)
|
|
||||||
- MMU page tables initialization
|
|
||||||
|
|
||||||
* - uint64_t get_paging_pml4(void)
|
|
||||||
- Page map level 4 (PML4) table start address getting
|
|
||||||
|
|
||||||
Page Allocation
|
|
||||||
---------------
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
:widths: 50 50
|
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
|
||||||
- Description
|
|
||||||
|
|
||||||
* - void \* alloc_paging_struct(void)
|
|
||||||
- Allocate one page from memory page pool
|
|
||||||
|
|
||||||
Address Space Translation
|
Address Space Translation
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
.. list-table::
|
.. doxygenfunction:: hpa2hva
|
||||||
:widths: 50 50
|
:project: Project ACRN
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
.. doxygenfunction:: hva2hpa
|
||||||
- Description
|
:project: Project ACRN
|
||||||
|
|
||||||
* - HPA2HVA(x)
|
|
||||||
- Translate host-physical address to host-virtual address
|
|
||||||
|
|
||||||
* - HVA2HPA(x)
|
|
||||||
- Translate host-virtual address to host-physical address
|
|
||||||
|
|
||||||
|
|
||||||
Hypervisor Memory Virtualization
|
Hypervisor Memory Virtualization
|
||||||
@ -448,147 +418,82 @@ Here is a list of major memory related APIs in HV:
|
|||||||
EPT/VPID Capability Checking
|
EPT/VPID Capability Checking
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
.. list-table::
|
.. doxygenfunction:: check_vmx_mmu_cap
|
||||||
:widths: 50 50
|
:project: Project ACRN
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
|
||||||
- Description
|
|
||||||
|
|
||||||
* - int check_vmx_mmu_cap(void)
|
|
||||||
- EPT and VPID capability checking
|
|
||||||
|
|
||||||
|
|
||||||
1GB Hugepage Supporting Checking
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
:widths: 50 50
|
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
|
||||||
- Description
|
|
||||||
|
|
||||||
* - bool check_mmu_1gb_support(enum _page_table_type page_table_type)
|
|
||||||
- 1GB page supporting capability checking
|
|
||||||
|
|
||||||
Data Transferring between hypervisor and VM
|
Data Transferring between hypervisor and VM
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
.. list-table::
|
.. doxygenfunction:: copy_from_gpa
|
||||||
:widths: 50 50
|
:project: Project ACRN
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
.. doxygenfunction:: copy_to_gpa
|
||||||
- Description
|
:project: Project ACRN
|
||||||
|
|
||||||
* - int copy_from_gpa(const struct vm \*vm, void \*h_ptr, uint64_t gpa, uint32_t size)
|
.. doxygenfunction:: copy_from_gva
|
||||||
- Copy data from VM GPA space to HV address space
|
:project: Project ACRN
|
||||||
|
|
||||||
* - int copy_to_gpa(const struct vm \*vm, void \*h_ptr, uint64_t gpa, uint32_t size)
|
.. doxygenfunction:: copy_to_gva
|
||||||
- Copy data from HV address space to VM GPA space
|
:project: Project ACRN
|
||||||
|
|
||||||
* - int copy_from_gva(struct vcpu \*vcpu, void \*h_ptr, uint64_t gva,
|
|
||||||
uint32_t size, uint32_t \*err_code, uint64_t \*fault_addr)
|
|
||||||
- Copy data from VM GVA space to HV address space
|
|
||||||
|
|
||||||
* - int copy_to_gva(struct vcpu \*vcpu, void \*h_ptr, uint64_t gva,
|
|
||||||
uint32_t size, uint32_t \*err_code, uint64_t \*fault_addr)
|
|
||||||
- Copy data from HV address space to VM GVA space
|
|
||||||
|
|
||||||
Address Space Translation
|
Address Space Translation
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
.. list-table::
|
.. doxygenfunction:: gpa2hpa
|
||||||
:widths: 50 50
|
:project: Project ACRN
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
.. doxygenfunction:: vm0_hpa2gpa
|
||||||
- Description
|
:project: Project ACRN
|
||||||
|
|
||||||
* - uint64_t gpa2hpa(const struct vm \*vm, uint64_t gpa)
|
.. doxygenfunction:: check_continuous_hpa
|
||||||
- Translating from guest-physical address to host-physical address
|
:project: Project ACRN
|
||||||
|
|
||||||
* - uint64_t hpa2gpa(const struct vm \*vm, uint64_t hpa)
|
|
||||||
- Translating from host-physical address to guest-physical address
|
|
||||||
|
|
||||||
* - bool check_continuous_hpa(struct vm \*vm, uint64_t gpa_arg, uint64_t size_arg)
|
|
||||||
- Host-physical address continuous checking
|
|
||||||
|
|
||||||
EPT
|
EPT
|
||||||
---
|
---
|
||||||
|
|
||||||
.. list-table::
|
.. doxygenfunction:: ept_mr_add
|
||||||
:widths: 50 50
|
:project: Project ACRN
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
.. doxygenfunction:: ept_mr_del
|
||||||
- Description
|
:project: Project ACRN
|
||||||
|
|
||||||
* - int ept_mr_add(const struct vm \*vm, uint64_t hpa_arg, uint64_t gpa_arg,
|
.. doxygenfunction:: ept_mr_modify
|
||||||
uint64_t size, uint32_t prot_arg)
|
:project: Project ACRN
|
||||||
- Guest-physical memory region mapping
|
|
||||||
|
|
||||||
* - int ept_mr_del(const struct vm \*vm, uint64_t \*pml4_page, uint64_t gpa,
|
.. doxygenfunction:: destroy_ept
|
||||||
uint64_t size)
|
:project: Project ACRN
|
||||||
- Guest-physical memory region unmapping
|
|
||||||
|
|
||||||
* - int ept_mr_modify(const struct vm \*vm, uint64_t \*pml4_page, uint64_t gpa,
|
.. doxygenfunction:: invept
|
||||||
uint64_t size, uint64_t prot_set, uint64_t prot_clr)
|
:project: Project ACRN
|
||||||
- Guest-physical memory page access right or memory type updating
|
|
||||||
|
|
||||||
* - void destroy_ept(struct vm \*vm)
|
.. doxygenfunction:: ept_violation_vmexit_handler
|
||||||
- EPT page tables destroy
|
:project: Project ACRN
|
||||||
|
|
||||||
* - void free_ept_mem(void \*pml4_addr)
|
.. doxygenfunction:: ept_misconfig_vmexit_handler
|
||||||
- EPT page tables free
|
:project: Project ACRN
|
||||||
|
|
||||||
* - void invept(struct vcpu \*vcpu)
|
|
||||||
- Guest-physical mappings and combined mappings invalidation
|
|
||||||
|
|
||||||
* - int ept_violation_vmexit_handler(struct vcpu \*vcpu)
|
|
||||||
- EPT violation handling
|
|
||||||
|
|
||||||
* - int ept_misconfig_vmexit_handler(__unused struct vcpu \*vcpu)
|
|
||||||
- EPT misconfiguration handling
|
|
||||||
|
|
||||||
Virtual MTRR
|
Virtual MTRR
|
||||||
------------
|
------------
|
||||||
|
|
||||||
.. list-table::
|
.. doxygenfunction:: init_mtrr
|
||||||
:widths: 50 50
|
:project: Project ACRN
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
.. doxygenfunction:: mtrr_wrmsr
|
||||||
- Description
|
:project: Project ACRN
|
||||||
|
|
||||||
* - void init_mtrr(struct vcpu \*vcpu)
|
.. doxygenfunction:: mtrr_rdmsr
|
||||||
- Virtual MTRR initialization
|
:project: Project ACRN
|
||||||
|
|
||||||
* - void mtrr_wrmsr(struct vcpu \*vcpu, uint32_t msr, uint64_t value)
|
|
||||||
- Virtual MTRR MSR write
|
|
||||||
|
|
||||||
* - uint64_t mtrr_rdmsr(struct vcpu \*vcpu, uint32_t msr)
|
|
||||||
- Virtual MTRR MSR read
|
|
||||||
|
|
||||||
VPID
|
VPID
|
||||||
----
|
----
|
||||||
|
.. doxygenfunction:: allocate_vpid
|
||||||
|
:project: Project ACRN
|
||||||
|
|
||||||
.. list-table::
|
.. doxygenfunction:: flush_vpid_single
|
||||||
:widths: 50 50
|
:project: Project ACRN
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - APIs
|
.. doxygenfunction:: flush_vpid_global
|
||||||
- Description
|
:project: Project ACRN
|
||||||
|
|
||||||
* - uint16_t allocate_vpid(void)
|
|
||||||
- VPID allocation
|
|
||||||
|
|
||||||
* - void flush_vpid_single(uint16_t vpid)
|
|
||||||
- Specified VPID flush
|
|
||||||
|
|
||||||
* - void flush_vpid_global(void)
|
|
||||||
- All VPID flush
|
|
||||||
|
|
||||||
Service OS Memory Management
|
Service OS Memory Management
|
||||||
****************************
|
****************************
|
||||||
|
Loading…
Reference in New Issue
Block a user