Changeset View
Changeset View
Standalone View
Standalone View
sys/x86/iommu/intel_dmar.h
Show First 20 Lines • Show All 91 Lines • ▼ Show 20 Lines | |||||
/* IR */ | /* IR */ | ||||
int ir_enabled; | int ir_enabled; | ||||
vm_paddr_t irt_phys; | vm_paddr_t irt_phys; | ||||
dmar_irte_t *irt; | dmar_irte_t *irt; | ||||
u_int irte_cnt; | u_int irte_cnt; | ||||
vmem_t *irtids; | vmem_t *irtids; | ||||
/* Delayed freeing of map entries queue processing */ | /* Delayed freeing of map entries queue processing */ | ||||
struct iommu_map_entries_tailq tlb_flush_entries; | struct iommu_map_entry *tlb_flush_head; | ||||
struct iommu_map_entry *tlb_flush_tail; | |||||
struct task qi_task; | struct task qi_task; | ||||
struct taskqueue *qi_taskqueue; | struct taskqueue *qi_taskqueue; | ||||
}; | }; | ||||
#define DMAR_LOCK(dmar) mtx_lock(&(dmar)->iommu.lock) | #define DMAR_LOCK(dmar) mtx_lock(&(dmar)->iommu.lock) | ||||
#define DMAR_UNLOCK(dmar) mtx_unlock(&(dmar)->iommu.lock) | #define DMAR_UNLOCK(dmar) mtx_unlock(&(dmar)->iommu.lock) | ||||
#define DMAR_ASSERT_LOCKED(dmar) mtx_assert(&(dmar)->iommu.lock, MA_OWNED) | #define DMAR_ASSERT_LOCKED(dmar) mtx_assert(&(dmar)->iommu.lock, MA_OWNED) | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | |||||
int dmar_init_fault_log(struct dmar_unit *unit); | int dmar_init_fault_log(struct dmar_unit *unit); | ||||
void dmar_fini_fault_log(struct dmar_unit *unit); | void dmar_fini_fault_log(struct dmar_unit *unit); | ||||
int dmar_qi_intr(void *arg); | int dmar_qi_intr(void *arg); | ||||
void dmar_enable_qi_intr(struct dmar_unit *unit); | void dmar_enable_qi_intr(struct dmar_unit *unit); | ||||
void dmar_disable_qi_intr(struct dmar_unit *unit); | void dmar_disable_qi_intr(struct dmar_unit *unit); | ||||
int dmar_init_qi(struct dmar_unit *unit); | int dmar_init_qi(struct dmar_unit *unit); | ||||
void dmar_fini_qi(struct dmar_unit *unit); | void dmar_fini_qi(struct dmar_unit *unit); | ||||
void dmar_qi_invalidate_locked(struct dmar_domain *domain, iommu_gaddr_t start, | void dmar_qi_invalidate_locked(struct dmar_domain *domain, | ||||
iommu_gaddr_t size, struct iommu_qi_genseq *psec, bool emit_wait); | struct iommu_map_entry *entry, bool emit_wait); | ||||
void dmar_qi_invalidate_sync(struct dmar_domain *domain, iommu_gaddr_t start, | void dmar_qi_invalidate_sync(struct dmar_domain *domain, iommu_gaddr_t start, | ||||
iommu_gaddr_t size, bool cansleep); | iommu_gaddr_t size, bool cansleep); | ||||
void dmar_qi_invalidate_ctx_glob_locked(struct dmar_unit *unit); | void dmar_qi_invalidate_ctx_glob_locked(struct dmar_unit *unit); | ||||
void dmar_qi_invalidate_iotlb_glob_locked(struct dmar_unit *unit); | void dmar_qi_invalidate_iotlb_glob_locked(struct dmar_unit *unit); | ||||
void dmar_qi_invalidate_iec_glob(struct dmar_unit *unit); | void dmar_qi_invalidate_iec_glob(struct dmar_unit *unit); | ||||
void dmar_qi_invalidate_iec(struct dmar_unit *unit, u_int start, u_int cnt); | void dmar_qi_invalidate_iec(struct dmar_unit *unit, u_int start, u_int cnt); | ||||
vm_object_t domain_get_idmap_pgtbl(struct dmar_domain *domain, | vm_object_t domain_get_idmap_pgtbl(struct dmar_domain *domain, | ||||
▲ Show 20 Lines • Show All 91 Lines • Show Last 20 Lines |