remove kickoffusermode

This commit is contained in:
2026-02-16 22:06:39 +01:00
parent 3cef41f1dd
commit ef534e2ac7
2 changed files with 2 additions and 10 deletions

View File

@@ -86,7 +86,7 @@ extern "C" int main() {
// DBG << "module at: " << hex << p << endl; // DBG << "module at: " << hex << p << endl;
// g.vault().scheduler.ready(new Thread(false, p)); // 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) { //for (uint32_t i = 0; i < NUM_APPS; ++i) {
// g.vault().scheduler.ready(&(apps[i])); // g.vault().scheduler.ready(&(apps[i]));

View File

@@ -19,20 +19,12 @@ void Thread::kickoff(uintptr_t param1, uintptr_t param2, uintptr_t param3) {
Guard::leave(); Guard::leave();
if(!thread->isKernel) if(!thread->isKernel)
Core::Ring::switchToUsermode(thread->StackPointer.user, reinterpret_cast<void*>(kickoffUsermode), thread); Core::Ring::switchToUsermode(thread->StackPointer.user, thread->start, 0);
else else
if(thread->start == nullptr) if(thread->start == nullptr)
thread->action(); thread->action();
else else
((void(*)())thread->start)(); ((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; extern four_lvl_paging_t paging_tree;