diff options
Diffstat (limited to 'middleware/multicore/open-amp/virtio/virtio_ring.h')
-rw-r--r-- | middleware/multicore/open-amp/virtio/virtio_ring.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/middleware/multicore/open-amp/virtio/virtio_ring.h b/middleware/multicore/open-amp/virtio/virtio_ring.h index fc3eb08..7a861f3 100644 --- a/middleware/multicore/open-amp/virtio/virtio_ring.h +++ b/middleware/multicore/open-amp/virtio/virtio_ring.h @@ -38,7 +38,7 @@ /* This marks a buffer as write-only (otherwise read-only). */ #define VRING_DESC_F_WRITE 2 /* This means the buffer contains a list of buffer descriptors. */ -#define VRING_DESC_F_INDIRECT 4 /*not used?*/ +#define VRING_DESC_F_INDIRECT 4 /* The Host uses this in used->flags to advise the Guest: don't kick me * when you add a buffer. It's unreliable, so it's simply an @@ -65,7 +65,7 @@ struct vring_desc { struct vring_avail { uint16_t flags; uint16_t idx; - uint16_t ring[0]; + uint16_t ring[1]; }; /* uint32_t is used here for ids for padding reasons. */ @@ -79,7 +79,7 @@ struct vring_used_elem { struct vring_used { uint16_t flags; uint16_t idx; - struct vring_used_elem ring[0]; + struct vring_used_elem ring[1]; }; struct vring { @@ -121,7 +121,7 @@ struct vring { * versa. They are at the end for backwards compatibility. */ #define vring_used_event(vr) ((vr)->avail->ring[(vr)->num]) -#define vring_avail_event(vr) ((vr)->used->ring[(vr)->num].id & 0xFFFF) +#define vring_avail_event(vr) ((vr)->used->ring[(vr)->num].id & 0xFFFF) static inline int vring_size(unsigned int num, unsigned long align) @@ -145,7 +145,7 @@ vring_init(struct vring *vr, unsigned int num, uint8_t *p, vr->desc = (struct vring_desc *) p; vr->avail = (struct vring_avail *) (p + num * sizeof(struct vring_desc)); - vr->used = (void *) + vr->used = (struct vring_used *) (((unsigned long) &vr->avail->ring[num] + align-1) & ~(align-1)); } |