Lines Matching refs:vtd_dev_as

3064 static void do_invalidate_device_tlb(VTDAddressSpace *vtd_dev_as,  in do_invalidate_device_tlb()  argument
3088 event.entry.target_as = &vtd_dev_as->as; in do_invalidate_device_tlb()
3093 memory_region_notify_iommu(&vtd_dev_as->iommu, 0, event); in do_invalidate_device_tlb()
3100 VTDAddressSpace *vtd_dev_as; in vtd_process_device_piotlb_desc() local
3119 QLIST_FOREACH(vtd_dev_as, &s->vtd_as_with_notifiers, next) { in vtd_process_device_piotlb_desc()
3120 if ((vtd_dev_as->pasid != PCI_NO_PASID) && in vtd_process_device_piotlb_desc()
3121 (PCI_BUILD_BDF(pci_bus_num(vtd_dev_as->bus), in vtd_process_device_piotlb_desc()
3122 vtd_dev_as->devfn) == sid)) { in vtd_process_device_piotlb_desc()
3123 do_invalidate_device_tlb(vtd_dev_as, size, addr); in vtd_process_device_piotlb_desc()
3128 vtd_dev_as = vtd_get_as_by_sid_and_pasid(s, sid, pasid); in vtd_process_device_piotlb_desc()
3129 if (!vtd_dev_as) { in vtd_process_device_piotlb_desc()
3133 do_invalidate_device_tlb(vtd_dev_as, size, addr); in vtd_process_device_piotlb_desc()
3142 VTDAddressSpace *vtd_dev_as; in vtd_process_device_iotlb_desc() local
3163 vtd_dev_as = vtd_get_as_by_sid(s, sid); in vtd_process_device_iotlb_desc()
3164 if (!vtd_dev_as) { in vtd_process_device_iotlb_desc()
3168 do_invalidate_device_tlb(vtd_dev_as, size, addr); in vtd_process_device_iotlb_desc()
4205 VTDAddressSpace *vtd_dev_as; in vtd_find_add_as() local
4209 vtd_dev_as = g_hash_table_lookup(s->vtd_address_spaces, &key); in vtd_find_add_as()
4212 if (!vtd_dev_as) { in vtd_find_add_as()
4224 vtd_dev_as = g_hash_table_lookup(s->vtd_address_spaces, &key); in vtd_find_add_as()
4225 if (vtd_dev_as) { in vtd_find_add_as()
4227 return vtd_dev_as; in vtd_find_add_as()
4245 vtd_dev_as = g_new0(VTDAddressSpace, 1); in vtd_find_add_as()
4247 vtd_dev_as->bus = bus; in vtd_find_add_as()
4248 vtd_dev_as->devfn = (uint8_t)devfn; in vtd_find_add_as()
4249 vtd_dev_as->pasid = pasid; in vtd_find_add_as()
4250 vtd_dev_as->iommu_state = s; in vtd_find_add_as()
4251 vtd_dev_as->context_cache_entry.context_cache_gen = 0; in vtd_find_add_as()
4252 vtd_dev_as->iova_tree = iova_tree_new(); in vtd_find_add_as()
4254 memory_region_init(&vtd_dev_as->root, OBJECT(s), name, UINT64_MAX); in vtd_find_add_as()
4255 address_space_init(&vtd_dev_as->as, &vtd_dev_as->root, "vtd-root"); in vtd_find_add_as()
4266 memory_region_init_alias(&vtd_dev_as->nodmar, OBJECT(s), in vtd_find_add_as()
4281 memory_region_init_iommu(&vtd_dev_as->iommu, sizeof(vtd_dev_as->iommu), in vtd_find_add_as()
4284 memory_region_init_alias(&vtd_dev_as->iommu_ir, OBJECT(s), "vtd-ir", in vtd_find_add_as()
4286 memory_region_add_subregion_overlap(MEMORY_REGION(&vtd_dev_as->iommu), in vtd_find_add_as()
4288 &vtd_dev_as->iommu_ir, 1); in vtd_find_add_as()
4297 memory_region_init_io(&vtd_dev_as->iommu_ir_fault, OBJECT(s), in vtd_find_add_as()
4298 &vtd_mem_ir_fault_ops, vtd_dev_as, "vtd-no-ir", in vtd_find_add_as()
4304 memory_region_add_subregion_overlap(MEMORY_REGION(&vtd_dev_as->root), in vtd_find_add_as()
4306 &vtd_dev_as->iommu_ir_fault, 2); in vtd_find_add_as()
4313 memory_region_add_subregion_overlap(&vtd_dev_as->root, 0, in vtd_find_add_as()
4314 MEMORY_REGION(&vtd_dev_as->iommu), in vtd_find_add_as()
4316 memory_region_add_subregion_overlap(&vtd_dev_as->root, 0, in vtd_find_add_as()
4317 &vtd_dev_as->nodmar, 0); in vtd_find_add_as()
4319 vtd_switch_address_space(vtd_dev_as); in vtd_find_add_as()
4321 g_hash_table_insert(s->vtd_address_spaces, new_key, vtd_dev_as); in vtd_find_add_as()
4325 return vtd_dev_as; in vtd_find_add_as()