summaryrefslogtreecommitdiff
path: root/Source/Kernel/SyscallManager/IDT.ns.cpp
diff options
context:
space:
mode:
authorAlexis211 <alexis211@gmail.com>2009-11-13 18:05:27 +0100
committerAlexis211 <alexis211@gmail.com>2009-11-13 18:05:27 +0100
commit2b9e97b8635c20c5a2b87789b1014489863d1994 (patch)
tree58fa9f2fa82ac9477819193b6731b8b927187224 /Source/Kernel/SyscallManager/IDT.ns.cpp
parent7e3ecd80af5ddcedbfa3d849284400ed6568f516 (diff)
downloadMelon-2b9e97b8635c20c5a2b87789b1014489863d1994.tar.gz
Melon-2b9e97b8635c20c5a2b87789b1014489863d1994.zip
Added a game of life simulator demo
Diffstat (limited to 'Source/Kernel/SyscallManager/IDT.ns.cpp')
-rw-r--r--Source/Kernel/SyscallManager/IDT.ns.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/Source/Kernel/SyscallManager/IDT.ns.cpp b/Source/Kernel/SyscallManager/IDT.ns.cpp
index 7c4b5cb..e9e60d7 100644
--- a/Source/Kernel/SyscallManager/IDT.ns.cpp
+++ b/Source/Kernel/SyscallManager/IDT.ns.cpp
@@ -72,7 +72,9 @@ extern "C" void interrupt_handler(registers_t regs) {
if (regs.int_no >= 40)
outb(0xA0, 0x20);
outb(0x20, 0x20);
+ asm volatile("sti"); //Make handling preemtible
Dev::handleIRQ(regs, (regs.int_no - 32));
+ asm volatile("cli");
doSwitch = doSwitch or Task::IRQwakeup(regs.int_no - 32);
}
if (regs.int_no == 64) {