[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL for-2.6 08/14] pc-bios/s390-ccw: add simplified virti
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PULL for-2.6 08/14] pc-bios/s390-ccw: add simplified virtio call |
Date: |
Thu, 24 Mar 2016 09:29:57 +0100 |
From: "Eugene (jno) Dvurechenski" <address@hidden>
Add virtio_run(VirtioCmd) call to use simple declarative approach.
Signed-off-by: Eugene (jno) Dvurechenski <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
pc-bios/s390-ccw/virtio.c | 17 +++++++++++++++++
pc-bios/s390-ccw/virtio.h | 9 +++++++++
2 files changed, 26 insertions(+)
diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
index 56734af..4ab4d47 100644
--- a/pc-bios/s390-ccw/virtio.c
+++ b/pc-bios/s390-ccw/virtio.c
@@ -225,6 +225,23 @@ static int vring_wait_reply(void)
return 1;
}
+int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd)
+{
+ VRing *vr = &vdev->vrings[vqid];
+ int i = 0;
+
+ do {
+ vring_send_buf(vr, cmd[i].data, cmd[i].size,
+ cmd[i].flags | (i ? VRING_HIDDEN_IS_CHAIN : 0));
+ } while (cmd[i++].flags & VRING_DESC_F_NEXT);
+
+ vring_wait_reply();
+ if (drain_irqs(vr->schid)) {
+ return -1;
+ }
+ return 0;
+}
+
/***********************************************
* Virtio block *
***********************************************/
diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h
index 7b227db..57c71a2 100644
--- a/pc-bios/s390-ccw/virtio.h
+++ b/pc-bios/s390-ccw/virtio.h
@@ -248,4 +248,13 @@ typedef struct VDev VDev;
VDev *virtio_get_device(void);
VirtioDevType virtio_get_device_type(void);
+struct VirtioCmd {
+ void *data;
+ int size;
+ int flags;
+};
+typedef struct VirtioCmd VirtioCmd;
+
+int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd);
+
#endif /* VIRTIO_H */
--
2.7.4
- [Qemu-devel] [PULL for-2.6 00/14] s390-ccw bios patches, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 02/14] pc-bios/s390-ccw: virtio_panic -> panic, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 09/14] pc-bios/s390-ccw: add scsi definitions, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 08/14] pc-bios/s390-ccw: add simplified virtio call,
Cornelia Huck <=
- [Qemu-devel] [PULL for-2.6 10/14] pc-bios/s390-ccw: add virtio-scsi implementation, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 03/14] pc-bios/s390-ccw: add utility functions and "export" some others, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 11/14] pc-bios/s390-ccw: enable virtio-scsi, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 01/14] pc-bios/s390-ccw: add more disk layout checks, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 05/14] pc-bios/s390-ccw: update virtio implementation to allow up to 3 vrings, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 04/14] pc-bios/s390-ccw: qemuize types, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 07/14] pc-bios/s390-ccw: make provisions for different backends, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 12/14] pc-bios/s390-ccw: enhance bootmap detection, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 13/14] pc-bios/s390-ccw: disambiguation of "No zIPL magic" message, Cornelia Huck, 2016/03/24
- [Qemu-devel] [PULL for-2.6 14/14] s390-ccw.img: rebuild image, Cornelia Huck, 2016/03/24