Changeset View
Changeset View
Standalone View
Standalone View
head/sys/amd64/vmm/io/iommu.h
Show First 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | struct iommu_ops { | ||||
iommu_add_device_t add_device; | iommu_add_device_t add_device; | ||||
iommu_remove_device_t remove_device; | iommu_remove_device_t remove_device; | ||||
iommu_invalidate_tlb_t invalidate_tlb; | iommu_invalidate_tlb_t invalidate_tlb; | ||||
}; | }; | ||||
extern struct iommu_ops iommu_ops_intel; | extern struct iommu_ops iommu_ops_intel; | ||||
extern struct iommu_ops iommu_ops_amd; | extern struct iommu_ops iommu_ops_amd; | ||||
void iommu_init(void); | |||||
void iommu_cleanup(void); | void iommu_cleanup(void); | ||||
void *iommu_host_domain(void); | void *iommu_host_domain(void); | ||||
void *iommu_create_domain(vm_paddr_t maxaddr); | void *iommu_create_domain(vm_paddr_t maxaddr); | ||||
void iommu_destroy_domain(void *dom); | void iommu_destroy_domain(void *dom); | ||||
void iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa, | void iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa, | ||||
size_t len); | size_t len); | ||||
void iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len); | void iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len); | ||||
void iommu_add_device(void *dom, uint16_t rid); | void iommu_add_device(void *dom, uint16_t rid); | ||||
void iommu_remove_device(void *dom, uint16_t rid); | void iommu_remove_device(void *dom, uint16_t rid); | ||||
void iommu_invalidate_tlb(void *domain); | void iommu_invalidate_tlb(void *domain); | ||||
#endif | #endif |