/** * struct omap_iommu_device - omap iommu device data * @pgtable: page table used by an omap iommu attached to a domain * @iommu_dev: pointer to store an omap iommu instance attached to a domain
*/ struct omap_iommu_device {
u32 *pgtable; struct omap_iommu *iommu_dev;
};
/** * struct omap_iommu_domain - omap iommu domain * @num_iommus: number of iommus in this domain * @iommus: omap iommu device data for all iommus in this domain * @dev: Device using this domain. * @lock: domain lock, should be taken when attaching/detaching * @domain: generic domain handle used by iommu core code
*/ struct omap_iommu_domain {
u32 num_iommus; struct omap_iommu_device *iommus; struct device *dev;
spinlock_t lock; struct iommu_domain domain;
};
spinlock_t iommu_lock; /* global for this whole object */
/* * We don't change iopgd for a situation like pgd for a task, * but share it globally for each iommu.
*/
u32 *iopgd;
spinlock_t page_table_lock; /* protect iopgd */
dma_addr_t pd_dma;
int nr_tlb_entries;
void *ctx; /* iommu context: registres saved area */
struct cr_regs *cr_ctx;
u32 num_cr_ctx;
int has_bus_err_back;
u32 id;
struct iommu_device iommu; bool has_iommu_driver;
u8 pwrst;
};
/** * struct omap_iommu_arch_data - omap iommu private data * @iommu_dev: handle of the OMAP iommu device * @dev: handle of the iommu device * * This is an omap iommu private data object, which binds an iommu user * to its iommu device. This object should be placed at the iommu user's * dev_archdata so generic IOMMU API can be used without having to * utilize omap-specific plumbing anymore.
*/ struct omap_iommu_arch_data { struct omap_iommu *iommu_dev; struct device *dev;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.