Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Jun 2025 22:23:55 GMT
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 6573b7db7143 - stable/14 - LinuxKPI: add struct_group_tagged()
Message-ID:  <202506042223.554MNtxd037782@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=6573b7db71438f852fb80f10b3f5539f596f23f8

commit 6573b7db71438f852fb80f10b3f5539f596f23f8
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-05-02 20:10:38 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-06-04 22:23:31 +0000

    LinuxKPI: add struct_group_tagged()
    
    Restructure struct_group() into a wrapper around __struct_group().
    Various callers have arguments annotated as /* no foo */ so try to
    add all we can find.
    
    Sponsored by:   The FreeBSD Foundation
    Reviewed by:    dumbbell
    Differential Revision: https://reviews.freebsd.org/D50157
    
    (cherry picked from commit 54d0e1772fb6b83d72725764e0a5d3ead8337673)
---
 sys/compat/linuxkpi/common/include/linux/stddef.h | 26 ++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/sys/compat/linuxkpi/common/include/linux/stddef.h b/sys/compat/linuxkpi/common/include/linux/stddef.h
index a3bc6b13765e..d04a5a4bf516 100644
--- a/sys/compat/linuxkpi/common/include/linux/stddef.h
+++ b/sys/compat/linuxkpi/common/include/linux/stddef.h
@@ -5,11 +5,27 @@
 
 #include <sys/stddef.h>
 
-#define	struct_group(NAME, ...)						\
+/*
+ * FreeBSD has multiple (vendor) drivers containing copies of this
+ * and including LinuxKPI headers.  Put the #defines behind guards.
+ */
+
+#ifndef __struct_group
+#define	__struct_group(_tag, _name, _attrs, _members...)		\
     union {								\
-	struct { __VA_ARGS__ };						\
-	struct { __VA_ARGS__ } NAME;					\
-    }
+	struct { _members } _attrs;					\
+	struct _tag { _members } _attrs _name;				\
+    } _attrs
+#endif
 
-#endif	/* _LINUXKPI_LINUX_STDDEF_H_ */
+#ifndef	struct_group
+#define	struct_group(_name, _members...)				\
+    __struct_group(/* no tag */, _name, /* no attrs */, _members)
+#endif
 
+#ifndef	struct_group_tagged
+#define	struct_group_tagged(_tag, _name, _members...)			\
+    __struct_group(_tag, _name, /* no attrs */, _members)
+#endif
+
+#endif	/* _LINUXKPI_LINUX_STDDEF_H_ */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202506042223.554MNtxd037782>