git: 46f3a29ee144 - main - sys/sysctl.h: FEATURE_ADD()

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Tue, 21 Nov 2023 12:29:06 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=46f3a29ee144a7d2e74c8b3d6c5c7b28562c29e2

commit 46f3a29ee144a7d2e74c8b3d6c5c7b28562c29e2
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-11-20 22:43:07 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-11-21 11:55:52 +0000

    sys/sysctl.h: FEATURE_ADD()
    
    A macro to dynamically register report of the kernel feature.
    
    Reviewed by:    markj
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D42641
---
 sys/sys/sysctl.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/sys/sys/sysctl.h b/sys/sys/sysctl.h
index 9176d2c3efdd..bc7a2bc601a1 100644
--- a/sys/sys/sysctl.h
+++ b/sys/sys/sysctl.h
@@ -927,6 +927,12 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry);
 #define	FEATURE(name, desc)						\
 	SYSCTL_INT_WITH_LABEL(_kern_features, OID_AUTO, name,		\
 	    CTLFLAG_RD | CTLFLAG_CAPRD, SYSCTL_NULL_INT_PTR, 1, desc, "feature")
+/* Same for the dynamic registration. */
+#define	FEATURE_ADD(name, desc)						\
+	sysctl_add_oid(NULL, SYSCTL_CHILDREN(&sysctl___kern_features),	\
+	    OID_AUTO, name,						\
+	    CTLFLAG_RD | CTLFLAG_CAPRD | CTLTYPE_INT | CTLFLAG_MPSAFE,	\
+	    NULL, 1, sysctl_handle_int, "I", desc, "feature");
 
 #endif /* _KERNEL */