1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 04:47:34 +00:00

A lot of hacking:

- More work on funneling console output through Console.
- init() now breaks off into a separate task ASAP.
- ..this leaves the "colonel" task as a simple hlt idle loop.
- Mask all IRQs on startup (except IRQ2 for slave passthru)
- Fix underallocation bug in Task::allocateRegion().
- Remember how many times each Task has been scheduled.

The panel and scheduling banner are disabled until I get things
working nicely in the (brave) new Console world.
This commit is contained in:
Andreas Kling 2018-10-22 11:15:16 +02:00
parent df4fdd6f1e
commit 79ffdb7205
13 changed files with 130 additions and 90 deletions

View file

@ -117,6 +117,15 @@ void clock_handle()
// If this IRQ occurred while in a user task, wouldn't that also push the stack ptr?
current->tss().esp = regs.esp + 12;
// FIXME: Is this really safe? What if the interrupted process didn't have SS==DS?
current->tss().ss = regs.ds;
if ((current->tss().cs & 3) != 0) {
// What do I do now?
kprintf("clk'ed across to ring0\n");
HANG;
}
// Prepare a new task to run;
if (!scheduleNewTask())
return;