Lines Matching defs:vtd

23 static inline void vtd_cmd_translation_toggle(struct vtd *vtd, bool toggle)
27 vtd_GCMD_te_wrf(&vtd->vtd_dev, toggle);
29 pending = vtd_GSTS_tes_rdf(&vtd->vtd_dev);
31 assert(vtd_GSTS_tes_rdf(&vtd->vtd_dev) == toggle);
34 static inline void vtd_cmd_translation_disable(struct vtd *vtd)
37 vtd_cmd_translation_toggle(vtd, 0);
40 static inline void vtd_cmd_translation_enable(struct vtd *vtd)
43 vtd_cmd_translation_toggle(vtd, 1);
48 static inline void vtd_cmd_set_root_table_ptr(struct vtd *vtd, genpaddr_t addr)
52 assert(!vtd_GSTS_tes_rdf(&vtd->vtd_dev));
54 vtd_RTADDR_rta_wrf(&vtd->vtd_dev, (addr >> BASE_PAGE_BITS));
57 vtd_GCMD_srtp_wrf(&vtd->vtd_dev, 1);
59 pending = vtd_GSTS_rtps_rdf(&vtd->vtd_dev);
61 assert(vtd_GSTS_rtps_rdf(&vtd->vtd_dev));
72 vtd_ctxt_cache_invalidate(vtd);
77 vtd_pasid_cache_invalidate(vtd);
82 vtd_iotlb_invalidate(vtd);
86 static inline void vtd_cmd_set_fault_log(struct vtd *vtd)
91 vtd_GCMD_sfl_wrf(&vtd->vtd_dev, 1);
93 pending = vtd_GSTS_fls_rdf(&vtd->vtd_dev);
95 assert(vtd_GSTS_fls_rdf(&vtd->vtd_dev));
98 static inline void vtd_cmd_adv_fault_logging_toggle(struct vtd *vtd, bool toggle)
102 vtd_GCMD_eafl_wrf(&vtd->vtd_dev, toggle);
104 pending = vtd_GSTS_afls_rdf(&vtd->vtd_dev);
106 assert(vtd_GSTS_afls_rdf(&vtd->vtd_dev) == toggle);
109 static inline void vtd_cmd_adv_fault_logging_enable(struct vtd *vtd)
111 vtd_cmd_adv_fault_logging_toggle(vtd, 1);
114 static inline void vtd_cmd_adv_fault_logging_disable(struct vtd *vtd)
116 vtd_cmd_adv_fault_logging_toggle(vtd, 0);
119 static inline void vtd_cmd_write_buffer_flush(struct vtd *vtd)
121 if (!vtd->capabilities.req_wb_flush) {
126 vtd_GCMD_wbf_wrf(&vtd->vtd_dev, 1);
128 pending = vtd_GSTS_wbfs_rdf(&vtd->vtd_dev);
130 assert(vtd_GSTS_wbfs_rdf(&vtd->vtd_dev) == 0);
133 static inline void vtd_cmd_queued_invalidation_toggle(struct vtd *vtd, bool toggle)
137 vtd_GCMD_qie_wrf(&vtd->vtd_dev, toggle);
139 pending = vtd_GSTS_qies_rdf(&vtd->vtd_dev);
141 assert(vtd_GSTS_qies_rdf(&vtd->vtd_dev) == toggle);
144 static inline void vtd_cmd_queued_invalidation_enable(struct vtd *vtd)
146 vtd_cmd_queued_invalidation_toggle(vtd, 1);
149 static inline void vtd_cmd_queued_invalidation_disable(struct vtd *vtd)
151 vtd_cmd_queued_invalidation_toggle(vtd, 0);
154 static inline void vtd_cmd_interrupt_remapping_toggle(struct vtd *vtd, bool toggle)
158 vtd_GCMD_ire_wrf(&vtd->vtd_dev, toggle);
160 pending = vtd_GSTS_ires_rdf(&vtd->vtd_dev);
162 assert(vtd_GSTS_ires_rdf(&vtd->vtd_dev) == toggle);
165 static inline void vtd_cmd_interrupt_remapping_enable(struct vtd *vtd)
167 vtd_cmd_interrupt_remapping_toggle(vtd, 1);
170 static inline void vtd_cmd_interrupt_remapping_disable(struct vtd *vtd)
172 vtd_cmd_interrupt_remapping_toggle(vtd, 0);
175 static inline void vtd_cmd_set_interrupt_remap_table_ptr(struct vtd *vtd)
179 vtd_GCMD_sirtp_wrf(&vtd->vtd_dev, 1);
181 pending = vtd_GSTS_irtps_rdf(&vtd->vtd_dev);
183 assert(vtd_GSTS_irtps_rdf(&vtd->vtd_dev));
186 static inline void vtd_cmd_compat_format_interrupt_toggle(struct vtd *vtd, bool toggle)
190 vtd_GCMD_cfi_wrf(&vtd->vtd_dev, toggle);
192 pending = vtd_GSTS_cfis_rdf(&vtd->vtd_dev);
194 assert(vtd_GSTS_cfis_rdf(&vtd->vtd_dev) == toggle);
197 static inline void vtd_cmd_compat_format_interrupt_enable(struct vtd *vtd)
199 vtd_cmd_compat_format_interrupt_toggle(vtd, 1);
202 static inline void vtd_cmd_compat_format_interrupt_disable(struct vtd *vtd)
204 vtd_cmd_compat_format_interrupt_toggle(vtd, 0);