mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-08-13 13:56:19 +00:00
hv: coding style: refine page related
1) Fix procedure has more than one exit point. 2) Add some brackets to make logical conjunctions more readable. Tracked-On: #861 Signed-off-by: Li, Fei1 <fei1.li@intel.com> Acked-by: Anthony Xu <anthony.xu@intel.com>
This commit is contained in:
parent
7c2198c422
commit
f27aa70fb5
@ -125,7 +125,7 @@ static void modify_or_del_pde(const uint64_t *pdpte, uint64_t vaddr_start, uint6
|
|||||||
panic("invalid op, pde not present");
|
panic("invalid op, pde not present");
|
||||||
}
|
}
|
||||||
if (pde_large(*pde) != 0UL) {
|
if (pde_large(*pde) != 0UL) {
|
||||||
if (vaddr_next > vaddr_end || !mem_aligned_check(vaddr, PDE_SIZE)) {
|
if ((vaddr_next > vaddr_end) || (!mem_aligned_check(vaddr, PDE_SIZE))) {
|
||||||
split_large_page(pde, IA32E_PD, vaddr, mem_ops);
|
split_large_page(pde, IA32E_PD, vaddr, mem_ops);
|
||||||
} else {
|
} else {
|
||||||
local_modify_or_del_pte(pde, prot_set, prot_clr, type);
|
local_modify_or_del_pte(pde, prot_set, prot_clr, type);
|
||||||
@ -167,8 +167,8 @@ static void modify_or_del_pdpte(const uint64_t *pml4e, uint64_t vaddr_start, uin
|
|||||||
panic("invalid op, pdpte not present");
|
panic("invalid op, pdpte not present");
|
||||||
}
|
}
|
||||||
if (pdpte_large(*pdpte) != 0UL) {
|
if (pdpte_large(*pdpte) != 0UL) {
|
||||||
if (vaddr_next > vaddr_end ||
|
if ((vaddr_next > vaddr_end) ||
|
||||||
!mem_aligned_check(vaddr, PDPTE_SIZE)) {
|
(!mem_aligned_check(vaddr, PDPTE_SIZE))) {
|
||||||
split_large_page(pdpte, IA32E_PDPT, vaddr, mem_ops);
|
split_large_page(pdpte, IA32E_PDPT, vaddr, mem_ops);
|
||||||
} else {
|
} else {
|
||||||
local_modify_or_del_pte(pdpte, prot_set, prot_clr, type);
|
local_modify_or_del_pte(pdpte, prot_set, prot_clr, type);
|
||||||
@ -376,34 +376,43 @@ void mmu_add(uint64_t *pml4_page, uint64_t paddr_base, uint64_t vaddr_base, uint
|
|||||||
*/
|
*/
|
||||||
uint64_t *lookup_address(uint64_t *pml4_page, uint64_t addr, uint64_t *pg_size, const struct memory_ops *mem_ops)
|
uint64_t *lookup_address(uint64_t *pml4_page, uint64_t addr, uint64_t *pg_size, const struct memory_ops *mem_ops)
|
||||||
{
|
{
|
||||||
|
uint64_t *pret = NULL;
|
||||||
|
bool present = true;
|
||||||
uint64_t *pml4e, *pdpte, *pde, *pte;
|
uint64_t *pml4e, *pdpte, *pde, *pte;
|
||||||
|
|
||||||
pml4e = pml4e_offset(pml4_page, addr);
|
pml4e = pml4e_offset(pml4_page, addr);
|
||||||
if (mem_ops->pgentry_present(*pml4e) == 0UL) {
|
present = (mem_ops->pgentry_present(*pml4e) != 0UL);
|
||||||
return NULL;
|
|
||||||
|
if (present) {
|
||||||
|
pdpte = pdpte_offset(pml4e, addr);
|
||||||
|
present = (mem_ops->pgentry_present(*pdpte) != 0UL);
|
||||||
|
if (present) {
|
||||||
|
if (pdpte_large(*pdpte) != 0UL) {
|
||||||
|
*pg_size = PDPTE_SIZE;
|
||||||
|
pret = pdpte;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pdpte = pdpte_offset(pml4e, addr);
|
if (present && (pret == NULL)) {
|
||||||
if (mem_ops->pgentry_present(*pdpte) == 0UL) {
|
pde = pde_offset(pdpte, addr);
|
||||||
return NULL;
|
present = (mem_ops->pgentry_present(*pde) != 0UL);
|
||||||
} else if (pdpte_large(*pdpte) != 0UL) {
|
if (present) {
|
||||||
*pg_size = PDPTE_SIZE;
|
if (pde_large(*pde) != 0UL) {
|
||||||
return pdpte;
|
*pg_size = PDE_SIZE;
|
||||||
|
pret = pde;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pde = pde_offset(pdpte, addr);
|
if (present && (pret == NULL)) {
|
||||||
if (mem_ops->pgentry_present(*pde) == 0UL) {
|
pte = pte_offset(pde, addr);
|
||||||
return NULL;
|
present = (mem_ops->pgentry_present(*pte) != 0UL);
|
||||||
} else if (pde_large(*pde) != 0UL) {
|
if (present) {
|
||||||
*pg_size = PDE_SIZE;
|
*pg_size = PTE_SIZE;
|
||||||
return pde;
|
pret = pte;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pte = pte_offset(pde, addr);
|
return pret;
|
||||||
if (mem_ops->pgentry_present(*pte) == 0UL) {
|
|
||||||
return NULL;
|
|
||||||
} else {
|
|
||||||
*pg_size = PTE_SIZE;
|
|
||||||
return pte;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef E820_H
|
||||||
|
#define E820_H
|
||||||
|
|
||||||
struct e820_mem_params {
|
struct e820_mem_params {
|
||||||
uint64_t mem_bottom;
|
uint64_t mem_bottom;
|
||||||
uint64_t mem_top;
|
uint64_t mem_top;
|
||||||
@ -43,3 +46,5 @@ const struct e820_mem_params *get_e820_mem_info(void);
|
|||||||
#define NUM_E820_ENTRIES 5U
|
#define NUM_E820_ENTRIES 5U
|
||||||
extern const struct e820_entry e820_default_entries[NUM_E820_ENTRIES];
|
extern const struct e820_entry e820_default_entries[NUM_E820_ENTRIES];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#define PT_PAGE_NUM(size) (((size) + PDE_SIZE - 1UL) >> PDE_SHIFT)
|
#define PT_PAGE_NUM(size) (((size) + PDE_SIZE - 1UL) >> PDE_SHIFT)
|
||||||
|
|
||||||
/* The size of the guest physical address space, covered by the EPT page table of a VM */
|
/* The size of the guest physical address space, covered by the EPT page table of a VM */
|
||||||
#define EPT_ADDRESS_SPACE(size) ((size != 0UL) ? (size + PLATFORM_LO_MMIO_SIZE) : 0UL)
|
#define EPT_ADDRESS_SPACE(size) (((size) != 0UL) ? ((size) + PLATFORM_LO_MMIO_SIZE) : 0UL)
|
||||||
|
|
||||||
#define TRUSTY_PML4_PAGE_NUM(size) (1UL)
|
#define TRUSTY_PML4_PAGE_NUM(size) (1UL)
|
||||||
#define TRUSTY_PDPT_PAGE_NUM(size) (1UL)
|
#define TRUSTY_PDPT_PAGE_NUM(size) (1UL)
|
||||||
|
Loading…
Reference in New Issue
Block a user