From a1d66c30fc146b7a4eb013fbe6aacc1e5153d843 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 1 Sep 2011 02:06:40 +0200 Subject: Fix PC sampling interrupt.S now saves the IRQ on the stack to acknowledge it later. * i386/i386/hardclock.c (hardclock): Add irq parameter. * i386/i386at/kd.c (kdintr, kdcheckmagic): Remove regs parameter. * i386/i386at/kd.h (kdintr): Likewise. --- i386/i386/hardclock.c | 3 ++- i386/i386at/kd.c | 8 +++----- i386/i386at/kd.h | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/i386/i386/hardclock.c b/i386/i386/hardclock.c index aecd3a3..6615033 100644 --- a/i386/i386/hardclock.c +++ b/i386/i386/hardclock.c @@ -46,9 +46,10 @@ extern char return_to_iret[]; void -hardclock(iunit, old_ipl, ret_addr, regs) +hardclock(iunit, old_ipl, irq, ret_addr, regs) int iunit; /* 'unit' number */ int old_ipl; /* old interrupt level */ + int irq; /* irq number */ char * ret_addr; /* return address in interrupt handler */ struct i386_interrupt_state *regs; /* saved registers */ diff --git a/i386/i386at/kd.c b/i386/i386at/kd.c index bd10b5f..4b70c5f 100644 --- a/i386/i386at/kd.c +++ b/i386/i386at/kd.c @@ -732,9 +732,8 @@ int flags; /* flags set for console */ */ /*ARGSUSED*/ void -kdintr(vec, regs) +kdintr(vec) int vec; -int regs; { struct tty *tp; unsigned char c; @@ -799,7 +798,7 @@ int regs; goto done; } else if (kd_kbd_mouse && kd_kbd_magic(scancode)) { goto done; - } else if (kdcheckmagic(scancode, ®s)) { + } else if (kdcheckmagic(scancode)) { goto done; } else if (kb_mode == KB_EVENT) { kd_enqsc(scancode); @@ -985,9 +984,8 @@ boolean_t up; * are still held down. */ boolean_t -kdcheckmagic(scancode, regs) +kdcheckmagic(scancode) Scancode scancode; -int *regs; { static int magic_state = KS_NORMAL; /* like kd_state */ boolean_t up = FALSE; diff --git a/i386/i386at/kd.h b/i386/i386at/kd.h index 3f0dfe1..1d53538 100644 --- a/i386/i386at/kd.h +++ b/i386/i386at/kd.h @@ -740,6 +740,6 @@ extern void kd_slmwd (void *start, int count, int value); extern void kd_slmscu (void *from, void *to, int count); extern void kd_slmscd (void *from, void *to, int count); -extern void kdintr(int vec, int regs); +extern void kdintr(int vec); #endif /* _KD_H_ */ -- cgit v1.2.3