summaryrefslogtreecommitdiffstats
path: root/sys/pc98/cbus/pcrtc.c
diff options
context:
space:
mode:
authorkato <kato@FreeBSD.org>2001-05-02 13:51:49 +0000
committerkato <kato@FreeBSD.org>2001-05-02 13:51:49 +0000
commitf3e48b3cb443658b0203a846e41b0ee0c37139c2 (patch)
tree3b5938a2d0ddab37e5f176538447c4932eb061cf /sys/pc98/cbus/pcrtc.c
parent7829b9a6fd0d37e2e8d1d3e0583bb9a38475f796 (diff)
downloadFreeBSD-src-f3e48b3cb443658b0203a846e41b0ee0c37139c2.zip
FreeBSD-src-f3e48b3cb443658b0203a846e41b0ee0c37139c2.tar.gz
Merged from sys/i386/isa/clock.c revisions 1.172 and 1.173.
Diffstat (limited to 'sys/pc98/cbus/pcrtc.c')
-rw-r--r--sys/pc98/cbus/pcrtc.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/pc98/cbus/pcrtc.c b/sys/pc98/cbus/pcrtc.c
index ae1a3c6..69c4b49 100644
--- a/sys/pc98/cbus/pcrtc.c
+++ b/sys/pc98/cbus/pcrtc.c
@@ -236,6 +236,10 @@ clkintr(struct clockframe frame)
mtx_unlock_spin(&clock_lock);
}
timer_func(&frame);
+#ifdef SMP
+ if (timer_func == hardclock)
+ forward_hardclock();
+#endif
switch (timer0_state) {
case RELEASED:
@@ -246,6 +250,9 @@ clkintr(struct clockframe frame)
>= hardclock_max_count) {
timer0_prescaler_count -= hardclock_max_count;
hardclock(&frame);
+#ifdef SMP
+ forward_hardclock();
+#endif
}
break;
@@ -278,6 +285,9 @@ clkintr(struct clockframe frame)
timer_func = hardclock;
timer0_state = RELEASED;
hardclock(&frame);
+#ifdef SMP
+ forward_hardclock();
+#endif
}
break;
}
@@ -435,8 +445,12 @@ release_timer2()
static void
rtcintr(struct clockframe frame)
{
- while (rtcin(RTC_INTR) & RTCIR_PERIOD)
+ while (rtcin(RTC_INTR) & RTCIR_PERIOD) {
statclock(&frame);
+#ifdef SMP
+ forward_statclock();
+#endif
+ }
}
#include "opt_ddb.h"
OpenPOWER on IntegriCloud