static int virtio_mmio_read(struct virtio_mmio_dev *m, u32 offset, u32 *dst) { /* Device specific config write */ if (offset >= VMM_VIRTIO_MMIO_CONFIG) { offset -= VMM_VIRTIO_MMIO_CONFIG; return vmm_virtio_config_read(&m->dev, offset, dst, 4); } return virtio_mmio_config_read(m, offset, dst, 4); }
static int virtio_mmio_read(struct vmm_emudev *edev, physical_addr_t offset, void *dst, u32 dst_len) { struct virtio_mmio_dev *m = edev->priv; /* Device specific config write */ if (offset >= VIRTIO_MMIO_CONFIG) { offset -= VIRTIO_MMIO_CONFIG; return virtio_config_read(&m->dev, (u32)offset, dst, dst_len); } return virtio_mmio_config_read(m, (u32)offset, dst, dst_len); }