diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2012-05-28 14:25:15 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2012-05-30 21:04:52 -0400 |
commit | ecdc655a867480b938652d52a0880853595e2976 (patch) | |
tree | bb05ef9488ce19343b805ef246ca95636a6f5fb2 /src/output.c | |
parent | beeabd63df5ad76c74360626549b0be2f6bbad91 (diff) | |
download | seabios-hppa-ecdc655a867480b938652d52a0880853595e2976.zip seabios-hppa-ecdc655a867480b938652d52a0880853595e2976.tar.gz seabios-hppa-ecdc655a867480b938652d52a0880853595e2976.tar.bz2 |
Run all hardware irq handlers on the extra stack.
Jump into the extra stack for all hardware irq handlers. This reduces
the overall stack requirements of SeaBIOS.
Replace all users of call16_simpint with call16_int. Only the
hardware irq handlers used the old call, and they need to use the new
call to ensure the extra stack is properly re-entrant.
Also, pass in a 'struct bregs' to the hardware irq handlers now. It
was not done previously to save stack space. Now that the extra stack
is used, that is no longer an issue.
Note that should an old OS invoke a hardware irq in 16bit protected
mode, then this patch could break that OS. However, the chances of
this causing a regression seem small as several existing hardware irq
handlers already do not work in 16bit protected mode.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/output.c')
-rw-r--r-- | src/output.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/src/output.c b/src/output.c index 37c4942..1fe5d91 100644 --- a/src/output.c +++ b/src/output.c @@ -487,15 +487,6 @@ dump_regs(struct bregs *regs) , regs->code.seg, regs->code.offset, regs->flags); } -// Report entry to an Interrupt Service Routine (ISR). -void -__debug_isr(const char *fname) -{ - puts_cs(&debuginfo, fname); - putc(&debuginfo, '\n'); - debug_serial_flush(); -} - // Function called on handler startup. void __debug_enter(struct bregs *regs, const char *fname) |