diff options
author | kato <kato@FreeBSD.org> | 2001-05-02 13:51:49 +0000 |
---|---|---|
committer | kato <kato@FreeBSD.org> | 2001-05-02 13:51:49 +0000 |
commit | f3e48b3cb443658b0203a846e41b0ee0c37139c2 (patch) | |
tree | 3b5938a2d0ddab37e5f176538447c4932eb061cf /sys/pc98/cbus/clock.c | |
parent | 7829b9a6fd0d37e2e8d1d3e0583bb9a38475f796 (diff) | |
download | FreeBSD-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/clock.c')
-rw-r--r-- | sys/pc98/cbus/clock.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/pc98/cbus/clock.c b/sys/pc98/cbus/clock.c index ae1a3c6..69c4b49 100644 --- a/sys/pc98/cbus/clock.c +++ b/sys/pc98/cbus/clock.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" |