Module Name: src
Committed By: uwe
Date: Fri Nov 19 03:31:25 UTC 2010
Modified Files:
src/sys/arch/vax/include: clock.h
src/sys/arch/vax/vax: clock.c
Log Message:
Correct definition of leap year. Make yeartonum and numtoyear use
full years so that year 2000 is correctly counted as a leap year.
Now NetBSD under SIMH picks up correct time-of-day clock value. It
used to be a day behind, since 2000 - 1900 = 100 and naive leap year
test wouldn't count it as a leap year.
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/vax/include/clock.h
cvs rdiff -u -r1.53 -r1.54 src/sys/arch/vax/vax/clock.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/vax/include/clock.h
diff -u src/sys/arch/vax/include/clock.h:1.7 src/sys/arch/vax/include/clock.h:1.8
--- src/sys/arch/vax/include/clock.h:1.7 Sat Dec 12 14:44:09 2009
+++ src/sys/arch/vax/include/clock.h Fri Nov 19 03:31:24 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: clock.h,v 1.7 2009/12/12 14:44:09 tsutsui Exp $ */
+/* $NetBSD: clock.h,v 1.8 2010/11/19 03:31:24 uwe Exp $ */
/*
* Copyright (c) 1996 Ludd, University of Lule}, Sweden.
* All rights reserved.
@@ -37,7 +37,7 @@
/*
* Time constants. These are unlikely to change.
*/
-#define IS_LEAPYEAR(y) (((y % 4) == 0) && (y % 100))
+#define IS_LEAPYEAR(y) ((((y % 4) == 0) && ((y % 100) != 0)) || ((y % 400) == 0))
#define SEC_PER_MIN (60)
#define SEC_PER_HOUR (SEC_PER_MIN * 60)
Index: src/sys/arch/vax/vax/clock.c
diff -u src/sys/arch/vax/vax/clock.c:1.53 src/sys/arch/vax/vax/clock.c:1.54
--- src/sys/arch/vax/vax/clock.c:1.53 Thu Jul 1 19:50:12 2010
+++ src/sys/arch/vax/vax/clock.c Fri Nov 19 03:31:24 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: clock.c,v 1.53 2010/07/01 19:50:12 ragge Exp $ */
+/* $NetBSD: clock.c,v 1.54 2010/11/19 03:31:24 uwe Exp $ */
/*
* Copyright (c) 1995 Ludd, University of Lule}, Sweden.
* All rights reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.53 2010/07/01 19:50:12 ragge Exp $");
+__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.54 2010/11/19 03:31:24 uwe Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -199,18 +199,18 @@
{
int n;
- for (n = 0, y -= 1; y > 69; y--)
+ for (n = 0, y -= 1; y > 1969; y--)
n += SECPERYEAR(y);
return n;
}
/*
- * Converts tick number to a year 70 ->
+ * Converts tick number to a year 1970 ->
*/
int
numtoyear(int num)
{
- int y = 70, j;
+ int y = 1970, j;
while(num >= (j = SECPERYEAR(y))) {
y++;
num -= j;