]> xenbits.xensource.com Git - seabios.git/commitdiff
Use the extra stack for 16bit USB and PS2 keyboard/mouse commands.
authorKevin O'Connor <kevin@koconnor.net>
Mon, 28 May 2012 18:34:49 +0000 (14:34 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Thu, 31 May 2012 01:05:12 +0000 (21:05 -0400)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
src/kbd.c
src/mouse.c

index 586d57eb1db6fd1cf5557a1f8a4ea82680e891f5..0da13a1b70fec9d040c0ea31c3549b11948656ae 100644 (file)
--- a/src/kbd.c
+++ b/src/kbd.c
@@ -110,12 +110,12 @@ dequeue_key(struct bregs *regs, int incr, int extended)
     SET_BDA(kbd_buf_head, buffer_head);
 }
 
-static inline int
+static int
 kbd_command(int command, u8 *param)
 {
     if (usb_kbd_active())
-        return usb_kbd_command(command, param);
-    return ps2_kbd_command(command, param);
+        return stack_hop(command, (u32)param, usb_kbd_command);
+    return stack_hop(command, (u32)param, ps2_kbd_command);
 }
 
 // read keyboard input
index 93e4ed2872f89aef28a89651a09bce13add399b8..ece69db04718d80291ca81bcf62d301bd419e34e 100644 (file)
@@ -21,12 +21,12 @@ mouse_setup(void)
     SETBITS_BDA(equipment_list_flags, 0x04);
 }
 
-static inline int
+static int
 mouse_command(int command, u8 *param)
 {
     if (usb_mouse_active())
-        return usb_mouse_command(command, param);
-    return ps2_mouse_command(command, param);
+        return stack_hop(command, (u32)param, usb_mouse_command);
+    return stack_hop(command, (u32)param, ps2_mouse_command);
 }
 
 #define RET_SUCCESS      0x00