Lines Matching refs:spte
143 static inline bool is_mmio_spte(u64 spte) in is_mmio_spte() argument
145 return (spte & SPTE_SPECIAL_MASK) == SPTE_MMIO_MASK; in is_mmio_spte()
153 static inline bool spte_ad_enabled(u64 spte) in spte_ad_enabled() argument
155 MMU_WARN_ON(is_mmio_spte(spte)); in spte_ad_enabled()
156 return (spte & SPTE_SPECIAL_MASK) != SPTE_AD_DISABLED_MASK; in spte_ad_enabled()
159 static inline bool spte_ad_need_write_protect(u64 spte) in spte_ad_need_write_protect() argument
161 MMU_WARN_ON(is_mmio_spte(spte)); in spte_ad_need_write_protect()
162 return (spte & SPTE_SPECIAL_MASK) != SPTE_AD_ENABLED_MASK; in spte_ad_need_write_protect()
165 static inline u64 spte_shadow_accessed_mask(u64 spte) in spte_shadow_accessed_mask() argument
167 MMU_WARN_ON(is_mmio_spte(spte)); in spte_shadow_accessed_mask()
168 return spte_ad_enabled(spte) ? shadow_accessed_mask : 0; in spte_shadow_accessed_mask()
171 static inline u64 spte_shadow_dirty_mask(u64 spte) in spte_shadow_dirty_mask() argument
173 MMU_WARN_ON(is_mmio_spte(spte)); in spte_shadow_dirty_mask()
174 return spte_ad_enabled(spte) ? shadow_dirty_mask : 0; in spte_shadow_dirty_mask()
177 static inline bool is_access_track_spte(u64 spte) in is_access_track_spte() argument
179 return !spte_ad_enabled(spte) && (spte & shadow_acc_track_mask) == 0; in is_access_track_spte()
201 static inline bool is_executable_pte(u64 spte) in is_executable_pte() argument
203 return (spte & (shadow_x_mask | shadow_nx_mask)) == shadow_x_mask; in is_executable_pte()
211 static inline bool is_accessed_spte(u64 spte) in is_accessed_spte() argument
213 u64 accessed_mask = spte_shadow_accessed_mask(spte); in is_accessed_spte()
215 return accessed_mask ? spte & accessed_mask in is_accessed_spte()
216 : !is_access_track_spte(spte); in is_accessed_spte()
219 static inline bool is_dirty_spte(u64 spte) in is_dirty_spte() argument
221 u64 dirty_mask = spte_shadow_dirty_mask(spte); in is_dirty_spte()
223 return dirty_mask ? spte & dirty_mask : spte & PT_WRITABLE_MASK; in is_dirty_spte()
226 static inline bool spte_can_locklessly_be_made_writable(u64 spte) in spte_can_locklessly_be_made_writable() argument
228 return (spte & (SPTE_HOST_WRITEABLE | SPTE_MMU_WRITEABLE)) == in spte_can_locklessly_be_made_writable()
232 static inline u64 get_mmio_spte_generation(u64 spte) in get_mmio_spte_generation() argument
236 gen = (spte & MMIO_SPTE_GEN_LOW_MASK) >> MMIO_SPTE_GEN_LOW_SHIFT; in get_mmio_spte_generation()
237 gen |= (spte & MMIO_SPTE_GEN_HIGH_MASK) >> MMIO_SPTE_GEN_HIGH_SHIFT; in get_mmio_spte_generation()
252 u64 mark_spte_for_access_track(u64 spte);