if (guest_access != PT_ACCESS_OK) {
// Guest Access Error
- if ((shadow_access != PT_ENTRY_NOT_PRESENT) &&
- (guest_access != PT_ENTRY_NOT_PRESENT)) {
+ if ((shadow_access != PT_ACCESS_NOT_PRESENT) &&
+ (guest_access != PT_ACCESS_NOT_PRESENT)) {
// aka (guest permission error)
return 1;
}
- if ((shadow_access == PT_ENTRY_NOT_PRESENT) &&
- (guest_access == PT_ENTRY_NOT_PRESENT)) {
+ if ((shadow_access == PT_ACCESS_NOT_PRESENT) &&
+ (guest_access == PT_ACCESS_NOT_PRESENT)) {
// Page tables completely blank, handle guest first
return 1;
}
// Check the guest page permissions
- guest_pde_access = can_access_pde32(guest_pd, fault_addr, error_code);
+ guest_pde_access = v3_can_access_pde32(guest_pd, fault_addr, error_code);
// Check the shadow page permissions
- shadow_pde_access = can_access_pde32(shadow_pd, fault_addr, error_code);
+ shadow_pde_access = v3_can_access_pde32(shadow_pd, fault_addr, error_code);
/* Was the page fault caused by the Guest's page tables? */
if (is_guest_pf(guest_pde_access, shadow_pde_access) == 1) {
}
- if (shadow_pde_access == PT_ENTRY_NOT_PRESENT)
+ if (shadow_pde_access == PT_ACCESS_NOT_PRESENT)
{
pte32_t * shadow_pt = (pte32_t *)v3_create_new_shadow_pt();
}
}
}
- else if ((shadow_pde_access == PT_WRITE_ERROR) &&
+ else if ((shadow_pde_access == PT_ACCESS_WRITE_ERROR) &&
(guest_pde->large_page == 1) &&
(((pde32_4MB_t *)guest_pde)->dirty == 0))
{
return 0;
}
- else if (shadow_pde_access == PT_USER_ERROR)
+ else if (shadow_pde_access == PT_ACCESS_USER_ERROR)
{
//
// Page Directory Entry marked non-user
addr_t fault_addr, pf_error_t error_code,
pte32_t * shadow_pt, pde32_4MB_t * large_guest_pde)
{
- pt_access_status_t shadow_pte_access = can_access_pte32(shadow_pt, fault_addr, error_code);
+ pt_access_status_t shadow_pte_access = v3_can_access_pte32(shadow_pt, fault_addr, error_code);
pte32_t * shadow_pte = (pte32_t *)&(shadow_pt[PTE32_INDEX(fault_addr)]);
if (shadow_pte_access == PT_ACCESS_OK) {
}
- if (shadow_pte_access == PT_ENTRY_NOT_PRESENT) {
+ if (shadow_pte_access == PT_ACCESS_NOT_PRESENT) {
// Get the guest physical address of the fault
addr_t guest_fault_pa = BASE_TO_PAGE_ADDR_4MB(large_guest_pde->page_base_addr) + PAGE_OFFSET_4MB(fault_addr);
host_region_type_t host_page_type = get_shadow_addr_type(info, guest_fault_pa);
return -1;
}
}
- } else if ((shadow_pte_access == PT_WRITE_ERROR) &&
+ } else if ((shadow_pte_access == PT_ACCESS_WRITE_ERROR) &&
(shadow_pte->vmm_info == PT32_GUEST_PT)) {
struct shadow_page_state * state = &(info->shdw_pg_state);
// Check the guest page permissions
- guest_pte_access = can_access_pte32(guest_pt, fault_addr, error_code);
+ guest_pte_access = v3_can_access_pte32(guest_pt, fault_addr, error_code);
// Check the shadow page permissions
- shadow_pte_access = can_access_pte32(shadow_pt, fault_addr, error_code);
+ shadow_pte_access = v3_can_access_pte32(shadow_pt, fault_addr, error_code);
#ifdef DEBUG_SHADOW_PAGING
PrintDebug("Guest PTE: (access=%d)\n\t", guest_pte_access);
}
- if (shadow_pte_access == PT_ENTRY_NOT_PRESENT) {
+ if (shadow_pte_access == PT_ACCESS_NOT_PRESENT) {
addr_t guest_pa = BASE_TO_PAGE_ADDR((addr_t)(guest_pte->page_base_addr)) + PAGE_OFFSET(fault_addr);
}
}
- } else if ((shadow_pte_access == PT_WRITE_ERROR) &&
+ } else if ((shadow_pte_access == PT_ACCESS_WRITE_ERROR) &&
(guest_pte->dirty == 0)) {
PrintDebug("Shadow PTE Write Error\n");