/xen/xen/arch/x86/mm/hap/ |
A D | guest_walk.c | 43 struct vcpu *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec) in hap_gva_to_gfn() 46 return hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)(v, p2m, cr3, gva, pfec, NULL); in hap_gva_to_gfn() 51 paddr_t ga, uint32_t *pfec, unsigned int *page_order) in hap_p2m_ga_to_gfn() 68 *pfec = PFEC_page_paged; in hap_p2m_ga_to_gfn() 76 *pfec = PFEC_page_shared; in hap_p2m_ga_to_gfn() 83 *pfec &= ~PFEC_page_present; in hap_p2m_ga_to_gfn() 94 walk_ok = guest_walk_tables(v, p2m, ga, &gw, *pfec, in hap_p2m_ga_to_gfn() 112 *pfec = PFEC_page_paged; in hap_p2m_ga_to_gfn() 118 *pfec = PFEC_page_shared; in hap_p2m_ga_to_gfn() 128 *pfec = gw.pfec; in hap_p2m_ga_to_gfn() [all …]
|
A D | private.h | 30 uint32_t *pfec); 34 uint32_t *pfec); 38 uint32_t *pfec); 42 paddr_t ga, uint32_t *pfec, unsigned int *page_order); 45 paddr_t ga, uint32_t *pfec, unsigned int *page_order); 48 paddr_t ga, uint32_t *pfec, unsigned int *page_order);
|
A D | hap.c | 826 struct vcpu *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec) in hap_gva_to_gfn_real_mode() argument 833 paddr_t ga, uint32_t *pfec, unsigned int *page_order) in hap_p2m_ga_to_gfn_real_mode() argument
|
/xen/xen/arch/x86/hvm/ |
A D | emulate.c | 751 uint32_t pfec, in hvmemul_linear_to_phys() argument 1264 pfec |= PFEC_implicit; in __hvmemul_read() 1266 pfec |= PFEC_user_mode; in __hvmemul_read() 1358 pfec |= PFEC_implicit; in hvmemul_write() 1360 pfec |= PFEC_user_mode; in hvmemul_write() 1412 pfec |= PFEC_implicit; in hvmemul_rmw() 1414 pfec |= PFEC_user_mode; in hvmemul_rmw() 1469 pfec |= PFEC_implicit; in hvmemul_blk() 1471 pfec |= PFEC_user_mode; in hvmemul_blk() 1612 pfec |= PFEC_implicit; in hvmemul_cmpxchg() [all …]
|
A D | monitor.c | 125 uint32_t pfec = PFEC_page_present | PFEC_insn_fetch; in gfn_of_rip() local 128 pfec |= PFEC_user_mode; in gfn_of_rip() 132 return paging_gva_to_gfn(curr, sreg.base + rip, &pfec); in gfn_of_rip() 232 bool hvm_monitor_check_p2m(unsigned long gla, gfn_t gfn, uint32_t pfec, in hvm_monitor_check_p2m() argument 258 if ( pfec & PFEC_write_access ) in hvm_monitor_check_p2m() 264 if ( pfec & PFEC_insn_fetch ) in hvm_monitor_check_p2m() 270 if ( pfec & PFEC_write_access ) in hvm_monitor_check_p2m() 272 if ( pfec & PFEC_insn_fetch ) in hvm_monitor_check_p2m()
|
A D | hvm.c | 2749 uint32_t pfec; in hvm_map_entry() local 2764 pfec = PFEC_page_present; in hvm_map_entry() 2765 gfn = paging_gva_to_gfn(current, va, &pfec); in hvm_map_entry() 2766 if ( pfec & (PFEC_page_paged | PFEC_page_shared) ) in hvm_map_entry() 3188 struct vcpu *v, unsigned long addr, bool linear, uint32_t pfec, in hvm_translate_get_page() argument 3198 gfn = _gfn(paging_gva_to_gfn(v, addr, &pfec)); in hvm_translate_get_page() 3202 if ( pfec & PFEC_page_paged ) in hvm_translate_get_page() 3205 if ( pfec & PFEC_page_shared ) in hvm_translate_get_page() 3211 pfinfo->ec = pfec & ~PFEC_implicit; in hvm_translate_get_page() 3270 uint32_t pfec, pagefault_info_t *pfinfo) in __hvm_copy() argument [all …]
|
/xen/xen/arch/x86/mm/ |
A D | guest_walk.c | 125 gw->pfec = walk & (PFEC_user_mode | PFEC_write_access); in guest_walk_tables() 133 gw->pfec |= (walk & PFEC_insn_fetch); in guest_walk_tables() 155 gw->pfec |= PFEC_reserved_bit | PFEC_page_present; in guest_walk_tables() 171 gw->pfec |= rc & PFEC_synth_mask; in guest_walk_tables() 190 gw->pfec |= PFEC_reserved_bit | PFEC_page_present; in guest_walk_tables() 248 gw->pfec |= PFEC_reserved_bit | PFEC_page_present; in guest_walk_tables() 262 gw->pfec |= rc & PFEC_synth_mask; in guest_walk_tables() 301 gw->pfec |= PFEC_reserved_bit | PFEC_page_present; in guest_walk_tables() 361 gw->pfec |= rc & PFEC_synth_mask; in guest_walk_tables() 391 gw->pfec |= PFEC_page_present; in guest_walk_tables() [all …]
|
A D | p2m.c | 1770 uint32_t *pfec) in paging_gva_to_gfn() argument 1787 l2_gfn = mode->gva_to_gfn(v, p2m, va, pfec); in paging_gva_to_gfn() 1795 !!(*pfec & PFEC_write_access), in paging_gva_to_gfn() 1796 !!(*pfec & PFEC_insn_fetch)); in paging_gva_to_gfn() 1811 return hostmode->gva_to_gfn(v, hostp2m, va, pfec); in paging_gva_to_gfn() 1820 p2m_query_t q, uint32_t *pfec) in map_domain_gfn() argument 1827 *pfec = PFEC_reserved_bit | PFEC_page_present; in map_domain_gfn() 1839 *pfec = PFEC_page_paged; in map_domain_gfn() 1846 *pfec = PFEC_page_shared; in map_domain_gfn() 1851 *pfec = 0; in map_domain_gfn() [all …]
|
/xen/xen/include/asm-x86/ |
A D | guest_pt.h | 364 uint32_t pfec; /* Accumulated PFEC_* error code from walk. */ member 432 unsigned long va, walk_t *gw, uint32_t pfec, 458 gprintk(XENLOG_INFO, " pfec=%02x[%c%c%c%c%c%c]\n", gw->pfec, in print_gw() 459 gw->pfec & PFEC_prot_key ? 'K' : '-', in print_gw() 460 gw->pfec & PFEC_insn_fetch ? 'I' : 'd', in print_gw() 461 gw->pfec & PFEC_reserved_bit ? 'R' : '-', in print_gw() 462 gw->pfec & PFEC_user_mode ? 'U' : 's', in print_gw() 463 gw->pfec & PFEC_write_access ? 'W' : 'r', in print_gw() 464 gw->pfec & PFEC_page_present ? 'P' : '-' in print_gw()
|
A D | paging.h | 131 uint32_t *pfec); 135 paddr_t ga, uint32_t *pfec, 273 uint32_t *pfec); 285 uint32_t *pfec, in paging_ga_to_gfn_cr3() argument 289 return paging_get_hostmode(v)->p2m_ga_to_gfn(v, p2m, cr3, ga, pfec, in paging_ga_to_gfn_cr3()
|
A D | p2m.h | 759 p2m_query_t q, uint32_t *pfec);
|
/xen/xen/include/asm-x86/hvm/ |
A D | support.h | 99 unsigned long addr, void *buf, unsigned int size, uint32_t pfec, 102 void *buf, unsigned long addr, unsigned int size, uint32_t pfec, 112 struct vcpu *v, unsigned long addr, bool linear, uint32_t pfec,
|
A D | monitor.h | 52 bool hvm_monitor_check_p2m(unsigned long gla, gfn_t gfn, uint32_t pfec,
|
/xen/xen/arch/x86/mm/shadow/ |
A D | private.h | 756 uint32_t pfec; /* PF error code of the lookup that filled this member 776 unsigned long frame, uint32_t pfec) in vtlb_insert() argument 779 { .page_number = page, .frame_number = frame, .pfec = pfec }; in vtlb_insert() 787 unsigned long va, uint32_t pfec) in vtlb_lookup() argument 794 if ( v->arch.paging.vtlb[i].pfec != 0 in vtlb_lookup() 797 && (v->arch.paging.vtlb[i].pfec & pfec) == pfec ) in vtlb_lookup()
|
A D | none.c | 47 unsigned long va, uint32_t *pfec) in _gva_to_gfn() argument
|
A D | hvm.c | 405 uint32_t pfec = PFEC_page_present | PFEC_write_access; in emulate_gva_to_mfn() local 408 gfn = paging_get_hostmode(v)->gva_to_gfn(v, NULL, vaddr, &pfec); in emulate_gva_to_mfn() 411 x86_emul_pagefault(pfec, vaddr, &sh_ctxt->ctxt); in emulate_gva_to_mfn()
|
A D | multi.c | 182 uint32_t pfec) in sh_walk_guest_tables() argument 189 return guest_walk_tables(v, p2m_get_hostp2m(v->domain), va, gw, pfec, in sh_walk_guest_tables() 197 bool ok = guest_walk_tables(v, p2m_get_hostp2m(d), va, gw, pfec, in sh_walk_guest_tables() 3011 if ( gw.pfec & PFEC_page_present ) in sh_page_fault() 3020 regs->error_code = gw.pfec & PFEC_arch_mask; in sh_page_fault() 3656 unsigned long va, uint32_t *pfec) in sh_gva_to_gfn() argument 3666 unsigned long vtlb_gfn = vtlb_lookup(v, va, *pfec); in sh_gva_to_gfn() 3671 if ( !(walk_ok = sh_walk_guest_tables(v, va, &gw, *pfec)) ) in sh_gva_to_gfn() 3673 *pfec = gw.pfec; in sh_gva_to_gfn() 3680 vtlb_insert(v, va >> PAGE_SHIFT, gfn_x(gfn), *pfec); in sh_gva_to_gfn()
|
/xen/xen/arch/x86/ |
A D | debug.c | 33 uint32_t pfec = PFEC_page_present; in dbg_hvm_va2mfn() local 36 *gfn = _gfn(paging_gva_to_gfn(dp->vcpu[0], vaddr, &pfec)); in dbg_hvm_va2mfn()
|
/xen/xen/arch/x86/hvm/svm/ |
A D | nestedsvm.c | 1199 uint32_t pfec; in nsvm_hap_walk_L1_p2m() local 1204 pfec = PFEC_user_mode | PFEC_page_present; in nsvm_hap_walk_L1_p2m() 1206 pfec |= PFEC_write_access; in nsvm_hap_walk_L1_p2m() 1208 pfec |= PFEC_insn_fetch; in nsvm_hap_walk_L1_p2m() 1211 gfn = paging_ga_to_gfn_cr3(v, nested_cr3, L2_gpa, &pfec, page_order); in nsvm_hap_walk_L1_p2m()
|
A D | svm.c | 1669 struct cpu_user_regs *regs, uint64_t pfec, paddr_t gpa) in svm_do_nested_pgfault() argument 1684 .read_access = !(pfec & PFEC_insn_fetch), in svm_do_nested_pgfault() 1685 .write_access = !!(pfec & PFEC_write_access), in svm_do_nested_pgfault() 1686 .insn_fetch = !!(pfec & PFEC_insn_fetch), in svm_do_nested_pgfault() 1687 .present = !!(pfec & PFEC_page_present), in svm_do_nested_pgfault() 1691 if ( pfec & NPT_PFEC_with_gla ) in svm_do_nested_pgfault() 1693 else if ( pfec & NPT_PFEC_in_gpt ) in svm_do_nested_pgfault() 1725 nestedsvm_vmexit_defer(v, VMEXIT_NPF, pfec, gpa); in svm_do_nested_pgfault()
|