aboutsummaryrefslogtreecommitdiff
path: root/src/system.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2009-01-01 21:00:59 -0500
committerKevin O'Connor <kevin@koconnor.net>2009-01-01 21:00:59 -0500
commita83ff550b4cbf0b1bc35f493c8715a69a9e28b7e (patch)
tree3b434ad53bc40b2960bcd0d7abe05e2596f23372 /src/system.c
parent7f343097712ebdd1f11953c867e208da899b4ba3 (diff)
downloadseabios-hppa-a83ff550b4cbf0b1bc35f493c8715a69a9e28b7e.zip
seabios-hppa-a83ff550b4cbf0b1bc35f493c8715a69a9e28b7e.tar.gz
seabios-hppa-a83ff550b4cbf0b1bc35f493c8715a69a9e28b7e.tar.bz2
Reduce stack usage of hw irq handlers.
Avoid using call16_int() -- it consumes too much stack space. Instead, use a new function (call16_simpint). This assumes that the handler wont corrupt regs - which should be a safe assumption, because if they did corrupt regs they wouldn't work on any bios. Avoid enabling irqs in the hw irq handlers - there are no loops in the handlers that could cause any notable latency.
Diffstat (limited to 'src/system.c')
-rw-r--r--src/system.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/system.c b/src/system.c
index 235e88c..47d5817 100644
--- a/src/system.c
+++ b/src/system.c
@@ -399,7 +399,6 @@ handle_75()
// clear interrupt
eoi_pic2();
// legacy nmi call
- struct bregs br;
- memset(&br, 0, sizeof(br));
- call16_int(0x02, &br);
+ u32 eax=0, flags;
+ call16_simpint(0x02, &eax, &flags);
}