Lines Matching refs:gpte

109 static gfn_t gpte_to_gfn_lvl(pt_element_t gpte, int lvl)  in gpte_to_gfn_lvl()  argument
111 return (gpte & PT_LVL_ADDR_MASK(lvl)) >> PAGE_SHIFT; in gpte_to_gfn_lvl()
114 static inline void FNAME(protect_clean_gpte)(unsigned *access, unsigned gpte) in FNAME()
126 mask |= (gpte >> (PT_GUEST_DIRTY_SHIFT - PT_WRITABLE_SHIFT)) & in FNAME()
165 u64 gpte) in FNAME()
167 if (is_rsvd_bits_set(&vcpu->arch.mmu, gpte, PT_PAGE_TABLE_LEVEL)) in FNAME()
170 if (!FNAME(is_present_gpte)(gpte)) in FNAME()
174 if (PT_GUEST_ACCESSED_MASK && !(gpte & PT_GUEST_ACCESSED_MASK)) in FNAME()
184 static inline unsigned FNAME(gpte_access)(struct kvm_vcpu *vcpu, u64 gpte) in FNAME()
188 access = ((gpte & VMX_EPT_WRITABLE_MASK) ? ACC_WRITE_MASK : 0) | in FNAME()
189 ((gpte & VMX_EPT_EXECUTABLE_MASK) ? ACC_EXEC_MASK : 0) | in FNAME()
192 access = (gpte & (PT_WRITABLE_MASK | PT_USER_MASK)) | ACC_EXEC_MASK; in FNAME()
193 access &= ~(gpte >> PT64_NX_SHIFT); in FNAME()
455 u64 *spte, pt_element_t gpte, bool no_dirty_log) in FNAME()
461 if (FNAME(prefetch_invalid_gpte)(vcpu, sp, spte, gpte)) in FNAME()
464 pgprintk("%s: gpte %llx spte %p\n", __func__, (u64)gpte, spte); in FNAME()
466 gfn = gpte_to_gfn(gpte); in FNAME()
467 pte_access = sp->role.access & FNAME(gpte_access)(vcpu, gpte); in FNAME()
468 FNAME(protect_clean_gpte)(&pte_access, gpte); in FNAME()
487 pt_element_t gpte = *(const pt_element_t *)pte; in FNAME() local
489 FNAME(prefetch_gpte)(vcpu, sp, spte, gpte, false); in FNAME()
846 pt_element_t gpte; in FNAME() local
861 if (kvm_vcpu_read_guest_atomic(vcpu, pte_gpa, &gpte, in FNAME()
865 FNAME(update_pte)(vcpu, sp, sptep, &gpte); in FNAME()
939 pt_element_t gpte; in FNAME() local
948 if (kvm_vcpu_read_guest_atomic(vcpu, pte_gpa, &gpte, in FNAME()
952 if (FNAME(prefetch_invalid_gpte)(vcpu, sp, &sp->spt[i], gpte)) { in FNAME()
957 gfn = gpte_to_gfn(gpte); in FNAME()
959 pte_access &= FNAME(gpte_access)(vcpu, gpte); in FNAME()
960 FNAME(protect_clean_gpte)(&pte_access, gpte); in FNAME()