Scheduler: clear user tasks' registers
This commit is contained in:
parent
136c0b3ae9
commit
25a460e3c6
@ -91,6 +91,7 @@ void Scheduler::add_user_task(void* task)
|
||||
{
|
||||
Task* new_task = new Task;
|
||||
ASSERT(new_task);
|
||||
memset(&new_task->regs, 0, sizeof(Context));
|
||||
new_task->user_task = true;
|
||||
new_task->id = free_tid++;
|
||||
new_task->regs.rip = (uint64_t)task;
|
||||
@ -120,6 +121,7 @@ void Scheduler::load_user_task(const char* filename)
|
||||
kinfoln("Loading user task: %s", filename);
|
||||
Task* new_task = new Task;
|
||||
ASSERT(new_task);
|
||||
memset(&new_task->regs, 0, sizeof(Context));
|
||||
new_task->id = free_tid++;
|
||||
ELFImage* image = ELFLoader::load_elf_from_filesystem(filename);
|
||||
if (!image)
|
||||
@ -154,6 +156,7 @@ void Scheduler::load_user_task(const char* filename)
|
||||
|
||||
void Scheduler::reset_task(Task* task, ELFImage* new_image)
|
||||
{
|
||||
memset(&task->regs, 0, sizeof(Context));
|
||||
task->state = task->Running;
|
||||
task->regs.rip = new_image->entry;
|
||||
task->image = new_image;
|
||||
|
Loading…
Reference in New Issue
Block a user