diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2009-03-01 12:31:57 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2009-03-01 12:31:57 -0500 |
commit | 4ebc0b70305c6d6a14eb03c355fda0d8dc829bc5 (patch) | |
tree | 53911bc0800e8390b78a290dcc8e468c542d7494 /src/mouse.c | |
parent | 11ac162bf1536d4f2eaac9fedec1eec746b4512d (diff) | |
download | seabios-4ebc0b70305c6d6a14eb03c355fda0d8dc829bc5.tar.gz |
Consistently disable irqs at start of each assembler entry point.
Always disable irqs at start of each entry point.
Be consistent with clearing direction flag after disabling interrupts.
Diffstat (limited to 'src/mouse.c')
-rw-r--r-- | src/mouse.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mouse.c b/src/mouse.c index 2f997c1f..e6abbb9a 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -313,8 +313,9 @@ process_mouse(u8 data) u32 func = GET_EBDA2(ebda_seg, far_call_pointer); - irq_enable(); asm volatile( + "sti\n" + "pushl %0\n" "pushw %w1\n" // status "pushw %w2\n" // X @@ -322,12 +323,13 @@ process_mouse(u8 data) "pushw $0\n" // Z "lcallw *8(%%esp)\n" "addl $12, %%esp\n" + + "cli\n" "cld\n" : : "r"(func), "r"(status), "r"(X), "r"(Y) : "cc" ); - irq_disable(); } // INT74h : PS/2 mouse hardware interrupt |