diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2009-01-01 21:00:59 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2009-01-01 21:00:59 -0500 |
commit | a83ff550b4cbf0b1bc35f493c8715a69a9e28b7e (patch) | |
tree | 3b434ad53bc40b2960bcd0d7abe05e2596f23372 /src/system.c | |
parent | 7f343097712ebdd1f11953c867e208da899b4ba3 (diff) | |
download | seabios-a83ff550b4cbf0b1bc35f493c8715a69a9e28b7e.tar.gz |
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.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/system.c b/src/system.c index 235e88c9..47d58174 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); } |