Lines Matching refs:spte

56  * Bits 0-8 of the MMIO generation are propagated to spte bits 3-11
57 * Bits 9-17 of the MMIO generation are propagated to spte bits 54-62
64 * checking for MMIO spte cache hits.
143 static inline bool is_mmio_spte(u64 spte)
145 return (spte & SPTE_SPECIAL_MASK) == SPTE_MMIO_MASK;
153 static inline bool spte_ad_enabled(u64 spte)
155 MMU_WARN_ON(is_mmio_spte(spte));
156 return (spte & SPTE_SPECIAL_MASK) != SPTE_AD_DISABLED_MASK;
159 static inline bool spte_ad_need_write_protect(u64 spte)
161 MMU_WARN_ON(is_mmio_spte(spte));
162 return (spte & SPTE_SPECIAL_MASK) != SPTE_AD_ENABLED_MASK;
165 static inline u64 spte_shadow_accessed_mask(u64 spte)
167 MMU_WARN_ON(is_mmio_spte(spte));
168 return spte_ad_enabled(spte) ? shadow_accessed_mask : 0;
171 static inline u64 spte_shadow_dirty_mask(u64 spte)
173 MMU_WARN_ON(is_mmio_spte(spte));
174 return spte_ad_enabled(spte) ? shadow_dirty_mask : 0;
177 static inline bool is_access_track_spte(u64 spte)
179 return !spte_ad_enabled(spte) && (spte & shadow_acc_track_mask) == 0;
201 static inline bool is_executable_pte(u64 spte)
203 return (spte & (shadow_x_mask | shadow_nx_mask)) == shadow_x_mask;
211 static inline bool is_accessed_spte(u64 spte)
213 u64 accessed_mask = spte_shadow_accessed_mask(spte);
215 return accessed_mask ? spte & accessed_mask
216 : !is_access_track_spte(spte);
219 static inline bool is_dirty_spte(u64 spte)
221 u64 dirty_mask = spte_shadow_dirty_mask(spte);
223 return dirty_mask ? spte & dirty_mask : spte & PT_WRITABLE_MASK;
226 static inline bool spte_can_locklessly_be_made_writable(u64 spte)
228 return (spte & (SPTE_HOST_WRITEABLE | SPTE_MMU_WRITEABLE)) ==
232 static inline u64 get_mmio_spte_generation(u64 spte)
236 gen = (spte & MMIO_SPTE_GEN_LOW_MASK) >> MMIO_SPTE_GEN_LOW_SHIFT;
237 gen |= (spte & MMIO_SPTE_GEN_HIGH_MASK) >> MMIO_SPTE_GEN_HIGH_SHIFT;
252 u64 mark_spte_for_access_track(u64 spte);