Lines Matching refs:bar

1167 static void vfio_sub_page_bar_update_mapping(PCIDevice *pdev, int bar)  in vfio_sub_page_bar_update_mapping()  argument
1170 VFIORegion *region = &vdev->bars[bar].region; in vfio_sub_page_bar_update_mapping()
1182 r = &pdev->io_regions[bar]; in vfio_sub_page_bar_update_mapping()
1184 base_mr = vdev->bars[bar].mr; in vfio_sub_page_bar_update_mapping()
1196 if (vdev->bars[bar].size < size) { in vfio_sub_page_bar_update_mapping()
1201 if (size != vdev->bars[bar].size && memory_region_is_mapped(base_mr)) { in vfio_sub_page_bar_update_mapping()
1296 int bar; in vfio_pci_write_config() local
1298 for (bar = 0; bar < PCI_ROM_SLOT; bar++) { in vfio_pci_write_config()
1299 old_addr[bar] = pdev->io_regions[bar].addr; in vfio_pci_write_config()
1304 for (bar = 0; bar < PCI_ROM_SLOT; bar++) { in vfio_pci_write_config()
1305 if (old_addr[bar] != pdev->io_regions[bar].addr && in vfio_pci_write_config()
1306 vdev->bars[bar].region.size > 0 && in vfio_pci_write_config()
1307 vdev->bars[bar].region.size < qemu_real_host_page_size()) { in vfio_pci_write_config()
1308 vfio_sub_page_bar_update_mapping(pdev, bar); in vfio_pci_write_config()
1725 VFIOBAR *bar = &vdev->bars[nr]; in vfio_bar_prepare() local
1731 if (!bar->region.size) { in vfio_bar_prepare()
1744 bar->ioport = (pci_bar & PCI_BASE_ADDRESS_SPACE_IO); in vfio_bar_prepare()
1745 bar->mem64 = bar->ioport ? 0 : (pci_bar & PCI_BASE_ADDRESS_MEM_TYPE_64); in vfio_bar_prepare()
1746 bar->type = pci_bar & (bar->ioport ? ~PCI_BASE_ADDRESS_IO_MASK : in vfio_bar_prepare()
1748 bar->size = bar->region.size; in vfio_bar_prepare()
1762 VFIOBAR *bar = &vdev->bars[nr]; in vfio_bar_register() local
1765 if (!bar->size) { in vfio_bar_register()
1769 bar->mr = g_new0(MemoryRegion, 1); in vfio_bar_register()
1771 memory_region_init_io(bar->mr, OBJECT(vdev), NULL, NULL, name, bar->size); in vfio_bar_register()
1774 if (bar->region.size) { in vfio_bar_register()
1775 memory_region_add_subregion(bar->mr, 0, bar->region.mem); in vfio_bar_register()
1777 if (vfio_region_mmap(&bar->region)) { in vfio_bar_register()
1783 pci_register_bar(&vdev->pdev, nr, bar->type, bar->mr); in vfio_bar_register()
1800 VFIOBAR *bar = &vdev->bars[i]; in vfio_bars_exit() local
1803 vfio_region_exit(&bar->region); in vfio_bars_exit()
1804 if (bar->region.size) { in vfio_bars_exit()
1805 memory_region_del_subregion(bar->mr, bar->region.mem); in vfio_bars_exit()
1820 VFIOBAR *bar = &vdev->bars[i]; in vfio_bars_finalize() local
1823 vfio_region_finalize(&bar->region); in vfio_bars_finalize()
1824 if (bar->mr) { in vfio_bars_finalize()
1825 assert(bar->size); in vfio_bars_finalize()
1826 object_unparent(OBJECT(bar->mr)); in vfio_bars_finalize()
1827 g_free(bar->mr); in vfio_bars_finalize()
1828 bar->mr = NULL; in vfio_bars_finalize()
2734 int bar, ret; in vfio_pci_load_config() local
2736 for (bar = 0; bar < PCI_ROM_SLOT; bar++) { in vfio_pci_load_config()
2737 old_addr[bar] = pdev->io_regions[bar].addr; in vfio_pci_load_config()
2748 for (bar = 0; bar < PCI_ROM_SLOT; bar++) { in vfio_pci_load_config()
2753 if (old_addr[bar] != pdev->io_regions[bar].addr && in vfio_pci_load_config()
2754 vdev->bars[bar].region.size > 0 && in vfio_pci_load_config()
2755 vdev->bars[bar].region.size < qemu_real_host_page_size()) { in vfio_pci_load_config()
2756 vfio_sub_page_bar_update_mapping(pdev, bar); in vfio_pci_load_config()