remove kickoffusermode
This commit is contained in:
@@ -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]));
|
||||
|
||||
@@ -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<void*>(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;
|
||||
|
||||
Reference in New Issue
Block a user