From: Wei Xu <w...@redhat.com> Redefine packed ring structure according to Qemu nomenclature, field data(wrap counter, etc) are introduced also.
Signed-off-by: Wei Xu <w...@redhat.com> --- hw/virtio/virtio.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 4136d23..a8e737c 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -39,6 +39,13 @@ typedef struct VRingDesc uint16_t next; } VRingDesc; +typedef struct VRingPackedDesc { + uint64_t addr; + uint32_t len; + uint16_t id; + uint16_t flags; +} VRingPackedDesc; + typedef struct VRingAvail { uint16_t flags; @@ -77,6 +84,11 @@ typedef struct VRing VRingMemoryRegionCaches *caches; } VRing; +typedef struct VRingPackedDescEvent { + uint16_t off_wrap; + uint16_t flags; +} VRingPackedDescEvent ; + struct VirtQueue { VRing vring; @@ -87,7 +99,11 @@ struct VirtQueue /* Last avail_idx read from VQ. */ uint16_t shadow_avail_idx; + bool event_wrap_counter; + bool avail_wrap_counter; + uint16_t used_idx; + bool used_wrap_counter; /* Last used index value we have signalled on */ uint16_t signalled_used; -- 1.8.3.1