1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:18:12 +00:00

These changes were lying around uncommitted in the old repo.

I'm just gonna commit them without too much thinking and then take
it from there.
This commit is contained in:
Andreas Kling 2018-10-16 11:06:35 +02:00
parent 87d41bdca4
commit 72bb80a9ae
8 changed files with 94 additions and 81 deletions

View file

@ -94,6 +94,7 @@ void clock_handle()
if (current->tick())
return;
//return;
auto& regs = *reinterpret_cast<RegisterDump*>(state_dump);
current->tss().gs = regs.gs;
@ -131,12 +132,12 @@ void clock_handle()
// Add 12 for CS, EIP, EFLAGS (interrupt mechanic)
current->tss().esp = regs.esp + 12;
// Prepare a new task to run.
sched();
// Prepare a new task to run;
if (!scheduleNewTask())
return;
Task::prepForIRETToNewTask();
// Set the NT (nested task) flag.
// sched() has LTRed a dummy task with a backlink to the next task.
// This is probably super slow/stupid, but I'm just learning...
asm(
"pushf\n"
"orl $0x00004000, (%esp)\n"