summary refs log tree commit diff stats
path: root/hw/virtio.c
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@linux.vnet.ibm.com>2011-09-13 13:34:37 +0100
committerBlue Swirl <blauwirbel@gmail.com>2011-09-17 15:14:24 +0000
commit4e1837f855b88fdced2941b17509e13b0c8fa518 (patch)
tree55a661085c835405fed67c2d2731b62417d8addf /hw/virtio.c
parent689d7e2fadb27d696528eb1f86eb3e3e19e07761 (diff)
downloadfocaccia-qemu-4e1837f855b88fdced2941b17509e13b0c8fa518.tar.gz
focaccia-qemu-4e1837f855b88fdced2941b17509e13b0c8fa518.zip
trace: add virtio_set_status() trace event
The virtio device lifecycle can be observed by looking at the sequence
of set status operations.  This is especially important for catching the
reset operation (status value 0), which resets the device and all
virtqueues.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw/virtio.c')
-rw-r--r--hw/virtio.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/hw/virtio.c b/hw/virtio.c
index 13aa0faf27..946d911580 100644
--- a/hw/virtio.c
+++ b/hw/virtio.c
@@ -498,6 +498,16 @@ void virtio_update_irq(VirtIODevice *vdev)
     virtio_notify_vector(vdev, VIRTIO_NO_VECTOR);
 }
 
+void virtio_set_status(VirtIODevice *vdev, uint8_t val)
+{
+    trace_virtio_set_status(vdev, val);
+
+    if (vdev->set_status) {
+        vdev->set_status(vdev, val);
+    }
+    vdev->status = val;
+}
+
 void virtio_reset(void *opaque)
 {
     VirtIODevice *vdev = opaque;