]> xenbits.xensource.com Git - seabios.git/commitdiff
Set noinline on kbd.c interface functions that take stack variable pointers.
authorKevin O'Connor <kevin@koconnor.net>
Mon, 28 May 2012 22:31:39 +0000 (18:31 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Thu, 31 May 2012 01:05:24 +0000 (21:05 -0400)
Some versions of gcc have been found to inline these funcions and then
cause the calling functions to use very large stack usage.  Since
these functions are called from 16bit mode, their stack space usage is
very sensitive.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
src/kbd.c

index 0aa89886e8eced77715edff6ecc149667aff6d47..e9ea59400e2ac536335b57151503cc0fba0243ed 100644 (file)
--- a/src/kbd.c
+++ b/src/kbd.c
@@ -165,7 +165,7 @@ handle_1609(struct bregs *regs)
 }
 
 // GET KEYBOARD ID
-static void
+static void noinline
 handle_160a(struct bregs *regs)
 {
     u8 param[2];
@@ -231,7 +231,7 @@ handle_16XX(struct bregs *regs)
     warn_unimplemented(regs);
 }
 
-static void
+static void noinline
 set_leds(void)
 {
     u8 shift_flags = (GET_BDA(kbd_flag0) >> 4) & 0x07;