From cb75dc20e112ebadccec54d3cdf1cbe49778fbcf Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Sat, 8 Mar 2014 17:30:58 +0100 Subject: [PATCH] Cleanup --- kernel/include/scheduler.hpp | 1 + kernel/src/kernel.cpp | 6 +----- kernel/src/scheduler.cpp | 25 ++++++------------------- 3 files changed, 8 insertions(+), 24 deletions(-) diff --git a/kernel/include/scheduler.hpp b/kernel/include/scheduler.hpp index 8eecb194..03a1f196 100644 --- a/kernel/include/scheduler.hpp +++ b/kernel/include/scheduler.hpp @@ -24,6 +24,7 @@ void block_process(pid_t pid); void unblock_process(pid_t pid); void init(); +void start() __attribute__((noreturn)); int64_t exec(const std::string& path, const std::vector& params); diff --git a/kernel/src/kernel.cpp b/kernel/src/kernel.cpp index 9a0074b1..d24f0397 100644 --- a/kernel/src/kernel.cpp +++ b/kernel/src/kernel.cpp @@ -94,11 +94,7 @@ void kernel_main(){ sysfs::set_constant_value("/sys/", "author", "Baptiste Wicht"); scheduler::init(); - - //Launch the shell - init_shell(); - - return; + scheduler::start(); } } diff --git a/kernel/src/scheduler.cpp b/kernel/src/scheduler.cpp index 0598a388..57b8932e 100644 --- a/kernel/src/scheduler.cpp +++ b/kernel/src/scheduler.cpp @@ -549,19 +549,6 @@ void init_context(scheduler::process_t& process, const char* buffer, const std:: process.context = reinterpret_cast(scheduler::user_rsp - sizeof(interrupt::syscall_regs) - args_size); } -void start() __attribute__((noreturn)); -void start(){ - started = true; - - for(auto& process : pcb){ - if(process.state != scheduler::process_state::EMPTY){ - k_printf("pid: %u ppid: %u\n", process.process.pid, process.process.ppid); - } - } - - init_task_switch(current_pid); -} - } //end of anonymous namespace void scheduler::init(){ //Create the idle task @@ -583,13 +570,13 @@ void scheduler::init(){ //Create the idle task pcb[current_pid].state = scheduler::process_state::RUNNING; } -int64_t scheduler::exec(const std::string& file, const std::vector& params){ - //TODO Once shell removed, start will be called in init() - if(!started){ - start(); - //Unreachable - } +void scheduler::start(){ + started = true; + init_task_switch(current_pid); +} + +int64_t scheduler::exec(const std::string& file, const std::vector& params){ std::string content; auto result = vfs::direct_read(file, content); if(result < 0){