diff options
| author | Anthony Liguori <aliguori@us.ibm.com> | 2013-01-14 10:23:50 -0600 |
|---|---|---|
| committer | Anthony Liguori <aliguori@us.ibm.com> | 2013-01-14 10:23:50 -0600 |
| commit | 8e9a8681dd6066e4f79ba85b59deedb4d3d11aa2 (patch) | |
| tree | c14ddf30842e64285294a8deda7ac41218bb1ab0 /hw/virtio.h | |
| parent | 7adef3bc5a195d483987469fc80fbbe4a25a5b9d (diff) | |
| parent | feb9a2ab4b0260d8d680a7ffd25063dafc7ec628 (diff) | |
| download | focaccia-qemu-8e9a8681dd6066e4f79ba85b59deedb4d3d11aa2.tar.gz focaccia-qemu-8e9a8681dd6066e4f79ba85b59deedb4d3d11aa2.zip | |
Merge remote-tracking branch 'mst/tags/for_anthony' into staging
pci,virtio This further optimizes MSIX handling in virtio-pci. Also included is pci cleanup by Paolo, and pci device assignment fix by Alex. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> * mst/tags/for_anthony: pci-assign: Enable MSIX on device to match guest pci: use constants for devices under the 1B36 device ID, document them ivshmem: use symbolic constant for PCI ID, add to pci-ids.txt virtio-9p: use symbolic constant, add to pci-ids.txt reorganize pci-ids.txt docs: move pci-ids.txt to docs/specs/ vhost: backend masking support vhost: set started flag while start is in progress virtio-net: set/clear vhost_started in reverse order virtio: backend virtqueue notifier masking virtio-pci: cache msix messages kvm: add stub for update msi route msix: add api to access msix message virtio: don't waste irqfds on control vqs
Diffstat (limited to 'hw/virtio.h')
| -rw-r--r-- | hw/virtio.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/hw/virtio.h b/hw/virtio.h index 1dec9dce07..b9f1873fd6 100644 --- a/hw/virtio.h +++ b/hw/virtio.h @@ -99,7 +99,7 @@ typedef struct { int (*load_done)(DeviceState *d, QEMUFile *f); unsigned (*get_features)(DeviceState *d); bool (*query_guest_notifiers)(DeviceState *d); - int (*set_guest_notifiers)(DeviceState *d, bool assigned); + int (*set_guest_notifiers)(DeviceState *d, int nvqs, bool assigned); int (*set_host_notifier)(DeviceState *d, int n, bool assigned); void (*vmstate_change)(DeviceState *d, bool running); } VirtIOBindings; @@ -126,6 +126,19 @@ struct VirtIODevice void (*set_config)(VirtIODevice *vdev, const uint8_t *config); void (*reset)(VirtIODevice *vdev); void (*set_status)(VirtIODevice *vdev, uint8_t val); + /* Test and clear event pending status. + * Should be called after unmask to avoid losing events. + * If backend does not support masking, + * must check in frontend instead. + */ + bool (*guest_notifier_pending)(VirtIODevice *vdev, int n); + /* Mask/unmask events from this vq. Any events reported + * while masked will become pending. + * If backend does not support masking, + * must mask in frontend instead. + */ + void (*guest_notifier_mask)(VirtIODevice *vdev, int n, bool mask); + VirtQueue *vq; const VirtIOBindings *binding; DeviceState *binding_opaque; |