summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/sys/kernel.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-08-20 15:53:03 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-21 10:29:39 +0200
commit18fa92c2dcc6c52e0bf27d214d80f0c25a89b47d (patch)
treea3020ac5b1f366f2f0920941b589808e435dbcee /freebsd/sys/sys/kernel.h
parentUpdate to FreeBSD head 2017-12-01 (diff)
downloadrtems-libbsd-18fa92c2dcc6c52e0bf27d214d80f0c25a89b47d.tar.bz2
Update to FreeBSD head 2018-02-01
Git mirror commit d079ae0442af8fa3cfd6d7ede190d04e64a2c0d4. Update #3472.
Diffstat (limited to '')
-rw-r--r--freebsd/sys/sys/kernel.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/freebsd/sys/sys/kernel.h b/freebsd/sys/sys/kernel.h
index 1cc03275..81ceca04 100644
--- a/freebsd/sys/sys/kernel.h
+++ b/freebsd/sys/sys/kernel.h
@@ -54,6 +54,9 @@
/* for intrhook below */
#include <sys/queue.h>
+/* for timestamping SYSINITs; other files may assume this is included here */
+#include <sys/tslog.h>
+
/* Global variables for the kernel. */
#ifndef __rtems__
@@ -240,6 +243,35 @@ struct sysinit {
* correct warnings when -Wcast-qual is used.
*
*/
+#ifdef TSLOG
+struct sysinit_tslog {
+ sysinit_cfunc_t func;
+ const void * data;
+ const char * name;
+};
+static inline void
+sysinit_tslog_shim(const void * data)
+{
+ const struct sysinit_tslog * x = data;
+
+ TSRAW(curthread, TS_ENTER, "SYSINIT", x->name);
+ (x->func)(x->data);
+ TSRAW(curthread, TS_EXIT, "SYSINIT", x->name);
+}
+#define C_SYSINIT(uniquifier, subsystem, order, func, ident) \
+ static struct sysinit_tslog uniquifier ## _sys_init_tslog = { \
+ func, \
+ (ident), \
+ #uniquifier \
+ }; \
+ static struct sysinit uniquifier ## _sys_init = { \
+ subsystem, \
+ order, \
+ sysinit_tslog_shim, \
+ &uniquifier ## _sys_init_tslog \
+ }; \
+ DATA_SET(sysinit_set,uniquifier ## _sys_init)
+#else
#ifndef __rtems__
#define C_SYSINIT(uniquifier, subsystem, order, func, ident) \
static struct sysinit uniquifier ## _sys_init = { \
@@ -274,6 +306,7 @@ struct sysinit {
#define SYSINIT_DOMAIN_REFERENCE(dom) \
SYSINIT_REFERENCE(domain_add_ ## dom)
#endif /* __rtems__ */
+#endif
#define SYSINIT(uniquifier, subsystem, order, func, ident) \
C_SYSINIT(uniquifier, subsystem, order, \