summaryrefslogtreecommitdiff
path: root/kern/shell.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-05-31 21:11:29 +0200
committerRichard Braun <rbraun@sceen.net>2017-05-31 21:11:29 +0200
commitccefd921e76ba4ca7f3d6b54691315c0718b039c (patch)
tree537221be8c7add94eb226401020126f6904e65ad /kern/shell.c
parenta9ce9f79a324e1b8d6d299bc4e43f02f71d0eb7f (diff)
kern/shell: separate initialization into two steps
The shell must be able to register commands early. As a result, it's now initialized in two steps, one of which starts the shell thread.
Diffstat (limited to 'kern/shell.c')
-rw-r--r--kern/shell.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/kern/shell.c b/kern/shell.c
index c4675bf4..ba756a5f 100644
--- a/kern/shell.c
+++ b/kern/shell.c
@@ -1158,8 +1158,6 @@ shell_run(void *arg)
void __init
shell_setup(void)
{
- struct thread_attr attr;
- struct thread *thread;
unsigned long i;
int error;
@@ -1169,6 +1167,14 @@ shell_setup(void)
error = shell_cmd_register(&shell_default_cmds[i]);
error_check(error, "shell_cmd_register");
}
+}
+
+void __init
+shell_start(void)
+{
+ struct thread_attr attr;
+ struct thread *thread;
+ int error;
thread_attr_init(&attr, THREAD_KERNEL_PREFIX "shell");
thread_attr_set_detached(&attr);