summaryrefslogtreecommitdiff
path: root/kern/task.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-07-13 20:07:07 +0200
committerRichard Braun <rbraun@sceen.net>2017-07-13 20:07:07 +0200
commitb2ad7d862388558556288877a65f2797528168f4 (patch)
tree4d3080abf0cbcca7c058cba5cad2ed71e5d5e1e5 /kern/task.c
parentcacd797c0c1825301f21aab18a7ce2c410d14535 (diff)
Switch to initialization operations
Diffstat (limited to 'kern/task.c')
-rw-r--r--kern/task.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/kern/task.c b/kern/task.c
index 9764cfe0..ab82ad83 100644
--- a/kern/task.c
+++ b/kern/task.c
@@ -99,9 +99,22 @@ static struct shell_cmd task_shell_cmds[] = {
"display tasks and threads"),
};
+static int __init
+task_setup_shell(void)
+{
+ SHELL_REGISTER_CMDS(task_shell_cmds);
+ return 0;
+}
+
+INIT_OP_DEFINE(task_setup_shell,
+ INIT_OP_DEP(printf_setup, true),
+ INIT_OP_DEP(shell_setup, true),
+ INIT_OP_DEP(task_setup, true),
+ INIT_OP_DEP(thread_setup, true));
+
#endif /* X15_SHELL */
-void __init
+static int __init
task_setup(void)
{
kmem_cache_init(&task_cache, "task", sizeof(struct task), 0, NULL, 0);
@@ -109,10 +122,14 @@ task_setup(void)
spinlock_init(&task_list_lock);
task_init(kernel_task, "x15", kernel_map);
list_insert_head(&task_list, &kernel_task->node);
-
- SHELL_REGISTER_CMDS(task_shell_cmds);
+ return 0;
}
+INIT_OP_DEFINE(task_setup,
+ INIT_OP_DEP(kmem_setup, true),
+ INIT_OP_DEP(spinlock_setup, true),
+ INIT_OP_DEP(vm_map_setup, true));
+
int
task_create(struct task **taskp, const char *name)
{