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 /sys/x86 | |
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.
Diffstat (limited to 'sys/x86')
-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 |
4 files changed, 7 insertions, 13 deletions
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); } /* |