aboutsummaryrefslogtreecommitdiff
path: root/src/mouse.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2009-03-01 12:31:57 -0500
committerKevin O'Connor <kevin@koconnor.net>2009-03-01 12:31:57 -0500
commit4ebc0b70305c6d6a14eb03c355fda0d8dc829bc5 (patch)
tree53911bc0800e8390b78a290dcc8e468c542d7494 /src/mouse.c
parent11ac162bf1536d4f2eaac9fedec1eec746b4512d (diff)
downloadseabios-hppa-4ebc0b70305c6d6a14eb03c355fda0d8dc829bc5.zip
seabios-hppa-4ebc0b70305c6d6a14eb03c355fda0d8dc829bc5.tar.gz
seabios-hppa-4ebc0b70305c6d6a14eb03c355fda0d8dc829bc5.tar.bz2
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.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mouse.c b/src/mouse.c
index 2f997c1..e6abbb9 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