static inline bool qvirtio_pci_is_big_endian(QVirtioPCIDevice *dev) { QPCIBus *bus = dev->pdev->bus; /* FIXME: virtio 1.0 is always little-endian */ return qtest_big_endian(bus->qts); }
static uint64_t qvirtio_pci_config_readq(QVirtioDevice *d, uint64_t addr) { QVirtioPCIDevice *dev = (QVirtioPCIDevice *)d; int i; uint64_t u64 = 0; if (qtest_big_endian()) { for (i = 0; i < 8; ++i) { u64 |= (uint64_t)qpci_io_readb(dev->pdev, (void *)(uintptr_t)addr + i) << (7 - i) * 8; } } else { for (i = 0; i < 8; ++i) { u64 |= (uint64_t)qpci_io_readb(dev->pdev, (void *)(uintptr_t)addr + i) << i * 8; } } return u64; }