DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
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


  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