Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b28e0506 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

virtio_ring: document alignment requirements



Host needs to know vring element alignment requirements:
simply doing alignof on structures doesn't work reliably: on some
platforms gcc has alignof(uint32_t) == 2.

Add macros for alignment as specified in virtio 1.0 cs01,
export them to userspace as well.

Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent b7392d22
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -101,6 +101,13 @@ struct vring {
	struct vring_used *used;
};

/* Alignment requirements for vring elements.
 * When using pre-virtio 1.0 layout, these fall out naturally.
 */
#define VRING_AVAIL_ALIGN_SIZE 2
#define VRING_USED_ALIGN_SIZE 4
#define VRING_DESC_ALIGN_SIZE 16

/* The standard layout for the ring is a continuous chunk of memory which looks
 * like this.  We assume num is a power of 2.
 *