diff --git a/sys/pc98/pc98/syscons.c b/sys/pc98/pc98/syscons.c index 86ef627869b7..28e8e409fdbd 100644 --- a/sys/pc98/pc98/syscons.c +++ b/sys/pc98/pc98/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.79 1998/02/14 08:39:35 kato Exp $ + * $Id: syscons.c,v 1.80 1998/03/05 03:31:27 kato Exp $ */ #include "sc.h" @@ -186,7 +186,7 @@ static const u_int n_fkey_tab = sizeof(fkey_tab) / sizeof(*fkey_tab); static int delayed_next_scr = FALSE; static long scrn_blank_time = 0; /* screen saver timeout value */ int scrn_blanked = 0; /* screen saver active flag */ -static long scrn_time_stamp; +static struct timeval scrn_time_stamp; u_char scr_map[256]; u_char scr_rmap[256]; char *video_mode_ptr = NULL; @@ -1166,7 +1166,7 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) return EINVAL; scrn_blank_time = *(int *)data; if (scrn_blank_time == 0) - scrn_time_stamp = mono_time.tv_sec; + getmicroruntime(&scrn_time_stamp); return 0; case CONS_CURSORTYPE: /* set cursor type blink/noblink */ @@ -1534,7 +1534,7 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) return EINVAL; } /* make screensaver happy */ - scrn_time_stamp = mono_time.tv_sec; + getmicroruntime(&scrn_time_stamp); return 0; } @@ -2466,6 +2466,7 @@ get_scr_num() static void scrn_timer(void *arg) { + struct timeval tv; scr_stat *scp = cur_console; int s; @@ -2507,14 +2508,18 @@ scrn_timer(void *arg) } /* should we stop the screen saver? */ + getmicroruntime(&tv); if (panicstr) - scrn_time_stamp = mono_time.tv_sec; + scrn_time_stamp = tv; + if (tv.tv_sec <= scrn_time_stamp.tv_sec + scrn_blank_time) + if (scrn_blanked > 0) + stop_scrn_saver(current_saver); scp = cur_console; if (scrn_blanked <= 0) scrn_update(scp, TRUE); /* should we activate the screen saver? */ if ((scrn_blank_time != 0) - && (mono_time.tv_sec > scrn_time_stamp + scrn_blank_time)) + && (tv.tv_sec > scrn_time_stamp.tv_sec + scrn_blank_time)) (*current_saver)(TRUE); timeout(scrn_timer, NULL, hz / 25); @@ -2627,7 +2632,7 @@ static void stop_scrn_saver(void (*saver)(int)) { (*saver)(FALSE); - scrn_time_stamp = mono_time.tv_sec; + getmicroruntime(&scrn_time_stamp); mark_all(cur_console); } @@ -3670,7 +3675,7 @@ ansi_put(scr_stat *scp, u_char *buf, int len) /* make screensaver happy */ if (scp == cur_console) - scrn_time_stamp = mono_time.tv_sec; + getmicroruntime(&scrn_time_stamp); write_in_progress++; outloop: @@ -4325,7 +4330,7 @@ next_code: /* make screensaver happy */ if (!(scancode & 0x80)) - scrn_time_stamp = mono_time.tv_sec; + getmicroruntime(&scrn_time_stamp); if (!(flags & SCGETC_CN)) { /* do the /dev/random device a favour */