Lines Matching +full:pci +full:- +full:domain
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
35 #include <dev/pci/pcivar.h>
36 #include <dev/pci/pcireg.h>
55 "Enable use of I/O MMU (required for PCI passthrough).");
67 return ((*ops->init)()); in IOMMU_INIT()
76 (*ops->cleanup)(); in IOMMU_CLEANUP()
84 return ((*ops->create_domain)(maxaddr)); in IOMMU_CREATE_DOMAIN()
94 (*ops->destroy_domain)(dom); in IOMMU_DESTROY_DOMAIN()
98 IOMMU_CREATE_MAPPING(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, in IOMMU_CREATE_MAPPING() argument
103 return ((*ops->create_mapping)(domain, gpa, hpa, len, res_len)); in IOMMU_CREATE_MAPPING()
108 IOMMU_REMOVE_MAPPING(void *domain, vm_paddr_t gpa, uint64_t len, in IOMMU_REMOVE_MAPPING() argument
113 return ((*ops->remove_mapping)(domain, gpa, len, res_len)); in IOMMU_REMOVE_MAPPING()
118 IOMMU_ADD_DEVICE(void *domain, device_t dev, uint16_t rid) in IOMMU_ADD_DEVICE() argument
122 return ((*ops->add_device)(domain, dev, rid)); in IOMMU_ADD_DEVICE()
127 IOMMU_REMOVE_DEVICE(void *domain, device_t dev, uint16_t rid) in IOMMU_REMOVE_DEVICE() argument
131 return ((*ops->remove_device)(domain, dev, rid)); in IOMMU_REMOVE_DEVICE()
136 IOMMU_INVALIDATE_TLB(void *domain) in IOMMU_INVALIDATE_TLB() argument
140 return ((*ops->invalidate_tlb)(domain)); in IOMMU_INVALIDATE_TLB()
149 (*ops->enable)(); in IOMMU_ENABLE()
157 (*ops->disable)(); in IOMMU_DISABLE()
164 /* Add new devices to the host domain. */ in iommu_pci_add()
200 * Create a domain for the devices owned by the host in iommu_init()
205 printf("iommu_init: unable to create a host domain"); in iommu_init()
236 * domain. in iommu_init()
309 remaining -= mapped) { in iommu_create_mapping()
327 remaining -= unmapped) { in iommu_remove_mapping()
359 iommu_invalidate_tlb(void *domain) in iommu_invalidate_tlb() argument
362 return (IOMMU_INVALIDATE_TLB(domain)); in iommu_invalidate_tlb()