summaryrefslogtreecommitdiff
path: root/kern
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-03-17 21:11:07 +0100
committerRichard Braun <rbraun@sceen.net>2017-03-17 21:11:07 +0100
commitf81a2e65d7621253668d860a75f1ff5ae3070495 (patch)
tree432d879e651d053676f2a20139045f48c3da6cec /kern
parent5d0d0219055719cf76503fe93b5b8aab5f3e8a13 (diff)
kern/sleepq: very early initialization
Diffstat (limited to 'kern')
-rw-r--r--kern/sleepq.c6
-rw-r--r--kern/sleepq.h9
2 files changed, 14 insertions, 1 deletions
diff --git a/kern/sleepq.c b/kern/sleepq.c
index 0c41caef..bd310d04 100644
--- a/kern/sleepq.c
+++ b/kern/sleepq.c
@@ -193,7 +193,7 @@ sleepq_ctor(void *ptr)
}
void __init
-sleepq_setup(void)
+sleepq_bootstrap(void)
{
unsigned int i;
@@ -204,7 +204,11 @@ sleepq_setup(void)
for (i = 0; i < ARRAY_SIZE(sleepq_cond_htable); i++) {
sleepq_bucket_init(&sleepq_cond_htable[i]);
}
+}
+void __init
+sleepq_setup(void)
+{
kmem_cache_init(&sleepq_cache, "sleepq", sizeof(struct sleepq),
CPU_L1_SIZE, sleepq_ctor, 0);
}
diff --git a/kern/sleepq.h b/kern/sleepq.h
index 1ba4a319..aeeb94b7 100644
--- a/kern/sleepq.h
+++ b/kern/sleepq.h
@@ -41,6 +41,15 @@
struct sleepq;
/*
+ * Early initialization of the sleepq module.
+ *
+ * This module is initialized by architecture-specific code. It should
+ * be one of the first modules to be initialized since it's used by
+ * synchronization objects that may be accessed very early.
+ */
+void sleepq_bootstrap(void);
+
+/*
* Initialize the sleepq module.
*/
void sleepq_setup(void);