diff options
author | Richard Braun <rbraun@sceen.net> | 2017-03-17 21:11:07 +0100 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2017-03-17 21:11:07 +0100 |
commit | f81a2e65d7621253668d860a75f1ff5ae3070495 (patch) | |
tree | 432d879e651d053676f2a20139045f48c3da6cec /kern | |
parent | 5d0d0219055719cf76503fe93b5b8aab5f3e8a13 (diff) |
kern/sleepq: very early initialization
Diffstat (limited to 'kern')
-rw-r--r-- | kern/sleepq.c | 6 | ||||
-rw-r--r-- | kern/sleepq.h | 9 |
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); |