Use generic date conversion module.
This commit is contained in:
parent
2d43c4a079
commit
5e2ca8918d
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# $NetBSD: files.atari,v 1.29 1997/01/21 09:39:20 thorpej Exp $
|
||||
# $NetBSD: files.atari,v 1.30 1997/02/26 12:26:36 leo Exp $
|
||||
#
|
||||
|
||||
maxpartitions 16
|
||||
|
@ -17,6 +17,7 @@ file arch/atari/dev/event.c event
|
|||
|
||||
device clock
|
||||
attach clock at mainbus
|
||||
file dev/clock_subr.c
|
||||
file arch/atari/dev/clock.c
|
||||
|
||||
# keyboard
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: clock.c,v 1.17 1996/12/20 12:49:35 leo Exp $ */
|
||||
/* $NetBSD: clock.c,v 1.18 1997/02/26 12:26:44 leo Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
|
@ -48,6 +48,9 @@
|
|||
#include <sys/device.h>
|
||||
#include <sys/uio.h>
|
||||
#include <sys/conf.h>
|
||||
|
||||
#include <dev/clock_subr.h>
|
||||
|
||||
#include <machine/psl.h>
|
||||
#include <machine/cpu.h>
|
||||
#include <machine/iomap.h>
|
||||
|
@ -402,23 +405,12 @@ resettodr()
|
|||
return;
|
||||
}
|
||||
|
||||
static char dmsize[12] =
|
||||
{
|
||||
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
|
||||
};
|
||||
|
||||
static char ldmsize[12] =
|
||||
{
|
||||
31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
|
||||
};
|
||||
|
||||
static u_long
|
||||
gettod()
|
||||
{
|
||||
int i, sps;
|
||||
u_long new_time = 0;
|
||||
char *msize;
|
||||
mc_todregs clkregs;
|
||||
int sps;
|
||||
mc_todregs clkregs;
|
||||
struct clock_ymdhms dt;
|
||||
|
||||
sps = splhigh();
|
||||
MC146818_GETTOD(RTC, &clkregs);
|
||||
|
@ -436,21 +428,15 @@ gettod()
|
|||
return(0);
|
||||
if(clkregs[MC_YEAR] > (2000 - GEMSTARTOFTIME))
|
||||
return(0);
|
||||
clkregs[MC_YEAR] += GEMSTARTOFTIME;
|
||||
|
||||
for(i = BSDSTARTOFTIME; i < clkregs[MC_YEAR]; i++) {
|
||||
if(is_leap(i))
|
||||
new_time += 366;
|
||||
else new_time += 365;
|
||||
}
|
||||
dt.dt_year = clkregs[MC_YEAR] + GEMSTARTOFTIME;
|
||||
dt.dt_mon = clkregs[MC_MONTH];
|
||||
dt.dt_day = clkregs[MC_DOM];
|
||||
dt.dt_hour = clkregs[MC_HOUR];
|
||||
dt.dt_min = clkregs[MC_MIN];
|
||||
dt.dt_sec = clkregs[MC_SEC];
|
||||
|
||||
msize = is_leap(clkregs[MC_YEAR]) ? ldmsize : dmsize;
|
||||
for(i = 0; i < (clkregs[MC_MONTH] - 1); i++)
|
||||
new_time += msize[i];
|
||||
new_time += clkregs[MC_DOM] - 1;
|
||||
new_time *= SECS_DAY;
|
||||
new_time += (clkregs[MC_HOUR] * 3600) + (clkregs[MC_MIN] * 60);
|
||||
return(new_time + clkregs[MC_SEC]);
|
||||
return(clock_ymdhms_to_secs(&dt));
|
||||
}
|
||||
/***********************************************************************
|
||||
* RTC-device support *
|
||||
|
|
Loading…
Reference in New Issue