Skip to content

Commit

Permalink
virtio: basic structure for packed ring
Browse files Browse the repository at this point in the history
Define packed ring structure according to Qemu nomenclature,
field data(wrap counter, etc) are also included.

Signed-off-by: Wei Xu <wexu@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
Message-Id: <20191025083527.30803-2-eperezma@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
  • Loading branch information
Wei Xu authored and mstsirkin committed Oct 25, 2019
1 parent 58560ad commit a40dcec
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions hw/virtio/virtio.c
Expand Up @@ -43,6 +43,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;
Expand Down Expand Up @@ -81,17 +88,25 @@ typedef struct VRing
VRingMemoryRegionCaches *caches;
} VRing;

typedef struct VRingPackedDescEvent {
uint16_t off_wrap;
uint16_t flags;
} VRingPackedDescEvent ;

struct VirtQueue
{
VRing vring;

/* Next head to pop */
uint16_t last_avail_idx;
bool last_avail_wrap_counter;

/* Last avail_idx read from VQ. */
uint16_t shadow_avail_idx;
bool shadow_avail_wrap_counter;

uint16_t used_idx;
bool used_wrap_counter;

/* Last used index value we have signalled on */
uint16_t signalled_used;
Expand Down

0 comments on commit a40dcec

Please sign in to comment.