Lines Matching full:bus

2  * QEMU PCI bus manager
143 OBJECT(pci_dev), "bus master", in pci_init_bus_master()
152 PCIBus *bus = container_of(notifier, PCIBus, machine_done); in pcibus_machine_done() local
155 for (i = 0; i < ARRAY_SIZE(bus->devices); ++i) { in pcibus_machine_done()
156 if (bus->devices[i]) { in pcibus_machine_done()
157 pci_init_bus_master(bus->devices[i]); in pcibus_machine_done()
164 PCIBus *bus = PCI_BUS(qbus); in pci_bus_realize() local
166 bus->machine_done.notify = pcibus_machine_done; in pci_bus_realize()
167 qemu_add_machine_init_done_notifier(&bus->machine_done); in pci_bus_realize()
169 vmstate_register_any(NULL, &vmstate_pcibus, bus); in pci_bus_realize()
174 PCIBus *bus = PCI_BUS(qbus); in pcie_bus_realize() local
184 * A PCI-E bus can support extended config space if it's the root in pcie_bus_realize()
185 * bus, or if the bus/bridge above it does as well in pcie_bus_realize()
187 if (pci_bus_is_root(bus)) { in pcie_bus_realize()
188 bus->flags |= PCI_BUS_EXTENDED_CONFIG_SPACE; in pcie_bus_realize()
190 PCIBus *parent_bus = pci_get_bus(bus->parent_dev); in pcie_bus_realize()
193 bus->flags |= PCI_BUS_EXTENDED_CONFIG_SPACE; in pcie_bus_realize()
200 PCIBus *bus = PCI_BUS(qbus); in pci_bus_unrealize() local
202 qemu_remove_machine_init_done_notifier(&bus->machine_done); in pci_bus_unrealize()
204 vmstate_unregister(NULL, &vmstate_pcibus, bus); in pci_bus_unrealize()
207 static int pcibus_num(PCIBus *bus) in pcibus_num() argument
209 if (pci_bus_is_root(bus)) { in pcibus_num()
212 return bus->parent_dev->config[PCI_SECONDARY_BUS]; in pcibus_num()
215 static uint16_t pcibus_numa_node(PCIBus *bus) in pcibus_numa_node() argument
221 PCIBus *bus, in pci_bus_add_fw_cfg_extra_pci_roots() argument
226 if (!bus) { in pci_bus_add_fw_cfg_extra_pci_roots()
229 obj = OBJECT(bus); in pci_bus_add_fw_cfg_extra_pci_roots()
238 PCIBus *bus = PCI_BUS(obj); in pci_bus_fw_cfg_gen_data() local
242 if (!bus) { in pci_bus_fw_cfg_gen_data()
246 QLIST_FOREACH(bus, &bus->child, sibling) { in pci_bus_fw_cfg_gen_data()
248 if (pci_bus_is_root(bus)) { in pci_bus_fw_cfg_gen_data()
367 static void pci_bus_change_irq_level(PCIBus *bus, int irq_num, int change) in pci_bus_change_irq_level() argument
370 assert(irq_num < bus->nirq); in pci_bus_change_irq_level()
371 bus->irq_count[irq_num] += change; in pci_bus_change_irq_level()
372 bus->set_irq(bus->irq_opaque, irq_num, bus->irq_count[irq_num] != 0); in pci_bus_change_irq_level()
377 PCIBus *bus; in pci_change_irq_level() local
380 bus = pci_get_bus(pci_dev); in pci_change_irq_level()
381 assert(bus->map_irq); in pci_change_irq_level()
382 irq_num = bus->map_irq(pci_dev, irq_num); in pci_change_irq_level()
384 pci_bus_is_root(bus) ? "root-complex" in pci_change_irq_level()
385 : DEVICE(bus->parent_dev)->canonical_path); in pci_change_irq_level()
386 if (bus->set_irq) in pci_change_irq_level()
388 pci_dev = bus->parent_dev; in pci_change_irq_level()
390 pci_bus_change_irq_level(bus, irq_num, change); in pci_change_irq_level()
393 int pci_bus_get_irq_level(PCIBus *bus, int irq_num) in pci_bus_get_irq_level() argument
396 assert(irq_num < bus->nirq); in pci_bus_get_irq_level()
397 return !!bus->irq_count[irq_num]; in pci_bus_get_irq_level()
584 * Trigger pci bus reset under a given bus.
590 PCIBus *bus = PCI_BUS(obj); in pcibus_reset_hold() local
593 for (i = 0; i < ARRAY_SIZE(bus->devices); ++i) { in pcibus_reset_hold()
594 if (bus->devices[i]) { in pcibus_reset_hold()
595 pci_do_device_reset(bus->devices[i]); in pcibus_reset_hold()
599 for (i = 0; i < bus->nirq; i++) { in pcibus_reset_hold()
600 assert(bus->irq_count[i] == 0); in pcibus_reset_hold()
620 PCIBus *bus = pci_get_bus(d); in pci_device_root_bus() local
622 while (!pci_bus_is_root(bus)) { in pci_device_root_bus()
623 d = bus->parent_dev; in pci_device_root_bus()
626 bus = pci_get_bus(d); in pci_device_root_bus()
629 return bus; in pci_device_root_bus()
638 assert(host_bridge->bus == rootbus); in pci_root_bus_path()
647 bool pci_bus_bypass_iommu(PCIBus *bus) in pci_bus_bypass_iommu() argument
649 PCIBus *rootbus = bus; in pci_bus_bypass_iommu()
652 if (!pci_bus_is_root(bus)) { in pci_bus_bypass_iommu()
653 rootbus = pci_device_root_bus(bus->parent_dev); in pci_bus_bypass_iommu()
658 assert(host_bridge->bus == rootbus); in pci_bus_bypass_iommu()
663 static void pci_root_bus_internal_init(PCIBus *bus, DeviceState *parent, in pci_root_bus_internal_init() argument
668 bus->devfn_min = devfn_min; in pci_root_bus_internal_init()
669 bus->slot_reserved_mask = 0x0; in pci_root_bus_internal_init()
670 bus->address_space_mem = mem; in pci_root_bus_internal_init()
671 bus->address_space_io = io; in pci_root_bus_internal_init()
672 bus->flags |= PCI_BUS_IS_ROOT; in pci_root_bus_internal_init()
675 QLIST_INIT(&bus->child); in pci_root_bus_internal_init()
680 static void pci_bus_uninit(PCIBus *bus) in pci_bus_uninit() argument
682 pci_host_bus_unregister(BUS(bus)->parent); in pci_bus_uninit()
685 bool pci_bus_is_express(const PCIBus *bus) in pci_bus_is_express() argument
687 return object_dynamic_cast(OBJECT(bus), TYPE_PCIE_BUS); in pci_bus_is_express()
690 void pci_root_bus_init(PCIBus *bus, size_t bus_size, DeviceState *parent, in pci_root_bus_init() argument
695 qbus_init(bus, bus_size, typename, parent, name); in pci_root_bus_init()
696 pci_root_bus_internal_init(bus, parent, mem, io, devfn_min); in pci_root_bus_init()
703 PCIBus *bus; in pci_root_bus_new() local
705 bus = PCI_BUS(qbus_new(typename, parent, name)); in pci_root_bus_new()
706 pci_root_bus_internal_init(bus, parent, mem, io, devfn_min); in pci_root_bus_new()
707 return bus; in pci_root_bus_new()
710 void pci_root_bus_cleanup(PCIBus *bus) in pci_root_bus_cleanup() argument
712 pci_bus_uninit(bus); in pci_root_bus_cleanup()
714 qbus_unrealize(BUS(bus)); in pci_root_bus_cleanup()
717 void pci_bus_irqs(PCIBus *bus, pci_set_irq_fn set_irq, in pci_bus_irqs() argument
720 bus->set_irq = set_irq; in pci_bus_irqs()
721 bus->irq_opaque = irq_opaque; in pci_bus_irqs()
722 bus->nirq = nirq; in pci_bus_irqs()
723 g_free(bus->irq_count); in pci_bus_irqs()
724 bus->irq_count = g_malloc0(nirq * sizeof(bus->irq_count[0])); in pci_bus_irqs()
727 void pci_bus_map_irqs(PCIBus *bus, pci_map_irq_fn map_irq) in pci_bus_map_irqs() argument
729 bus->map_irq = map_irq; in pci_bus_map_irqs()
732 void pci_bus_irqs_cleanup(PCIBus *bus) in pci_bus_irqs_cleanup() argument
734 bus->set_irq = NULL; in pci_bus_irqs_cleanup()
735 bus->map_irq = NULL; in pci_bus_irqs_cleanup()
736 bus->irq_opaque = NULL; in pci_bus_irqs_cleanup()
737 bus->nirq = 0; in pci_bus_irqs_cleanup()
738 g_free(bus->irq_count); in pci_bus_irqs_cleanup()
739 bus->irq_count = NULL; in pci_bus_irqs_cleanup()
749 PCIBus *bus; in pci_register_root_bus() local
751 bus = pci_root_bus_new(parent, name, mem, io, devfn_min, typename); in pci_register_root_bus()
752 pci_bus_irqs(bus, set_irq, irq_opaque, nirq); in pci_register_root_bus()
753 pci_bus_map_irqs(bus, map_irq); in pci_register_root_bus()
754 return bus; in pci_register_root_bus()
757 void pci_unregister_root_bus(PCIBus *bus) in pci_unregister_root_bus() argument
759 pci_bus_irqs_cleanup(bus); in pci_unregister_root_bus()
760 pci_root_bus_cleanup(bus); in pci_unregister_root_bus()
768 /* Returns the min and max bus numbers of a PCI bus hierarchy */
769 void pci_bus_range(PCIBus *bus, int *min_bus, int *max_bus) in pci_bus_range() argument
772 *min_bus = *max_bus = pci_bus_num(bus); in pci_bus_range()
774 for (i = 0; i < ARRAY_SIZE(bus->devices); ++i) { in pci_bus_range()
775 PCIDevice *dev = bus->devices[i]; in pci_bus_range()
784 int pci_bus_numa_node(PCIBus *bus) in pci_bus_numa_node() argument
786 return PCI_BUS_GET_CLASS(bus)->numa_node(bus); in pci_bus_numa_node()
952 * Parse [[<domain>:]<bus>:]<slot>, return -1 on error if funcp == NULL
953 * [[<domain>:]<bus>:]<slot>.<func>, return -1 on error
961 unsigned long dom = 0, bus = 0; in pci_parse_devaddr() local
970 bus = val; in pci_parse_devaddr()
976 dom = bus; in pci_parse_devaddr()
977 bus = val; in pci_parse_devaddr()
1000 if (dom > 0xffff || bus > 0xff || slot > 0x1f || func > 7) in pci_parse_devaddr()
1007 *busp = bus; in pci_parse_devaddr()
1110 static void pci_init_multifunction(PCIBus *bus, PCIDevice *dev, Error **errp) in pci_init_multifunction() argument
1138 PCIDevice *f0 = bus->devices[PCI_DEVFN(slot, 0)]; in pci_init_multifunction()
1153 PCIDevice *device = bus->devices[PCI_DEVFN(slot, func)]; in pci_init_multifunction()
1229 * bus number might change from time to time.
1245 * override the requester ID using secondary bus in pci_req_id_cache_get()
1273 static bool pci_bus_devfn_available(PCIBus *bus, int devfn) in pci_bus_devfn_available() argument
1275 return !(bus->devices[devfn]); in pci_bus_devfn_available()
1278 static bool pci_bus_devfn_reserved(PCIBus *bus, int devfn) in pci_bus_devfn_reserved() argument
1280 return bus->slot_reserved_mask & (1UL << PCI_SLOT(devfn)); in pci_bus_devfn_reserved()
1283 uint32_t pci_bus_get_slot_reserved_mask(PCIBus *bus) in pci_bus_get_slot_reserved_mask() argument
1285 return bus->slot_reserved_mask; in pci_bus_get_slot_reserved_mask()
1288 void pci_bus_set_slot_reserved_mask(PCIBus *bus, uint32_t mask) in pci_bus_set_slot_reserved_mask() argument
1290 bus->slot_reserved_mask |= mask; in pci_bus_set_slot_reserved_mask()
1293 void pci_bus_clear_slot_reserved_mask(PCIBus *bus, uint32_t mask) in pci_bus_clear_slot_reserved_mask() argument
1295 bus->slot_reserved_mask &= ~mask; in pci_bus_clear_slot_reserved_mask()
1308 PCIBus *bus = pci_get_bus(pci_dev); in do_pci_register_device() local
1312 if (pci_bus_is_root(bus) && bus->parent_dev && !is_bridge) { in do_pci_register_device()
1315 bus->parent_dev->name); in do_pci_register_device()
1320 for(devfn = bus->devfn_min ; devfn < ARRAY_SIZE(bus->devices); in do_pci_register_device()
1322 if (pci_bus_devfn_available(bus, devfn) && in do_pci_register_device()
1323 !pci_bus_devfn_reserved(bus, devfn)) { in do_pci_register_device()
1331 } else if (pci_bus_devfn_reserved(bus, devfn)) { in do_pci_register_device()
1336 } else if (!pci_bus_devfn_available(bus, devfn)) { in do_pci_register_device()
1340 bus->devices[devfn]->name, bus->devices[devfn]->qdev.id); in do_pci_register_device()
1365 "bus master container", UINT64_MAX); in do_pci_register_device()
1402 pci_init_multifunction(bus, pci_dev, &local_err); in do_pci_register_device()
1415 bus->devices[devfn] = pci_dev; in do_pci_register_device()
1545 PCIBus *bus = pci_get_bus(pci_dev); in pci_register_vga() local
1551 memory_region_add_subregion_overlap(bus->address_space_mem, in pci_register_vga()
1556 memory_region_add_subregion_overlap(bus->address_space_io, in pci_register_vga()
1561 memory_region_add_subregion_overlap(bus->address_space_io, in pci_register_vga()
1570 PCIBus *bus = pci_get_bus(pci_dev); in pci_unregister_vga() local
1576 memory_region_del_subregion(bus->address_space_mem, in pci_unregister_vga()
1578 memory_region_del_subregion(bus->address_space_io, in pci_unregister_vga()
1580 memory_region_del_subregion(bus->address_space_io, in pci_unregister_vga()
1846 void pci_bus_set_route_irq_fn(PCIBus *bus, pci_route_irq_fn route_intx_to_irq) in pci_bus_set_route_irq_fn() argument
1848 assert(pci_bus_is_root(bus)); in pci_bus_set_route_irq_fn()
1849 bus->route_intx_to_irq = route_intx_to_irq; in pci_bus_set_route_irq_fn()
1854 PCIBus *bus; in pci_device_route_intx_to_irq() local
1858 bus = pci_get_bus(dev); in pci_device_route_intx_to_irq()
1859 pin = bus->map_irq(dev, pin); in pci_device_route_intx_to_irq()
1861 pci_bus_is_root(bus) ? "root-complex" in pci_device_route_intx_to_irq()
1862 : DEVICE(bus->parent_dev)->canonical_path); in pci_device_route_intx_to_irq()
1863 dev = bus->parent_dev; in pci_device_route_intx_to_irq()
1866 if (!bus->route_intx_to_irq) { in pci_device_route_intx_to_irq()
1868 object_get_typename(OBJECT(bus->qbus.parent))); in pci_device_route_intx_to_irq()
1872 return bus->route_intx_to_irq(bus->irq_opaque, pin); in pci_device_route_intx_to_irq()
1880 void pci_bus_fire_intx_routing_notifier(PCIBus *bus) in pci_bus_fire_intx_routing_notifier() argument
1886 for (i = 0; i < ARRAY_SIZE(bus->devices); ++i) { in pci_bus_fire_intx_routing_notifier()
1887 dev = bus->devices[i]; in pci_bus_fire_intx_routing_notifier()
1893 QLIST_FOREACH(sec, &bus->child, sibling) { in pci_bus_fire_intx_routing_notifier()
1975 { 0x0c01, "Access bus controller", "access-bus"},
1983 void pci_for_each_device_under_bus_reverse(PCIBus *bus, in pci_for_each_device_under_bus_reverse() argument
1990 for (devfn = 0; devfn < ARRAY_SIZE(bus->devices); devfn++) { in pci_for_each_device_under_bus_reverse()
1991 d = bus->devices[ARRAY_SIZE(bus->devices) - 1 - devfn]; in pci_for_each_device_under_bus_reverse()
1993 fn(bus, d, opaque); in pci_for_each_device_under_bus_reverse()
1998 void pci_for_each_device_reverse(PCIBus *bus, int bus_num, in pci_for_each_device_reverse() argument
2001 bus = pci_find_bus_nr(bus, bus_num); in pci_for_each_device_reverse()
2003 if (bus) { in pci_for_each_device_reverse()
2004 pci_for_each_device_under_bus_reverse(bus, fn, opaque); in pci_for_each_device_reverse()
2008 void pci_for_each_device_under_bus(PCIBus *bus, in pci_for_each_device_under_bus() argument
2014 for(devfn = 0; devfn < ARRAY_SIZE(bus->devices); devfn++) { in pci_for_each_device_under_bus()
2015 d = bus->devices[devfn]; in pci_for_each_device_under_bus()
2017 fn(bus, d, opaque); in pci_for_each_device_under_bus()
2022 void pci_for_each_device(PCIBus *bus, int bus_num, in pci_for_each_device() argument
2025 bus = pci_find_bus_nr(bus, bus_num); in pci_for_each_device()
2027 if (bus) { in pci_for_each_device()
2028 pci_for_each_device_under_bus(bus, fn, opaque); in pci_for_each_device()
2044 void pci_init_nic_devices(PCIBus *bus, const char *default_model) in pci_init_nic_devices() argument
2046 qemu_create_nic_bus_devices(&bus->qbus, TYPE_PCI_DEVICE, default_model, in pci_init_nic_devices()
2057 PCIBus *bus; in pci_init_nic_in_slot() local
2076 bus = pci_find_bus_nr(rootbus, busnr); in pci_init_nic_in_slot()
2077 if (!bus) { in pci_init_nic_in_slot()
2085 pci_realize_and_unref(pci_dev, bus, &error_fatal); in pci_init_nic_in_slot()
2089 PCIDevice *pci_vga_init(PCIBus *bus) in pci_vga_init() argument
2094 return pci_create_simple(bus, -1, "cirrus-vga"); in pci_vga_init()
2096 return pci_create_simple(bus, -1, "qxl-vga"); in pci_vga_init()
2098 return pci_create_simple(bus, -1, "VGA"); in pci_vga_init()
2100 return pci_create_simple(bus, -1, "vmware-svga"); in pci_vga_init()
2102 return pci_create_simple(bus, -1, "virtio-vga"); in pci_vga_init()
2110 /* Whether a given bus number is in range of the secondary
2111 * bus of the given bridge device. */
2115 PCI_BRIDGE_CTL_BUS_RESET) /* Don't walk the bus if it's reset. */ && in pci_secondary_bus_in_range()
2120 /* Whether a given bus number is in a range of a root bus */
2121 static bool pci_root_bus_in_range(PCIBus *bus, int bus_num) in pci_root_bus_in_range() argument
2125 for (i = 0; i < ARRAY_SIZE(bus->devices); ++i) { in pci_root_bus_in_range()
2126 PCIDevice *dev = bus->devices[i]; in pci_root_bus_in_range()
2138 PCIBus *pci_find_bus_nr(PCIBus *bus, int bus_num) in pci_find_bus_nr() argument
2142 if (!bus) { in pci_find_bus_nr()
2146 if (pci_bus_num(bus) == bus_num) { in pci_find_bus_nr()
2147 return bus; in pci_find_bus_nr()
2150 /* Consider all bus numbers in range for the host pci bridge. */ in pci_find_bus_nr()
2151 if (!pci_bus_is_root(bus) && in pci_find_bus_nr()
2152 !pci_secondary_bus_in_range(bus->parent_dev, bus_num)) { in pci_find_bus_nr()
2156 /* try child bus */ in pci_find_bus_nr()
2157 for (; bus; bus = sec) { in pci_find_bus_nr()
2158 QLIST_FOREACH(sec, &bus->child, sibling) { in pci_find_bus_nr()
2162 /* PXB buses assumed to be children of bus 0 */ in pci_find_bus_nr()
2178 void pci_for_each_bus_depth_first(PCIBus *bus, pci_bus_ret_fn begin, in pci_for_each_bus_depth_first() argument
2184 if (!bus) { in pci_for_each_bus_depth_first()
2189 state = begin(bus, parent_state); in pci_for_each_bus_depth_first()
2194 QLIST_FOREACH(sec, &bus->child, sibling) { in pci_for_each_bus_depth_first()
2199 end(bus, state); in pci_for_each_bus_depth_first()
2204 PCIDevice *pci_find_device(PCIBus *bus, int bus_num, uint8_t devfn) in pci_find_device() argument
2206 bus = pci_find_bus_nr(bus, bus_num); in pci_find_device()
2208 if (!bus) in pci_find_device()
2211 return bus->devices[devfn]; in pci_find_device()
2293 * associate only Device 0 with the device attached to the bus in pci_qdev_realize()
2313 "PCIExpress bus"); in pci_qdev_realize()
2374 bool pci_realize_and_unref(PCIDevice *dev, PCIBus *bus, Error **errp) in pci_realize_and_unref() argument
2376 return qdev_realize_and_unref(&dev->qdev, &bus->qbus, errp); in pci_realize_and_unref()
2379 PCIDevice *pci_create_simple_multifunction(PCIBus *bus, int devfn, in pci_create_simple_multifunction() argument
2383 pci_realize_and_unref(dev, bus, &error_fatal); in pci_create_simple_multifunction()
2387 PCIDevice *pci_create_simple(PCIBus *bus, int devfn, const char *name) in pci_create_simple() argument
2390 pci_realize_and_unref(dev, bus, &error_fatal); in pci_create_simple()
2739 * domain:Bus:Slot.Func for systems without nested PCI bridges. in pcibus_get_dev_path()
2781 static int pci_qdev_find_recursive(PCIBus *bus, in pci_qdev_find_recursive() argument
2784 DeviceState *qdev = qdev_find_recursive(&bus->qbus, id); in pci_qdev_find_recursive()
2803 int tmp = pci_qdev_find_recursive(host_bridge->bus, id, pdev); in pci_qdev_find_device()
2854 * Get IOMMU root bus, aliased bus and devfn of a PCI device
2856 * IOMMU root bus is needed by all call sites to call into iommu_ops.
2858 * aliased_[bus|devfn] is allowed.
2871 PCIBus *bus = pci_get_bus(dev); in pci_device_get_iommu_bus_devfn() local
2872 PCIBus *iommu_bus = bus; in pci_device_get_iommu_bus_devfn()
2889 * where the bridge uses the seconary bus as the bridge portion of the in pci_device_get_iommu_bus_devfn()
2905 bus = iommu_bus; in pci_device_get_iommu_bus_devfn()
2908 bus = parent_bus; in pci_device_get_iommu_bus_devfn()
2918 if (pci_bus_bypass_iommu(bus) || !iommu_bus->iommu_ops) { in pci_device_get_iommu_bus_devfn()
2925 *aliased_bus = bus; in pci_device_get_iommu_bus_devfn()
2935 PCIBus *bus; in pci_device_iommu_address_space() local
2939 pci_device_get_iommu_bus_devfn(dev, &iommu_bus, &bus, &devfn); in pci_device_iommu_address_space()
2941 return iommu_bus->iommu_ops->get_address_space(bus, in pci_device_iommu_address_space()
2950 PCIBus *bus; in pci_iommu_init_iotlb_notifier() local
2954 pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); in pci_iommu_init_iotlb_notifier()
2956 iommu_bus->iommu_ops->init_iotlb_notifier(bus, iommu_bus->iommu_opaque, in pci_iommu_init_iotlb_notifier()
2999 PCIBus *bus; in pci_pri_request_page() local
3012 pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); in pci_pri_request_page()
3014 return iommu_bus->iommu_ops->pri_request_page(bus, in pci_pri_request_page()
3027 PCIBus *bus; in pci_pri_register_notifier() local
3036 pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); in pci_pri_register_notifier()
3038 iommu_bus->iommu_ops->pri_register_notifier(bus, in pci_pri_register_notifier()
3049 PCIBus *bus; in pci_pri_unregister_notifier() local
3053 pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); in pci_pri_unregister_notifier()
3055 iommu_bus->iommu_ops->pri_unregister_notifier(bus, in pci_pri_unregister_notifier()
3068 PCIBus *bus; in pci_ats_request_translation() local
3085 pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); in pci_ats_request_translation()
3087 return iommu_bus->iommu_ops->ats_request_translation(bus, in pci_ats_request_translation()
3101 PCIBus *bus; in pci_iommu_register_iotlb_notifier() local
3109 pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); in pci_iommu_register_iotlb_notifier()
3111 iommu_bus->iommu_ops->register_iotlb_notifier(bus, in pci_iommu_register_iotlb_notifier()
3123 PCIBus *bus; in pci_iommu_unregister_iotlb_notifier() local
3131 pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); in pci_iommu_unregister_iotlb_notifier()
3133 iommu_bus->iommu_ops->unregister_iotlb_notifier(bus, in pci_iommu_unregister_iotlb_notifier()
3145 PCIBus *bus; in pci_iommu_get_iotlb_info() local
3149 pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); in pci_iommu_get_iotlb_info()
3159 void pci_setup_iommu(PCIBus *bus, const PCIIOMMUOps *ops, void *opaque) in pci_setup_iommu() argument
3163 * useful callbacks for the bus. in pci_setup_iommu()
3168 bus->iommu_ops = ops; in pci_setup_iommu()
3169 bus->iommu_opaque = opaque; in pci_setup_iommu()
3220 void pci_bus_get_w64_range(PCIBus *bus, Range *range) in pci_bus_get_w64_range() argument
3223 pci_for_each_device_under_bus(bus, pci_dev_get_w64, range); in pci_bus_get_w64_range()
3244 PCIBus *bus = pci_get_bus(pci_dev); in pci_get_function_0() local
3248 return bus->devices[0]; in pci_get_function_0()
3250 /* Other bus types might support multiple devices at slots 0-31 */ in pci_get_function_0()
3251 return bus->devices[PCI_DEVFN(PCI_SLOT(pci_dev->devfn), 0)]; in pci_get_function_0()