The branch main has been updated by cperciva:

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

commit cedc82c0466a5116d5a89ecd1f10a69be1a31ca0
Author:     Colin Percival <[email protected]>
AuthorDate: 2023-07-18 02:20:05 +0000
Commit:     Colin Percival <[email protected]>
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)                                         \
        };                                                      \

Reply via email to