Displaying 20 results from an estimated 62 matches for "virtio_config_writel".
2015 Mar 02
4
[PATCH 1/2] virtio: add modern config accessors
...hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -227,6 +227,12 @@ uint32_t virtio_config_readl(VirtIODevice *vdev, uint32_t addr);
void virtio_config_writeb(VirtIODevice *vdev, uint32_t addr, uint32_t data);
void virtio_config_writew(VirtIODevice *vdev, uint32_t addr, uint32_t data);
void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data);
+uint32_t virtio_config_modern_readb(VirtIODevice *vdev, uint32_t addr);
+uint32_t virtio_config_modern_readw(VirtIODevice *vdev, uint32_t addr);
+uint32_t virtio_config_modern_readl(VirtIODevice *vdev, uint32_t addr);
+void virtio_config_modern_wr...
2015 Mar 02
4
[PATCH 1/2] virtio: add modern config accessors
...hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -227,6 +227,12 @@ uint32_t virtio_config_readl(VirtIODevice *vdev, uint32_t addr);
void virtio_config_writeb(VirtIODevice *vdev, uint32_t addr, uint32_t data);
void virtio_config_writew(VirtIODevice *vdev, uint32_t addr, uint32_t data);
void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data);
+uint32_t virtio_config_modern_readb(VirtIODevice *vdev, uint32_t addr);
+uint32_t virtio_config_modern_readw(VirtIODevice *vdev, uint32_t addr);
+uint32_t virtio_config_modern_readl(VirtIODevice *vdev, uint32_t addr);
+void virtio_config_modern_wr...
2015 Feb 25
0
Qemu and virtio 1.0
...o 1.0 is always LE */
+ if (virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) {
+ stw_le_p(vdev->config + addr, val);
+ } else {
+ stw_p(vdev->config + addr, val);
+ }
if (k->set_config) {
k->set_config(vdev, vdev->config);
@@ -722,7 +737,12 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
return;
}
- stl_p(vdev->config + addr, val);
+ /* Virtio 1.0 is always LE */
+ if (virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) {
+ stl_le_p(vdev->config + addr, val);
+ } else {
+ stl_p(vdev->conf...
2015 Mar 02
0
[PATCH 2/2] virtio-pci: switch to modern accessors for 1.0
...itch (size) {
case 1:
- virtio_config_writeb(vdev, addr, val);
+ virtio_config_modern_writeb(vdev, addr, val);
break;
case 2:
- virtio_config_writew(vdev, addr, val);
+ virtio_config_modern_writew(vdev, addr, val);
break;
case 4:
- virtio_config_writel(vdev, addr, val);
+ virtio_config_modern_writel(vdev, addr, val);
break;
}
}
--
MST
2015 Feb 25
0
Qemu and virtio 1.0
...o 1.0 is always LE */
+ if (virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) {
+ stw_le_p(vdev->config + addr, val);
+ } else {
+ stw_p(vdev->config + addr, val);
+ }
if (k->set_config) {
k->set_config(vdev, vdev->config);
@@ -722,7 +737,12 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
return;
}
- stl_p(vdev->config + addr, val);
+ /* Virtio 1.0 is always LE */
+ if (virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) {
+ stl_le_p(vdev->config + addr, val);
+ } else {
+ stl_p(vdev->conf...
2015 Mar 02
0
[PATCH 2/2] virtio-pci: switch to modern accessors for 1.0
...itch (size) {
case 1:
- virtio_config_writeb(vdev, addr, val);
+ virtio_config_modern_writeb(vdev, addr, val);
break;
case 2:
- virtio_config_writew(vdev, addr, val);
+ virtio_config_modern_writew(vdev, addr, val);
break;
case 4:
- virtio_config_writel(vdev, addr, val);
+ virtio_config_modern_writel(vdev, addr, val);
break;
}
}
--
MST
2013 May 28
3
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...uint64_t val, unsigned size)
+{
+ VirtIOPCIProxy *proxy = opaque;
+ switch (size) {
+ case 1:
+ virtio_config_writeb(proxy->vdev, addr, val);
+ break;
+ case 2:
+ virtio_config_writew(proxy->vdev, addr, val);
+ break;
+ case 4:
+ virtio_config_writel(proxy->vdev, addr, val);
+ break;
+ }
+}
+
static const MemoryRegionOps virtio_pci_config_ops = {
.read = virtio_pci_config_read,
.write = virtio_pci_config_write,
@@ -465,6 +692,46 @@ static const MemoryRegionOps virtio_pci_config_ops = {
.endianness = DEVICE_LITTLE_EN...
2013 May 28
3
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...uint64_t val, unsigned size)
+{
+ VirtIOPCIProxy *proxy = opaque;
+ switch (size) {
+ case 1:
+ virtio_config_writeb(proxy->vdev, addr, val);
+ break;
+ case 2:
+ virtio_config_writew(proxy->vdev, addr, val);
+ break;
+ case 4:
+ virtio_config_writel(proxy->vdev, addr, val);
+ break;
+ }
+}
+
static const MemoryRegionOps virtio_pci_config_ops = {
.read = virtio_pci_config_read,
.write = virtio_pci_config_write,
@@ -465,6 +692,46 @@ static const MemoryRegionOps virtio_pci_config_ops = {
.endianness = DEVICE_LITTLE_EN...
2015 Mar 02
1
Qemu and virtio 1.0
...s_feature(vdev, VIRTIO_F_VERSION_1)) {
> + stw_le_p(vdev->config + addr, val);
> + } else {
> + stw_p(vdev->config + addr, val);
> + }
>
> if (k->set_config) {
> k->set_config(vdev, vdev->config);
> @@ -722,7 +737,12 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
> return;
> }
>
> - stl_p(vdev->config + addr, val);
> + /* Virtio 1.0 is always LE */
> + if (virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) {
> + stl_le_p(vdev->config + addr, val);
> +...
2015 Mar 02
1
Qemu and virtio 1.0
...s_feature(vdev, VIRTIO_F_VERSION_1)) {
> + stw_le_p(vdev->config + addr, val);
> + } else {
> + stw_p(vdev->config + addr, val);
> + }
>
> if (k->set_config) {
> k->set_config(vdev, vdev->config);
> @@ -722,7 +737,12 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
> return;
> }
>
> - stl_p(vdev->config + addr, val);
> + /* Virtio 1.0 is always LE */
> + if (virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) {
> + stl_le_p(vdev->config + addr, val);
> +...
2014 Dec 03
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
On Tue, 2 Dec 2014 21:03:45 +0200
"Michael S. Tsirkin" <mst at redhat.com> wrote:
> On Tue, Dec 02, 2014 at 04:41:36PM +0100, Cornelia Huck wrote:
> > void virtio_queue_set_num(VirtIODevice *vdev, int n, int num)
> > {
> > + /*
> > + * For virtio-1 devices, the number of buffers may only be
> > + * updated if the ring addresses have
2014 Dec 03
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
On Tue, 2 Dec 2014 21:03:45 +0200
"Michael S. Tsirkin" <mst at redhat.com> wrote:
> On Tue, Dec 02, 2014 at 04:41:36PM +0100, Cornelia Huck wrote:
> > void virtio_queue_set_num(VirtIODevice *vdev, int n, int num)
> > {
> > + /*
> > + * For virtio-1 devices, the number of buffers may only be
> > + * updated if the ring addresses have
2007 Dec 21
0
[Virtio-for-kvm] [PATCH 1/7] userspace virtio
...paque, uint32_t addr, uint32_t
data)
+{
+ VirtIODevice *vdev = opaque;
+ uint16_t val = data;
+
+ addr -= vdev->addr + VIRTIO_PCI_CONFIG;
+ if (addr > (vdev->config_len - sizeof(val)))
+ return;
+
+ memcpy(vdev->config + addr, &val, sizeof(val));
+}
+
+static void virtio_config_writel(void *opaque, uint32_t addr, uint32_t
data)
+{
+ VirtIODevice *vdev = opaque;
+ uint32_t val = data;
+
+ addr -= vdev->addr + VIRTIO_PCI_CONFIG;
+ if (addr > (vdev->config_len - sizeof(val)))
+ return;
+
+ memcpy(vdev->config + addr, &val, sizeof(val));
+}
+
+stat...
2007 Dec 21
0
[Virtio-for-kvm] [PATCH 1/7] userspace virtio
...paque, uint32_t addr, uint32_t
data)
+{
+ VirtIODevice *vdev = opaque;
+ uint16_t val = data;
+
+ addr -= vdev->addr + VIRTIO_PCI_CONFIG;
+ if (addr > (vdev->config_len - sizeof(val)))
+ return;
+
+ memcpy(vdev->config + addr, &val, sizeof(val));
+}
+
+static void virtio_config_writel(void *opaque, uint32_t addr, uint32_t
data)
+{
+ VirtIODevice *vdev = opaque;
+ uint32_t val = data;
+
+ addr -= vdev->addr + VIRTIO_PCI_CONFIG;
+ if (addr > (vdev->config_len - sizeof(val)))
+ return;
+
+ memcpy(vdev->config + addr, &val, sizeof(val));
+}
+
+stat...
2009 May 11
0
[PATCH 1/2] qemu-kvm: add MSI-X support
...addr < config) {
+ virtio_ioport_write(opaque, addr, val);
+ return;
+ }
+ addr -= config;
if (addr > (vdev->config_len - sizeof(val)))
return;
@@ -605,9 +666,15 @@ static void virtio_config_writew(void *opaque, uint32_t addr, uint32_t data)
static void virtio_config_writel(void *opaque, uint32_t addr, uint32_t data)
{
VirtIODevice *vdev = opaque;
+ uint32_t config = VIRTIO_PCI_CONFIG(&vdev->pci_dev);
uint32_t val = data;
- addr -= vdev->addr + VIRTIO_PCI_CONFIG;
+ addr -= vdev->addr;
+ if (addr < config) {
+ virtio_iopo...
2009 May 11
0
[PATCH 1/2] qemu-kvm: add MSI-X support
...addr < config) {
+ virtio_ioport_write(opaque, addr, val);
+ return;
+ }
+ addr -= config;
if (addr > (vdev->config_len - sizeof(val)))
return;
@@ -605,9 +666,15 @@ static void virtio_config_writew(void *opaque, uint32_t addr, uint32_t data)
static void virtio_config_writel(void *opaque, uint32_t addr, uint32_t data)
{
VirtIODevice *vdev = opaque;
+ uint32_t config = VIRTIO_PCI_CONFIG(&vdev->pci_dev);
uint32_t val = data;
- addr -= vdev->addr + VIRTIO_PCI_CONFIG;
+ addr -= vdev->addr;
+ if (addr < config) {
+ virtio_iopo...
2013 May 28
0
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...+ VirtIOPCIProxy *proxy = opaque;
> + switch (size) {
> + case 1:
> + virtio_config_writeb(proxy->vdev, addr, val);
> + break;
> + case 2:
> + virtio_config_writew(proxy->vdev, addr, val);
> + break;
> + case 4:
> + virtio_config_writel(proxy->vdev, addr, val);
> + break;
> + }
> +}
> +
> static const MemoryRegionOps virtio_pci_config_ops = {
> .read = virtio_pci_config_read,
> .write = virtio_pci_config_write,
> @@ -465,6 +692,46 @@ static const MemoryRegionOps virtio_pci_config_ops...
2014 Dec 11
0
[PATCH RFC v6 07/20] virtio: allow virtio-1 queue layout
...il = 0;
vdev->vq[i].vring.used = 0;
vdev->vq[i].last_avail_idx = 0;
- vdev->vq[i].pa = 0;
vdev->vq[i].vector = VIRTIO_NO_VECTOR;
vdev->vq[i].signalled_used = 0;
vdev->vq[i].signalled_used_valid = false;
@@ -708,13 +709,21 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
void virtio_queue_set_addr(VirtIODevice *vdev, int n, hwaddr addr)
{
- vdev->vq[n].pa = addr;
- virtqueue_init(&vdev->vq[n]);
+ vdev->vq[n].vring.desc = addr;
+ virtio_queue_update_rings(vdev, n);
}
hwaddr virtio_que...
2014 Dec 11
0
[PATCH RFC v6 07/20] virtio: allow virtio-1 queue layout
...il = 0;
vdev->vq[i].vring.used = 0;
vdev->vq[i].last_avail_idx = 0;
- vdev->vq[i].pa = 0;
vdev->vq[i].vector = VIRTIO_NO_VECTOR;
vdev->vq[i].signalled_used = 0;
vdev->vq[i].signalled_used_valid = false;
@@ -708,13 +709,21 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
void virtio_queue_set_addr(VirtIODevice *vdev, int n, hwaddr addr)
{
- vdev->vq[n].pa = addr;
- virtqueue_init(&vdev->vq[n]);
+ vdev->vq[n].vring.desc = addr;
+ virtio_queue_update_rings(vdev, n);
}
hwaddr virtio_que...
2014 Dec 03
0
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...il = 0;
vdev->vq[i].vring.used = 0;
vdev->vq[i].last_avail_idx = 0;
- vdev->vq[i].pa = 0;
vdev->vq[i].vector = VIRTIO_NO_VECTOR;
vdev->vq[i].signalled_used = 0;
vdev->vq[i].signalled_used_valid = false;
@@ -708,13 +709,21 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
void virtio_queue_set_addr(VirtIODevice *vdev, int n, hwaddr addr)
{
- vdev->vq[n].pa = addr;
- virtqueue_init(&vdev->vq[n]);
+ vdev->vq[n].vring.desc = addr;
+ virtio_queue_update_rings(vdev, n);
}
hwaddr virtio_que...