diff options
author | mav <mav@FreeBSD.org> | 2010-07-13 12:46:06 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2010-07-13 12:46:06 +0000 |
commit | b076092fdd67d1ebb8c03e6078349eeadcfc4c0b (patch) | |
tree | f82fe6555985b5b15e8e23ff8f8d05602aa750d3 | |
parent | 26b45a7863e4bb1f2b6b4d65676ab45872a932f4 (diff) | |
download | FreeBSD-src-b076092fdd67d1ebb8c03e6078349eeadcfc4c0b.zip FreeBSD-src-b076092fdd67d1ebb8c03e6078349eeadcfc4c0b.tar.gz |
Rise knowledge about curthread->td_intr_frame by one step. Make timer
callback argument really opaque. Not repeat interrupt handler's problem
in case somebody will ever need to have both argument and frame.
-rw-r--r-- | sys/dev/acpica/acpi_hpet.c | 6 | ||||
-rw-r--r-- | sys/x86/isa/atrtc.c | 7 | ||||
-rw-r--r-- | sys/x86/isa/clock.c | 6 | ||||
-rw-r--r-- | sys/x86/x86/local_apic.c | 3 | ||||
-rw-r--r-- | sys/x86/x86/timeevents.c | 4 |
5 files changed, 9 insertions, 17 deletions
diff --git a/sys/dev/acpica/acpi_hpet.c b/sys/dev/acpica/acpi_hpet.c index 3aa6480..95f2b32 100644 --- a/sys/dev/acpica/acpi_hpet.c +++ b/sys/dev/acpica/acpi_hpet.c @@ -216,10 +216,8 @@ hpet_intr_single(void *arg) } else if (t->mode == 2) t->mode = 0; mt = (t->pcpu_master < 0) ? t : &sc->t[t->pcpu_master]; - if (mt->et.et_active) { - mt->et.et_event_cb(&mt->et, - mt->et.et_arg ? mt->et.et_arg : curthread->td_intr_frame); - } + if (mt->et.et_active) + mt->et.et_event_cb(&mt->et, mt->et.et_arg); return (FILTER_HANDLED); } diff --git a/sys/x86/isa/atrtc.c b/sys/x86/isa/atrtc.c index 0b913c3..5a5ba63 100644 --- a/sys/x86/isa/atrtc.c +++ b/sys/x86/isa/atrtc.c @@ -209,11 +209,8 @@ rtc_intr(void *arg) while (rtcin(RTC_INTR) & RTCIR_PERIOD) { flag = 1; - if (sc->et.et_active) { - sc->et.et_event_cb(&sc->et, - sc->et.et_arg ? sc->et.et_arg : - curthread->td_intr_frame); - } + if (sc->et.et_active) + sc->et.et_event_cb(&sc->et, sc->et.et_arg); } return(flag ? FILTER_HANDLED : FILTER_STRAY); } diff --git a/sys/x86/isa/clock.c b/sys/x86/isa/clock.c index 85d2ff1..6b5fede 100644 --- a/sys/x86/isa/clock.c +++ b/sys/x86/isa/clock.c @@ -148,10 +148,8 @@ clkintr(void *arg) mtx_unlock_spin(&clock_lock); } - if (sc && sc->et.et_active) { - sc->et.et_event_cb(&sc->et, - sc->et.et_arg ? sc->et.et_arg : curthread->td_intr_frame); - } + if (sc && sc->et.et_active) + sc->et.et_event_cb(&sc->et, sc->et.et_arg); #ifdef DEV_MCA /* Reset clock interrupt by asserting bit 7 of port 0x61 */ diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c index d1a8439..4364fb1 100644 --- a/sys/x86/x86/local_apic.c +++ b/sys/x86/x86/local_apic.c @@ -802,8 +802,7 @@ lapic_handle_timer(struct trapframe *frame) td = curthread; oldframe = td->td_intr_frame; td->td_intr_frame = frame; - lapic_et.et_event_cb(&lapic_et, - lapic_et.et_arg ? lapic_et.et_arg : frame); + lapic_et.et_event_cb(&lapic_et, lapic_et.et_arg); td->td_intr_frame = oldframe; } critical_exit(); diff --git a/sys/x86/x86/timeevents.c b/sys/x86/x86/timeevents.c index d204cef..ac4ae83 100644 --- a/sys/x86/x86/timeevents.c +++ b/sys/x86/x86/timeevents.c @@ -165,7 +165,7 @@ timer1cb(struct eventtimer *et, void *arg) } } } - hardclockhandler((struct trapframe *)arg); + hardclockhandler(curthread->td_intr_frame); } /* timer2 callback. */ @@ -188,7 +188,7 @@ timer2cb(struct eventtimer *et, void *arg) } } } - statclockhandler((struct trapframe *)arg); + statclockhandler(curthread->td_intr_frame); } /* |