On Mon, Aug 25, 2014 at 10:36:08AM +0200, Marc Marí wrote: > +static uint16_t qvirtio_pci_config_readw(QVirtioDevice *d, void *addr) > +{ > + QVirtioPCIDevice *dev = (QVirtioPCIDevice *)d; > + return qpci_io_readw(dev->pdev, addr); > +} > + > +static uint32_t qvirtio_pci_config_readl(QVirtioDevice *d, void *addr) > +{ > + QVirtioPCIDevice *dev = (QVirtioPCIDevice *)d; > + return qpci_io_readl(dev->pdev, addr); > +} > + > +static uint64_t qvirtio_pci_config_readq(QVirtioDevice *d, void *addr) > +{ > + QVirtioPCIDevice *dev = (QVirtioPCIDevice *)d; > + int i; > + union { > + uint8_t bytes[8]; > + uint64_t u64; > + } quad; > + > + for (i = 0; i < 8; ++i) { > + quad.bytes[i] = qpci_io_readb(dev->pdev, addr + i); > + } > + > + return quad.u64; > +}
readw and readl are in host CPU endianness. readq is in guest CPU endianness. Please use qtest readq so that endianness is consistent.
pgpboiBXkJ3zp.pgp
Description: PGP signature