iommu_unit
iommu_domain_alloc(struct iommu_unit *iommu)
struct iommu_unit *iommu;
struct iommu_unit *iommu;
struct iommu_unit *iommu;
static struct iommu_unit *
struct iommu_unit *iommu;
struct iommu_unit *iommu;
iommu_get_ctx(struct iommu_unit *iommu, device_t requester,
iommu_free_ctx_locked(struct iommu_unit *iommu, struct iommu_ctx *ioctx)
iommu_register(struct iommu_unit *iommu)
iommu_unregister(struct iommu_unit *iommu)
struct iommu_unit *
struct iommu_unit *iommu;
iommu_unit_pre_instantiate_ctx(struct iommu_unit *unit)
struct iommu_unit *iommu;
struct iommu_unit *iommu;
struct iommu_unit *iommu;
int iommu_unregister(struct iommu_unit *unit);
int iommu_register(struct iommu_unit *unit);
smmu_domain_alloc(device_t dev, struct iommu_unit *iommu)
struct iommu_unit *iommu __diagused;
struct iommu_unit *iommu;
struct iommu_unit *iommu;
struct iommu_unit iommu;
iommu_fini_busdma(struct iommu_unit *unit)
iommu_domain_init(struct iommu_unit *unit, struct iommu_domain *domain,
iommu_instantiate_ctx(struct iommu_unit *unit, device_t dev, bool rmrr)
struct iommu_unit *unit;
struct iommu_unit *unit;
iommu_set_buswide_ctx(struct iommu_unit *unit, u_int busno)
iommu_is_buswide_ctx(struct iommu_unit *unit, u_int busno)
static void iommu_bus_schedule_dmamap(struct iommu_unit *unit,
struct iommu_unit *iommu;
struct iommu_unit *unit;
iommu_bus_schedule_dmamap(struct iommu_unit *unit, struct bus_dmamap_iommu *map)
iommu_init_busdma(struct iommu_unit *unit)
struct iommu_unit *iommu; /* (c) */
void iommu_free_ctx_locked(struct iommu_unit *iommu, struct iommu_ctx *ctx);
struct iommu_ctx *iommu_get_ctx(struct iommu_unit *, device_t dev,
struct iommu_unit *iommu_find(device_t dev, bool verbose);
void iommu_unit_pre_instantiate_ctx(struct iommu_unit *iommu);
struct iommu_ctx *iommu_instantiate_ctx(struct iommu_unit *iommu,
int iommu_init_busdma(struct iommu_unit *unit);
void iommu_fini_busdma(struct iommu_unit *unit);
void iommu_set_buswide_ctx(struct iommu_unit *unit, u_int busno);
bool iommu_is_buswide_ctx(struct iommu_unit *unit, u_int busno);
void iommu_domain_init(struct iommu_unit *unit, struct iommu_domain *domain,
struct iommu_unit;
struct iommu_unit *iommu __diagused;
riscv_iommu_domain_alloc(device_t dev, struct iommu_unit *iommu)
struct iommu_unit iommu;
struct iommu_unit *iommu;
iommu_domain_alloc(struct iommu_unit *iommu)
struct iommu_unit *iommu;
struct iommu_unit *iommu;
struct iommu_unit *iommu;
static struct iommu_unit *
struct iommu_unit *iommu;
struct iommu_unit *iommu;
iommu_get_ctx(struct iommu_unit *iommu, device_t requester,
iommu_free_ctx_locked(struct iommu_unit *iommu, struct iommu_ctx *ioctx)
iommu_register(struct iommu_unit *iommu)
iommu_unregister(struct iommu_unit *iommu)
struct iommu_unit *
struct iommu_unit *iommu;
iommu_unit_pre_instantiate_ctx(struct iommu_unit *unit)
struct iommu_unit *iommu;
struct iommu_unit *iommu;
struct iommu_unit *iommu;
int iommu_unregister(struct iommu_unit *unit);
int iommu_register(struct iommu_unit *unit);
struct iommu_unit *iommu;
amdiommu_cmd_advance_tail(struct iommu_unit *iommu)
amdiommu_cmd_ensure(struct iommu_unit *iommu, int descr_count)
amdiommu_cmd_emit_wait_descr(struct iommu_unit *iommu, uint32_t seq,
amdiommu_qi_invalidate_wait_sync(struct iommu_unit *iommu)
amdiommu_fini_cmd_helper(struct iommu_unit *iommu)
amdiommu_enable_qi_intr(struct iommu_unit *iommu)
amdiommu_disable_qi_intr(struct iommu_unit *iommu)
amdiommu_get_ctx(struct iommu_unit *iommu, device_t dev, uint16_t rid,
amdiommu_free_ctx_locked_method(struct iommu_unit *iommu,
static struct iommu_unit *
amdiommu_get_x86_common(struct iommu_unit *unit)
amdiommu_unit_pre_instantiate_ctx(struct iommu_unit *unit)
struct iommu_ctx *amdiommu_get_ctx(struct iommu_unit *iommu, device_t dev,
void amdiommu_free_ctx_locked_method(struct iommu_unit *iommu,
void amdiommu_qi_invalidate_wait_sync(struct iommu_unit *iommu);
struct iommu_unit iommu;
struct iommu_unit *unit;
struct iommu_unit *unit __diagused;
dmar_get_ctx(struct iommu_unit *iommu, device_t dev, uint16_t rid,
dmar_free_ctx_locked_method(struct iommu_unit *iommu,
struct iommu_unit iommu;
void dmar_enable_fault_intr(struct iommu_unit *unit);
void dmar_disable_fault_intr(struct iommu_unit *unit);
void dmar_enable_qi_intr(struct iommu_unit *unit);
void dmar_disable_qi_intr(struct iommu_unit *unit);
void dmar_free_ctx_locked_method(struct iommu_unit *dmar,
struct iommu_ctx *dmar_get_ctx(struct iommu_unit *iommu, device_t dev,
int dmar_instantiate_rmrr_ctxs(struct iommu_unit *dmar);
void dmar_quirks_pre_use(struct iommu_unit *dmar);
dmar_instantiate_rmrr_ctxs(struct iommu_unit *unit)
static struct iommu_unit *
dmar_get_x86_common(struct iommu_unit *unit)
dmar_unit_pre_instantiate_ctx(struct iommu_unit *unit)
unit = IOMMU2DMAR((struct iommu_unit *)arg);
dmar_enable_fault_intr(struct iommu_unit *iommu)
dmar_disable_fault_intr(struct iommu_unit *iommu)
dmar_qi_emit_wait_descr(struct iommu_unit *iommu, uint32_t seq, bool intr,
unit = IOMMU2DMAR((struct iommu_unit *)arg);
dmar_fini_qi_helper(struct iommu_unit *iommu)
dmar_enable_qi_intr(struct iommu_unit *iommu)
dmar_disable_qi_intr(struct iommu_unit *iommu)
dmar_qi_advance_tail(struct iommu_unit *iommu)
dmar_qi_ensure(struct iommu_unit *iommu, int descr_count)
dmar_quirks_pre_use(struct iommu_unit *unit)
static struct iommu_unit *
iommu_get_ctx(struct iommu_unit *iommu, device_t dev, uint16_t rid,
iommu_free_ctx_locked(struct iommu_unit *iommu, struct iommu_ctx *context)
struct iommu_unit *
iommu_unit_pre_instantiate_ctx(struct iommu_unit *unit)
iommu_qi_seq_processed(struct iommu_unit *unit,
iommu_qi_emit_wait_seq(struct iommu_unit *unit, struct iommu_qi_genseq *pseq,
iommu_qi_wait_for_seq(struct iommu_unit *unit, const struct iommu_qi_genseq *
struct iommu_unit *unit;
struct iommu_unit *unit;
iommu_qi_drain_tlb_flush(struct iommu_unit *unit)
iommu_qi_common_init(struct iommu_unit *unit, task_fn_t qi_task)
iommu_qi_common_fini(struct iommu_unit *unit, void (*disable_qi)(
struct iommu_unit *))
iommu_alloc_irq(struct iommu_unit *unit, int idx)
iommu_release_intr(struct iommu_unit *unit, int idx)
void (*enable_intr)(struct iommu_unit *);
void (*disable_intr)(struct iommu_unit *);
void iommu_qi_emit_wait_seq(struct iommu_unit *unit, struct iommu_qi_genseq *
void iommu_qi_wait_for_seq(struct iommu_unit *unit, const struct
void iommu_qi_drain_tlb_flush(struct iommu_unit *unit);
void iommu_qi_common_init(struct iommu_unit *unit, task_fn_t taskfunc);
void iommu_qi_common_fini(struct iommu_unit *unit, void (*disable_qi)(
struct iommu_unit *));
int iommu_alloc_irq(struct iommu_unit *unit, int idx);
void iommu_release_intr(struct iommu_unit *unit, int idx);
iommu_unit *iommu);
void (*unit_pre_instantiate_ctx)(struct iommu_unit *iommu);
void (*qi_ensure)(struct iommu_unit *unit, int descr_count);
void (*qi_emit_wait_descr)(struct iommu_unit *unit, uint32_t seq,
void (*qi_advance_tail)(struct iommu_unit *unit);
struct iommu_ctx *(*get_ctx)(struct iommu_unit *iommu,
void (*free_ctx_locked)(struct iommu_unit *iommu,
struct iommu_unit *(*find)(device_t dev, bool verbose);