Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/iommu/iommu.h
Show First 20 Lines • Show All 134 Lines • ▼ Show 20 Lines | #define IOMMU_CTX_DISABLED 0x0002 /* Device is disabled, the | ||||
to prevent context destruction */ | to prevent context destruction */ | ||||
#define IOMMU_DOMAIN_GAS_INITED 0x0001 | #define IOMMU_DOMAIN_GAS_INITED 0x0001 | ||||
#define IOMMU_DOMAIN_PGTBL_INITED 0x0002 | #define IOMMU_DOMAIN_PGTBL_INITED 0x0002 | ||||
#define IOMMU_DOMAIN_IDMAP 0x0010 /* Domain uses identity | #define IOMMU_DOMAIN_IDMAP 0x0010 /* Domain uses identity | ||||
page table */ | page table */ | ||||
#define IOMMU_DOMAIN_RMRR 0x0020 /* Domain contains RMRR entry, | #define IOMMU_DOMAIN_RMRR 0x0020 /* Domain contains RMRR entry, | ||||
cannot be turned off */ | cannot be turned off */ | ||||
#define IOMMU_DOMAIN_BUSY 0x0040 | |||||
#define IOMMU_LOCK(unit) mtx_lock(&(unit)->lock) | #define IOMMU_LOCK(unit) mtx_lock(&(unit)->lock) | ||||
#define IOMMU_UNLOCK(unit) mtx_unlock(&(unit)->lock) | #define IOMMU_UNLOCK(unit) mtx_unlock(&(unit)->lock) | ||||
#define IOMMU_ASSERT_LOCKED(unit) mtx_assert(&(unit)->lock, MA_OWNED) | #define IOMMU_ASSERT_LOCKED(unit) mtx_assert(&(unit)->lock, MA_OWNED) | ||||
#define IOMMU_DOMAIN_LOCK(dom) mtx_lock(&(dom)->lock) | #define IOMMU_DOMAIN_LOCK(dom) mtx_lock(&(dom)->lock) | ||||
#define IOMMU_DOMAIN_UNLOCK(dom) mtx_unlock(&(dom)->lock) | #define IOMMU_DOMAIN_UNLOCK(dom) mtx_unlock(&(dom)->lock) | ||||
#define IOMMU_DOMAIN_ASSERT_LOCKED(dom) mtx_assert(&(dom)->lock, MA_OWNED) | #define IOMMU_DOMAIN_ASSERT_LOCKED(dom) mtx_assert(&(dom)->lock, MA_OWNED) | ||||
Show All 15 Lines | |||||
void iommu_fini_busdma(struct iommu_unit *unit); | void iommu_fini_busdma(struct iommu_unit *unit); | ||||
void iommu_gas_init_domain(struct iommu_domain *domain); | void iommu_gas_init_domain(struct iommu_domain *domain); | ||||
void iommu_gas_fini_domain(struct iommu_domain *domain); | void iommu_gas_fini_domain(struct iommu_domain *domain); | ||||
struct iommu_map_entry *iommu_gas_alloc_entry(struct iommu_domain *domain, | struct iommu_map_entry *iommu_gas_alloc_entry(struct iommu_domain *domain, | ||||
u_int flags); | u_int flags); | ||||
void iommu_gas_free_entry(struct iommu_map_entry *entry); | void iommu_gas_free_entry(struct iommu_map_entry *entry); | ||||
void iommu_gas_free_space(struct iommu_map_entry *entry); | void iommu_gas_free_space(struct iommu_map_entry *entry); | ||||
void iommu_gas_remove(struct iommu_domain *domain, iommu_gaddr_t start, | |||||
iommu_gaddr_t size); | |||||
int iommu_gas_map(struct iommu_domain *domain, | int iommu_gas_map(struct iommu_domain *domain, | ||||
const struct bus_dma_tag_common *common, iommu_gaddr_t size, int offset, | const struct bus_dma_tag_common *common, iommu_gaddr_t size, int offset, | ||||
u_int eflags, u_int flags, vm_page_t *ma, struct iommu_map_entry **res); | u_int eflags, u_int flags, vm_page_t *ma, struct iommu_map_entry **res); | ||||
void iommu_gas_free_region(struct iommu_map_entry *entry); | void iommu_gas_free_region(struct iommu_map_entry *entry); | ||||
int iommu_gas_map_region(struct iommu_domain *domain, | int iommu_gas_map_region(struct iommu_domain *domain, | ||||
struct iommu_map_entry *entry, u_int eflags, u_int flags, vm_page_t *ma); | struct iommu_map_entry *entry, u_int eflags, u_int flags, vm_page_t *ma); | ||||
int iommu_gas_reserve_region(struct iommu_domain *domain, iommu_gaddr_t start, | int iommu_gas_reserve_region(struct iommu_domain *domain, iommu_gaddr_t start, | ||||
iommu_gaddr_t end, struct iommu_map_entry **entry0); | iommu_gaddr_t end, struct iommu_map_entry **entry0); | ||||
Show All 20 Lines |