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:
parent
df4fdd6f1e
commit
79ffdb7205
13 changed files with 130 additions and 90 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue