git: cedc82c0466a - main - struct sysinit: Add SLIST_ENTRY(sysinit) next

From: Colin Percival <cperciva_at_FreeBSD.org>
Date: Sun, 20 Aug 2023 05:05:42 UTC
The branch main has been updated by cperciva:

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

commit cedc82c0466a5116d5a89ecd1f10a69be1a31ca0
Author:     Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2023-07-18 02:20:05 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2023-08-20 05:04:55 +0000

    struct sysinit: Add SLIST_ENTRY(sysinit) next
    
    This will be used to put SYSINITs onto a linked list.
    
    Reviewed by:    jhb, emaste
    Sponsored by:   https://www.patreon.com/cperciva
    Differential Revision:  https://reviews.freebsd.org/D41074
---
 share/man/man9/SYSINIT.9 | 1 +
 sys/sys/kernel.h         | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/share/man/man9/SYSINIT.9 b/share/man/man9/SYSINIT.9
index cf5dbe2e797f..ae360a95c44f 100644
--- a/share/man/man9/SYSINIT.9
+++ b/share/man/man9/SYSINIT.9
@@ -60,6 +60,7 @@ are defined in
 struct sysinit {
 	enum sysinit_sub_id subsystem;	/* subsystem identifier*/
 	enum sysinit_elem_order	order;	/* init order within subsystem*/
+	SLIST_ENTRY(sysinit) next;	/* singly-linked list */
 	sysinit_cfunc_t func;		/* function             */
 	const void	*udata;		/* multiplexer/argument */
 };
diff --git a/sys/sys/kernel.h b/sys/sys/kernel.h
index b6059858394b..12e346514d1a 100644
--- a/sys/sys/kernel.h
+++ b/sys/sys/kernel.h
@@ -50,7 +50,7 @@
 
 #ifdef _KERNEL
 
-/* for intrhook below */
+/* for intrhook and sysinit linked list below */
 #include <sys/queue.h>
 
 /* for timestamping SYSINITs; other files may assume this is included here */
@@ -220,6 +220,7 @@ typedef void (*sysinit_cfunc_t)(const void *);
 struct sysinit {
 	enum sysinit_sub_id	subsystem;	/* subsystem identifier*/
 	enum sysinit_elem_order	order;		/* init order within subsystem*/
+	SLIST_ENTRY(sysinit)	next;		/* singly-linked list */
 	sysinit_cfunc_t func;			/* function		*/
 	const void	*udata;			/* multiplexer/argument */
 };
@@ -260,6 +261,7 @@ sysinit_tslog_shim(const void * data)
 	static struct sysinit uniquifier ## _sys_init = {	\
 		subsystem,					\
 		order,						\
+		{ NULL },					\
 		sysinit_tslog_shim,				\
 		&uniquifier ## _sys_init_tslog			\
 	};							\
@@ -269,6 +271,7 @@ sysinit_tslog_shim(const void * data)
 	static struct sysinit uniquifier ## _sys_init = {	\
 		subsystem,					\
 		order,						\
+		{ NULL },					\
 		func,						\
 		(ident)						\
 	};							\
@@ -286,6 +289,7 @@ sysinit_tslog_shim(const void * data)
 	static struct sysinit uniquifier ## _sys_uninit = {	\
 		subsystem,					\
 		order,						\
+		{ NULL },					\
 		func,						\
 		(ident)						\
 	};							\