Re: [PATCH 8/8] virtio_ring.h: do not include <stdint.h> from exported header

From: Michael S. Tsirkin
Date: Tue Apr 05 2022 - 19:34:39 EST


On Mon, Apr 04, 2022 at 12:44:30AM -0700, Christoph Hellwig wrote:
> On Mon, Apr 04, 2022 at 03:19:48PM +0900, Masahiro Yamada wrote:
> > vr->num = num;
> > vr->desc = p;
> > vr->avail = (struct vring_avail *)((char *)p + num * sizeof(struct vring_desc));
> > - vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16)
> > + vr->used = (void *)(((__kernel_uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16)
> > + align-1) & ~(align - 1));
>
> This really does not look like it should be in a uapi header to start
> with.

It's a way to document a complex structure layout of virtio 0.9. It's
ugly but it's been like this for years. For virtio 1.0 we moved away
from this but a bunch of tools keep using legacy.

--
MST