mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-05 15:45:05 +00:00
hv: mmu: make page table operation no fault
Page table operation would not fault except: 1. the hypervisor it out of memory to allcate a page for page table operation 2. there is a bug with page table operation in hypervisor or devicemodle While we assue that these would not happened in our platform when release, so there is no need to check whether there is a fault with page table operation. However, for debug version, we would panic the hypervisor if we can't meet the conditions really. Tracked-On: #1124 Signed-off-by: Li, Fei1 <fei1.li@intel.com>
This commit is contained in:
@@ -77,10 +77,10 @@ void free_paging_struct(void *ptr);
|
||||
void enable_paging(uint64_t pml4_base_addr);
|
||||
void enable_smep(void);
|
||||
void init_paging(void);
|
||||
int mmu_add(uint64_t *pml4_page, uint64_t paddr_base,
|
||||
void mmu_add(uint64_t *pml4_page, uint64_t paddr_base,
|
||||
uint64_t vaddr_base, uint64_t size,
|
||||
uint64_t prot, enum _page_table_type ptt);
|
||||
int mmu_modify_or_del(uint64_t *pml4_page,
|
||||
void mmu_modify_or_del(uint64_t *pml4_page,
|
||||
uint64_t vaddr_base, uint64_t size,
|
||||
uint64_t prot_set, uint64_t prot_clr,
|
||||
enum _page_table_type ptt, uint32_t type);
|
||||
@@ -130,11 +130,11 @@ void destroy_ept(struct vm *vm);
|
||||
uint64_t gpa2hpa(struct vm *vm, uint64_t gpa);
|
||||
uint64_t local_gpa2hpa(struct vm *vm, uint64_t gpa, uint32_t *size);
|
||||
uint64_t hpa2gpa(struct vm *vm, uint64_t hpa);
|
||||
int ept_mr_add(struct vm *vm, uint64_t *pml4_page, uint64_t hpa,
|
||||
void ept_mr_add(struct vm *vm, uint64_t *pml4_page, uint64_t hpa,
|
||||
uint64_t gpa, uint64_t size, uint64_t prot_orig);
|
||||
int ept_mr_modify(struct vm *vm, uint64_t *pml4_page, uint64_t gpa,
|
||||
void ept_mr_modify(struct vm *vm, uint64_t *pml4_page, uint64_t gpa,
|
||||
uint64_t size, uint64_t prot_set, uint64_t prot_clr);
|
||||
int ept_mr_del(struct vm *vm, uint64_t *pml4_page, uint64_t gpa,
|
||||
void ept_mr_del(struct vm *vm, uint64_t *pml4_page, uint64_t gpa,
|
||||
uint64_t size);
|
||||
void free_ept_mem(uint64_t *pml4_page);
|
||||
int ept_violation_vmexit_handler(struct vcpu *vcpu);
|
||||
|
||||
Reference in New Issue
Block a user