return true;
}
-static struct pci_device_header no_device = {
- .vendor_id = 0xffff,
- .device_id = 0xffff,
- .revision_id = 0xff,
- .class = 0xffffff,
-};
-
#define PCI_VENDOR_ID_REDHAT_QUMRANET 0x1af4
#define PCI_DEVICE_ID_VIRTIO_BLK 0x1001
static bool pci_config_data_in(struct kvm *self, uint16_t port, void *data, int size, uint32_t count)
{
- void *p;
-
- if (pci_device_matches(0, 1, 0))
- p = &virtio_device;
- else
- p = &no_device;
+ if (pci_device_matches(0, 1, 0)) {
+ void *p = &virtio_device;
- memcpy(data, p + (pci_config_address.register_number * 4), size);
+ memcpy(data, p + pci_config_address.register_number, size);
+ } else
+ memset(data, 0xff, size);
return true;
}