From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: "Eugenio Pérez" <eperezma@redhat.com>
Cc: mst@redhat.com, david.marchand@redhat.com, dev@dpdk.org,
Yongji Xie <xieyongji@bytedance.com>,
chenbox@nvidia.com, Bruce Richardson <bruce.richardson@intel.com>,
Stephen Hemminger <stephen@networkplumber.org>,
jasowangio@gmail.com
Subject: Re: [PATCH v3 1/9] uapi: import VDUSE and VFIO header from v7.3-rc5 kernel
Date: Tue, 29 Sep 2026 13:41:04 +0200 [thread overview]
Message-ID: <cf04bec1-1845-487a-9336-fe83b960b7c6@redhat.com> (raw)
In-Reply-To: <20260929105339.1554051-2-eperezma@redhat.com>
On 9/29/26 12:53 PM, Eugenio Pérez wrote:
> This header will be used by the Vhost library.
>
> Including also uapi/linux/stddef.h, which defines __counted_by if the
> compiler does not support it.
>
> Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
> ---
> kernel/linux/uapi/linux/stddef.h | 85 +++++++++++++++++++++++
> kernel/linux/uapi/linux/vduse.h | 115 +++++++++++++++++++++++++++++--
> kernel/linux/uapi/linux/vfio.h | 91 +++++++++++++++++++++++-
> kernel/linux/uapi/version | 2 +-
> 4 files changed, 284 insertions(+), 9 deletions(-)
> create mode 100644 kernel/linux/uapi/linux/stddef.h
>
> diff --git a/kernel/linux/uapi/linux/stddef.h b/kernel/linux/uapi/linux/stddef.h
> new file mode 100644
> index 000000000000..3d238e09c8f8
> --- /dev/null
> +++ b/kernel/linux/uapi/linux/stddef.h
> @@ -0,0 +1,85 @@
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> +#ifndef _LINUX_STDDEF_H
> +#define _LINUX_STDDEF_H
> +
> +#ifdef __KERNEL__
> +#include <linux/compiler_types.h>
> +#endif
> +
> +#ifndef __always_inline
> +#define __always_inline inline
> +#endif
> +
> +/* Not all C++ standards support type declarations inside an anonymous union */
> +#ifndef __cplusplus
> +#define __struct_group_tag(TAG) TAG
> +#else
> +#define __struct_group_tag(TAG)
> +#endif
> +
> +/**
> + * __struct_group() - Create a mirrored named and anonyomous struct
> + *
> + * @TAG: The tag name for the named sub-struct (usually empty)
> + * @NAME: The identifier name of the mirrored sub-struct
> + * @ATTRS: Any struct attributes (usually empty)
> + * @MEMBERS: The member declarations for the mirrored structs
> + *
> + * Used to create an anonymous union of two structs with identical layout
> + * and size: one anonymous and one named. The former's members can be used
> + * normally without sub-struct naming, and the latter can be used to
> + * reason about the start, end, and size of the group of struct members.
> + * The named struct can also be explicitly tagged for layer reuse (C only),
> + * as well as both having struct attributes appended.
> + */
> +#define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \
> + union { \
> + struct { MEMBERS } ATTRS; \
> + struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; \
> + } ATTRS
> +
> +#ifdef __cplusplus
> +/* sizeof(struct{}) is 1 in C++, not 0, can't use C version of the macro. */
> +#define __DECLARE_FLEX_ARRAY(T, member) \
> + T member[0]
> +#else
> +/**
> + * __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union
> + *
> + * @TYPE: The type of each flexible array element
> + * @NAME: The name of the flexible array member
> + *
> + * In order to have a flexible array member in a union or alone in a
> + * struct, it needs to be wrapped in an anonymous struct with at least 1
> + * named member, but that member can be empty.
> + */
> +#define __DECLARE_FLEX_ARRAY(TYPE, NAME) \
> + struct { \
> + struct { } __empty_ ## NAME; \
> + TYPE NAME[]; \
> + }
> +#endif
> +
> +#ifndef __counted_by
> +#define __counted_by(m)
> +#endif
> +
> +#ifndef __counted_by_le
> +#define __counted_by_le(m)
> +#endif
> +
> +#ifndef __counted_by_be
> +#define __counted_by_be(m)
> +#endif
> +
> +#ifndef __counted_by_ptr
> +#define __counted_by_ptr(m)
> +#endif
> +
> +#ifdef __KERNEL__
> +#define __kernel_nonstring __nonstring
> +#else
> +#define __kernel_nonstring
> +#endif
> +
> +#endif /* _LINUX_STDDEF_H */
Not give my R-by right now as this is imported from a release candidate,
but it looks good to me.
Thanks,
Maxime
next prev parent reply other threads:[~2026-09-29 11:41 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-29 10:53 [PATCH v3 0/9] Add vduse live migration features Eugenio Pérez
2026-09-29 10:53 ` [PATCH v3 1/9] uapi: import VDUSE and VFIO header from v7.3-rc5 kernel Eugenio Pérez
2026-09-29 11:41 ` Maxime Coquelin [this message]
2026-09-29 14:38 ` David Marchand
2026-09-29 10:53 ` [PATCH v3 2/9] vhost: introduce ASID support Eugenio Pérez
2026-09-29 12:08 ` Maxime Coquelin
2026-09-29 10:53 ` [PATCH v3 3/9] vhost: add VDUSE API version negotiation Eugenio Pérez
2026-09-29 12:28 ` Maxime Coquelin
2026-09-29 10:53 ` [PATCH v3 4/9] vhost: add virtqueues groups support to VDUSE Eugenio Pérez
2026-09-29 12:42 ` Maxime Coquelin
2026-09-29 10:53 ` [PATCH v3 5/9] vhost: add ASID support to VDUSE IOTLB operations Eugenio Pérez
2026-09-29 12:56 ` Maxime Coquelin
2026-09-29 10:53 ` [PATCH v3 6/9] vhost: claim VDUSE support for API version 1 Eugenio Pérez
2026-09-29 13:12 ` Maxime Coquelin
2026-09-29 10:53 ` [PATCH v3 7/9] vhost: add net status feature to VDUSE Eugenio Pérez
2026-09-29 13:27 ` Maxime Coquelin
2026-09-29 10:53 ` [PATCH v3 8/9] vhost: Support VDUSE QUEUE_READY feature Eugenio Pérez
2026-09-29 14:25 ` Maxime Coquelin
2026-09-29 10:53 ` [PATCH v3 9/9] vhost: Support vduse suspend feature Eugenio Pérez
2026-09-29 12:13 ` Maxime Coquelin
2026-10-03 9:54 ` [PATCH v3 0/9] Add vduse live migration features David Marchand
2026-10-05 8:11 ` Maxime Coquelin
2026-10-05 10:09 ` Eugenio Perez Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cf04bec1-1845-487a-9336-fe83b960b7c6@redhat.com \
--to=maxime.coquelin@redhat.com \
--cc=bruce.richardson@intel.com \
--cc=chenbox@nvidia.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=eperezma@redhat.com \
--cc=jasowangio@gmail.com \
--cc=mst@redhat.com \
--cc=stephen@networkplumber.org \
--cc=xieyongji@bytedance.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox