Lines Matching refs:spte

184 static inline bool is_removed_spte(u64 spte)  in is_removed_spte()  argument
186 return spte == REMOVED_SPTE; in is_removed_spte()
205 static inline bool is_mmio_spte(u64 spte) in is_mmio_spte() argument
207 return (spte & shadow_mmio_mask) == shadow_mmio_value && in is_mmio_spte()
221 static inline bool spte_ad_enabled(u64 spte) in spte_ad_enabled() argument
223 MMU_WARN_ON(!is_shadow_present_pte(spte)); in spte_ad_enabled()
224 return (spte & SPTE_TDP_AD_MASK) != SPTE_TDP_AD_DISABLED_MASK; in spte_ad_enabled()
227 static inline bool spte_ad_need_write_protect(u64 spte) in spte_ad_need_write_protect() argument
229 MMU_WARN_ON(!is_shadow_present_pte(spte)); in spte_ad_need_write_protect()
235 return (spte & SPTE_TDP_AD_MASK) != SPTE_TDP_AD_ENABLED_MASK; in spte_ad_need_write_protect()
238 static inline u64 spte_shadow_accessed_mask(u64 spte) in spte_shadow_accessed_mask() argument
240 MMU_WARN_ON(!is_shadow_present_pte(spte)); in spte_shadow_accessed_mask()
241 return spte_ad_enabled(spte) ? shadow_accessed_mask : 0; in spte_shadow_accessed_mask()
244 static inline u64 spte_shadow_dirty_mask(u64 spte) in spte_shadow_dirty_mask() argument
246 MMU_WARN_ON(!is_shadow_present_pte(spte)); in spte_shadow_dirty_mask()
247 return spte_ad_enabled(spte) ? shadow_dirty_mask : 0; in spte_shadow_dirty_mask()
250 static inline bool is_access_track_spte(u64 spte) in is_access_track_spte() argument
252 return !spte_ad_enabled(spte) && (spte & shadow_acc_track_mask) == 0; in is_access_track_spte()
265 static inline bool is_executable_pte(u64 spte) in is_executable_pte() argument
267 return (spte & (shadow_x_mask | shadow_nx_mask)) == shadow_x_mask; in is_executable_pte()
275 static inline bool is_accessed_spte(u64 spte) in is_accessed_spte() argument
277 u64 accessed_mask = spte_shadow_accessed_mask(spte); in is_accessed_spte()
279 return accessed_mask ? spte & accessed_mask in is_accessed_spte()
280 : !is_access_track_spte(spte); in is_accessed_spte()
283 static inline bool is_dirty_spte(u64 spte) in is_dirty_spte() argument
285 u64 dirty_mask = spte_shadow_dirty_mask(spte); in is_dirty_spte()
287 return dirty_mask ? spte & dirty_mask : spte & PT_WRITABLE_MASK; in is_dirty_spte()
311 u64 spte, int level) in is_rsvd_spte() argument
313 return __is_bad_mt_xwr(rsvd_check, spte) || in is_rsvd_spte()
314 __is_rsvd_bits_set(rsvd_check, spte, level); in is_rsvd_spte()
317 static inline bool spte_can_locklessly_be_made_writable(u64 spte) in spte_can_locklessly_be_made_writable() argument
319 return (spte & shadow_host_writable_mask) && in spte_can_locklessly_be_made_writable()
320 (spte & shadow_mmu_writable_mask); in spte_can_locklessly_be_made_writable()
323 static inline u64 get_mmio_spte_generation(u64 spte) in get_mmio_spte_generation() argument
327 gen = (spte & MMIO_SPTE_GEN_LOW_MASK) >> MMIO_SPTE_GEN_LOW_SHIFT; in get_mmio_spte_generation()
328 gen |= (spte & MMIO_SPTE_GEN_HIGH_MASK) >> MMIO_SPTE_GEN_HIGH_SHIFT; in get_mmio_spte_generation()
339 u64 mark_spte_for_access_track(u64 spte);