diff --git a/kernel/main.cc b/kernel/main.cc index 5c5e169..375a530 100644 --- a/kernel/main.cc +++ b/kernel/main.cc @@ -86,7 +86,7 @@ extern "C" int main() { // DBG << "module at: " << hex << p << endl; // g.vault().scheduler.ready(new Thread(false, p)); //} - g.vault().scheduler.ready(new Thread(false, (void*)((uintptr_t)Multiboot::getModule(0)->getStartAddress()+4096))); + g.vault().scheduler.ready(new Thread(false, (void*)0x4001000)); //for (uint32_t i = 0; i < NUM_APPS; ++i) { // g.vault().scheduler.ready(&(apps[i])); diff --git a/kernel/thread/thread.cc b/kernel/thread/thread.cc index cb641a6..72d5ad6 100644 --- a/kernel/thread/thread.cc +++ b/kernel/thread/thread.cc @@ -19,20 +19,12 @@ void Thread::kickoff(uintptr_t param1, uintptr_t param2, uintptr_t param3) { Guard::leave(); if(!thread->isKernel) - Core::Ring::switchToUsermode(thread->StackPointer.user, reinterpret_cast(kickoffUsermode), thread); + Core::Ring::switchToUsermode(thread->StackPointer.user, thread->start, 0); else if(thread->start == nullptr) thread->action(); else ((void(*)())thread->start)(); - -} - -void Thread::kickoffUsermode (Thread *object){ - if(object->start == nullptr) - object->action(); - else - ((void(*)())object->start)(); } extern four_lvl_paging_t paging_tree;