Module Name: src
Committed By: christos
Date: Mon Nov 17 02:15:49 UTC 2014
Modified Files:
src/sys/arch/atari/dev: clockreg.h
src/sys/arch/dreamcast/dev/g2: g2rtc.c
src/sys/arch/hp300/stand/common: clock.c
src/sys/arch/hpcmips/vr: rtc.c rtcreg.h
src/sys/arch/mvme68k/stand/libsa: chiptotime.c clock.c
src/sys/arch/mvmeppc/stand/libsa: clock.c
src/sys/arch/vax/include: clock.h
src/sys/arch/vax/vax: clock.c
src/sys/arch/x68k/stand/libsa: clock.c
src/sys/dev: clock_subr.c clock_subr.h
src/sys/dev/dec: mcclock.c
src/sys/fs/smbfs: smbfs_subr.c
src/sys/kern: kern_todr.c
src/sys/sys: Makefile
Log Message:
PR/49207: Kamil Rytarowski: Add sys/clock.h with generic time macros
(derived from clock_subr.h). Keep clock_subr.h with the kernel structures
and functions to reduce diffs, and have clock.h only include standalone
constants and macros.
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/atari/dev/clockreg.h
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/dreamcast/dev/g2/g2rtc.c
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/hp300/stand/common/clock.c
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/hpcmips/vr/rtc.c
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/hpcmips/vr/rtcreg.h
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/mvme68k/stand/libsa/chiptotime.c
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/mvme68k/stand/libsa/clock.c
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/mvmeppc/stand/libsa/clock.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/vax/include/clock.h
cvs rdiff -u -r1.56 -r1.57 src/sys/arch/vax/vax/clock.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/x68k/stand/libsa/clock.c
cvs rdiff -u -r1.22 -r1.23 src/sys/dev/clock_subr.c src/sys/dev/clock_subr.h
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/dec/mcclock.c
cvs rdiff -u -r1.17 -r1.18 src/sys/fs/smbfs/smbfs_subr.c
cvs rdiff -u -r1.36 -r1.37 src/sys/kern/kern_todr.c
cvs rdiff -u -r1.151 -r1.152 src/sys/sys/Makefile
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/atari/dev/clockreg.h
diff -u src/sys/arch/atari/dev/clockreg.h:1.6 src/sys/arch/atari/dev/clockreg.h:1.7
--- src/sys/arch/atari/dev/clockreg.h:1.6 Tue Oct 20 15:10:10 2009
+++ src/sys/arch/atari/dev/clockreg.h Sun Nov 16 21:15:48 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: clockreg.h,v 1.6 2009/10/20 19:10:10 snj Exp $ */
+/* $NetBSD: clockreg.h,v 1.7 2014/11/17 02:15:48 christos Exp $ */
/*
* Copyright (c) 1995 Leo Weppelman.
@@ -56,10 +56,6 @@ struct rtc {
/*
* Some useful constants/macros
*/
-#define is_leap(x) (!(x % 4) && ((x % 100) || !(x % 1000)))
#define range_test(n, l, h) ((n) < (l) || (n) > (h))
-#define SECS_DAY 86400L
-#define SECS_HOUR 3600L
#define GEMSTARTOFTIME ((machineid & ATARI_CLKBROKEN) ? 1970 : 1968)
-#define BSDSTARTOFTIME 1970
#endif /* _CLOCKREG_H */
Index: src/sys/arch/dreamcast/dev/g2/g2rtc.c
diff -u src/sys/arch/dreamcast/dev/g2/g2rtc.c:1.6 src/sys/arch/dreamcast/dev/g2/g2rtc.c:1.7
--- src/sys/arch/dreamcast/dev/g2/g2rtc.c:1.6 Tue Jul 19 11:52:29 2011
+++ src/sys/arch/dreamcast/dev/g2/g2rtc.c Sun Nov 16 21:15:48 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: g2rtc.c,v 1.6 2011/07/19 15:52:29 dyoung Exp $ */
+/* $NetBSD: g2rtc.c,v 1.7 2014/11/17 02:15:48 christos Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: g2rtc.c,v 1.6 2011/07/19 15:52:29 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: g2rtc.c,v 1.7 2014/11/17 02:15:48 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -43,7 +43,7 @@ __KERNEL_RCSID(0, "$NetBSD: g2rtc.c,v 1.
#define G2RTC_REG_SIZE 12
/* Offset by 20 years, 5 of them are leap */
-#define G2RTC_OFFSET (20 * SECYR + 5 * SECDAY)
+#define G2RTC_OFFSET (20 * SECS_PER_COMMON_YEAR + 5 * SECS_PER_DAY)
struct g2rtc_softc {
device_t sc_dev;
Index: src/sys/arch/hp300/stand/common/clock.c
diff -u src/sys/arch/hp300/stand/common/clock.c:1.12 src/sys/arch/hp300/stand/common/clock.c:1.13
--- src/sys/arch/hp300/stand/common/clock.c:1.12 Sat Apr 19 02:04:58 2014
+++ src/sys/arch/hp300/stand/common/clock.c Sun Nov 16 21:15:48 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: clock.c,v 1.12 2014/04/19 06:04:58 tsutsui Exp $ */
+/* $NetBSD: clock.c,v 1.13 2014/11/17 02:15:48 christos Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -49,31 +49,22 @@
#include <hp300/dev/frodoreg.h> /* for APCI offsets */
#include <hp300/dev/intioreg.h> /* for frodo offsets */
#include <dev/ic/mc146818reg.h>
+#include <dev/clock_subr.h>
#include <lib/libsa/stand.h>
#include <lib/libsa/net.h>
#include <hp300/stand/common/samachdep.h>
#define FEBRUARY 2
-#define STARTOFTIME 1970
-#define SECDAY (60L * 60L * 24L)
-#define SECYR (SECDAY * 365)
#define BBC_SET_REG 0xe0
#define BBC_WRITE_REG 0xc2
#define BBC_READ_REG 0xc3
#define NUM_BBC_REGS 12
-#define leapyear(year) ((year) % 4 == 0)
#define range_test(n, l, h) if ((n) < (l) || (n) > (h)) return false
-#define days_in_year(a) (leapyear(a) ? 366 : 365)
-#define days_in_month(a) (month_days[(a) - 1])
#define bbc_to_decimal(a,b) (bbc_registers[a] * 10 + bbc_registers[b])
-static const int month_days[12] = {
- 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
-};
-
static uint8_t bbc_registers[13];
static struct hil_dev *bbcaddr = BBCADDR;
@@ -133,7 +124,7 @@ clock_to_gmt(satime_t *timbuf)
year = bbc_to_decimal(12, 11) + 1900;
}
- if (year < STARTOFTIME)
+ if (year < POSIX_BASE_YEAR)
year += 100;
#ifdef CLOCK_DEBUG
@@ -147,9 +138,9 @@ clock_to_gmt(satime_t *timbuf)
tmp = 0;
- for (i = STARTOFTIME; i < year; i++)
- tmp += days_in_year(i);
- if (leapyear(year) && month > FEBRUARY)
+ for (i = POSIX_BASE_YEAR; i < year; i++)
+ tmp += days_per_year(i);
+ if (is_leap_year(year) && month > FEBRUARY)
tmp++;
for (i = 1; i < month; i++)
Index: src/sys/arch/hpcmips/vr/rtc.c
diff -u src/sys/arch/hpcmips/vr/rtc.c:1.32 src/sys/arch/hpcmips/vr/rtc.c:1.33
--- src/sys/arch/hpcmips/vr/rtc.c:1.32 Fri Mar 18 11:31:38 2011
+++ src/sys/arch/hpcmips/vr/rtc.c Sun Nov 16 21:15:48 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: rtc.c,v 1.32 2011/03/18 15:31:38 tsutsui Exp $ */
+/* $NetBSD: rtc.c,v 1.33 2014/11/17 02:15:48 christos Exp $ */
/*-
* Copyright (c) 1999 Shin Takemura. All rights reserved.
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtc.c,v 1.32 2011/03/18 15:31:38 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtc.c,v 1.33 2014/11/17 02:15:48 christos Exp $");
#include "opt_vr41xx.h"
@@ -203,10 +203,10 @@ vrrtc_attach(device_t parent, device_t s
* be on Jan 1.
*/
for (year = EPOCHYEAR; year < POSIX_BASE_YEAR; year++) {
- sc->sc_epoch += LEAPYEAR4(year) ? SECYR + SECDAY : SECYR;
+ sc->sc_epoch += days_per_year(year) * SECS_PER_YEAR;
}
for (year = POSIX_BASE_YEAR; year < EPOCHYEAR; year++) {
- sc->sc_epoch -= LEAPYEAR4(year) ? SECYR + SECDAY : SECYR;
+ sc->sc_epoch -= days_per_year(year) * SECS_PER_YEAR;
}
/*
Index: src/sys/arch/hpcmips/vr/rtcreg.h
diff -u src/sys/arch/hpcmips/vr/rtcreg.h:1.9 src/sys/arch/hpcmips/vr/rtcreg.h:1.10
--- src/sys/arch/hpcmips/vr/rtcreg.h:1.9 Fri Sep 15 22:14:57 2006
+++ src/sys/arch/hpcmips/vr/rtcreg.h Sun Nov 16 21:15:48 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: rtcreg.h,v 1.9 2006/09/16 02:14:57 gdamore Exp $ */
+/* $NetBSD: rtcreg.h,v 1.10 2014/11/17 02:15:48 christos Exp $ */
/*-
* Copyright (c) 1999 Shin Takemura. All rights reserved.
@@ -42,9 +42,6 @@
#define EPOCHMONTH 1 /* WINCE epoch month of year */
#define EPOCHDATE 1 /* WINCE epoch date of month */
-#define LEAPYEAR4(year) ((((year) % 4) == 0 && ((year) % 100) != 0) || ((year%400)) == 0)
-#define LEAPYEAR2(year) (((year) % 4) == 0)
-
/*
* RTC (Real Time Clock Unit) Registers definitions.
* start 0x0B0000C0 (Vr4102-4121)
Index: src/sys/arch/mvme68k/stand/libsa/chiptotime.c
diff -u src/sys/arch/mvme68k/stand/libsa/chiptotime.c:1.4 src/sys/arch/mvme68k/stand/libsa/chiptotime.c:1.5
--- src/sys/arch/mvme68k/stand/libsa/chiptotime.c:1.4 Sat Jan 12 04:54:32 2008
+++ src/sys/arch/mvme68k/stand/libsa/chiptotime.c Sun Nov 16 21:15:48 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: chiptotime.c,v 1.4 2008/01/12 09:54:32 tsutsui Exp $ */
+/* $NetBSD: chiptotime.c,v 1.5 2014/11/17 02:15:48 christos Exp $ */
#include <sys/types.h>
@@ -15,9 +15,6 @@
#define TOBCD(x) (int)((((unsigned int)(x)) / 10 * 16) +\
(((unsigned int)(x)) % 10))
-#define SECDAY (24 * 60 * 60)
-#define SECYR (SECDAY * 365)
-#define LEAPYEAR(y) (((y) & 3) == 0)
#define YEAR0 68
/*
@@ -46,10 +43,11 @@ chiptotime(int sec, int min, int hour, i
return (0);
days = 0;
for (yr = 70; yr < year; yr++)
- days += LEAPYEAR(yr) ? 366 : 365;
+ days += days_per_year(yr);
days += dayyr[mon - 1] + day - 1;
- if (LEAPYEAR(yr) && mon > 2)
+ if (is_leap_year(yr) && mon > 2)
days++;
/* now have days since Jan 1, 1970; the rest is easy... */
- return days * SECDAY + hour * 3600 + min * 60 + sec;
+ return days * SECS_PER_DAY + hour * SECS_PER_HOUR
+ + min * SECS_PER_MINUTE + sec;
}
Index: src/sys/arch/mvme68k/stand/libsa/clock.c
diff -u src/sys/arch/mvme68k/stand/libsa/clock.c:1.9 src/sys/arch/mvme68k/stand/libsa/clock.c:1.10
--- src/sys/arch/mvme68k/stand/libsa/clock.c:1.9 Mon Jan 12 06:32:44 2009
+++ src/sys/arch/mvme68k/stand/libsa/clock.c Sun Nov 16 21:15:48 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: clock.c,v 1.9 2009/01/12 11:32:44 tsutsui Exp $ */
+/* $NetBSD: clock.c,v 1.10 2014/11/17 02:15:48 christos Exp $ */
#include <sys/types.h>
#include <machine/prom.h>
@@ -15,9 +15,6 @@
#define TOBCD(x) (int)((((unsigned int)(x)) / 10 * 16) +\
(((unsigned int)(x)) % 10))
-#define SECDAY (24 * 60 * 60)
-#define SECYR (SECDAY * 365)
-#define LEAPYEAR(y) (((y) & 3) == 0)
#define YEAR0 68
/*
@@ -46,12 +43,13 @@ chiptotime(int sec, int min, int hour, i
return (0);
days = 0;
for (yr = 70; yr < year; yr++)
- days += LEAPYEAR(yr) ? 366 : 365;
+ days += days_per_year(yr);
days += dayyr[mon - 1] + day - 1;
- if (LEAPYEAR(yr) && mon > 2)
+ if (is_leap_year(yr) && mon > 2)
days++;
/* now have days since Jan 1, 1970; the rest is easy... */
- return days * SECDAY + hour * 3600 + min * 60 + sec;
+ return days * SECS_PER_DAY + hour * SECS_PER_HOUR
+ + min * SECS_PER_MINUTE + sec;
}
satime_t
Index: src/sys/arch/mvmeppc/stand/libsa/clock.c
diff -u src/sys/arch/mvmeppc/stand/libsa/clock.c:1.3 src/sys/arch/mvmeppc/stand/libsa/clock.c:1.4
--- src/sys/arch/mvmeppc/stand/libsa/clock.c:1.3 Wed Mar 18 06:22:33 2009
+++ src/sys/arch/mvmeppc/stand/libsa/clock.c Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: clock.c,v 1.3 2009/03/18 10:22:33 cegger Exp $ */
+/* $NetBSD: clock.c,v 1.4 2014/11/17 02:15:49 christos Exp $ */
/*
* This is a slightly modified version of mvme68k's standalone clock.c.
@@ -7,6 +7,7 @@
*/
#include <sys/types.h>
+#include <dev/clock_subr.h>
#include "stand.h"
#include "net.h"
@@ -16,9 +17,6 @@
#define FROMBCD(x) (int)((((unsigned int)(x)) >> 4) * 10 +\
(((unsigned int)(x)) & 0xf))
-#define SECDAY (24 * 60 * 60)
-#define SECYR (SECDAY * 365)
-#define LEAPYEAR(y) (((y) & 3) == 0)
#define YEAR0 68
/*
@@ -47,12 +45,13 @@ chiptotime(int sec, int min, int hour, i
return (0);
days = 0;
for (yr = 70; yr < year; yr++)
- days += LEAPYEAR(yr) ? 366 : 365;
+ days += days_per_year(yr);
days += dayyr[mon - 1] + day - 1;
- if (LEAPYEAR(yr) && mon > 2)
+ if (is_leap_year(yr) && mon > 2)
days++;
/* now have days since Jan 1, 1970; the rest is easy... */
- return (days * SECDAY + hour * 3600 + min * 60 + sec);
+ return days * SECS_PER_DAY + hour * SECS_PER_HOUR
+ + min * SECS_PER_MINUTE + sec;
}
satime_t
Index: src/sys/arch/vax/include/clock.h
diff -u src/sys/arch/vax/include/clock.h:1.8 src/sys/arch/vax/include/clock.h:1.9
--- src/sys/arch/vax/include/clock.h:1.8 Thu Nov 18 22:31:24 2010
+++ src/sys/arch/vax/include/clock.h Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: clock.h,v 1.8 2010/11/19 03:31:24 uwe Exp $ */
+/* $NetBSD: clock.h,v 1.9 2014/11/17 02:15:49 christos Exp $ */
/*
* Copyright (c) 1996 Ludd, University of Lule}, Sweden.
* All rights reserved.
@@ -37,14 +37,6 @@
/*
* Time constants. These are unlikely to change.
*/
-#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)
-#define SEC_PER_DAY (SEC_PER_HOUR * 24)
-#define DAYSPERYEAR(y) (IS_LEAPYEAR(y) ? 366 : 365)
-#define SECPERYEAR(y) (DAYSPERYEAR(y) * SEC_PER_DAY)
-
#define TODRBASE (1 << 28) /* Rumours says it comes from VMS */
#define SEC_OFF 0
Index: src/sys/arch/vax/vax/clock.c
diff -u src/sys/arch/vax/vax/clock.c:1.56 src/sys/arch/vax/vax/clock.c:1.57
--- src/sys/arch/vax/vax/clock.c:1.56 Tue Mar 6 17:50:24 2012
+++ src/sys/arch/vax/vax/clock.c Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: clock.c,v 1.56 2012/03/06 22:50:24 jklos Exp $ */
+/* $NetBSD: clock.c,v 1.57 2014/11/17 02:15:49 christos 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.56 2012/03/06 22:50:24 jklos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.57 2014/11/17 02:15:49 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -198,7 +198,7 @@ yeartonum(int y)
int n;
for (n = 0, y -= 1; y > 1969; y--)
- n += SECPERYEAR(y);
+ n += days_per_year(y) * SECS_PER_DAY;
return n;
}
@@ -209,7 +209,7 @@ int
numtoyear(int num)
{
int y = 1970, j;
- while(num >= (j = SECPERYEAR(y))) {
+ while(num >= (j = days_per_year(y) * SECS_PER_DAY)) {
y++;
num -= j;
}
Index: src/sys/arch/x68k/stand/libsa/clock.c
diff -u src/sys/arch/x68k/stand/libsa/clock.c:1.2 src/sys/arch/x68k/stand/libsa/clock.c:1.3
--- src/sys/arch/x68k/stand/libsa/clock.c:1.2 Thu Nov 1 10:46:26 2012
+++ src/sys/arch/x68k/stand/libsa/clock.c Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: clock.c,v 1.2 2012/11/01 14:46:26 isaki Exp $ */
+/* $NetBSD: clock.c,v 1.3 2014/11/17 02:15:49 christos Exp $ */
/*
* Copyright (c) 2003 Tetsuya Isaki. All rights reserved.
@@ -33,8 +33,6 @@
#include "consio.h" /* XXX: for MFP_TIMERC */
/* x68k's RTC is defunct 2079, so there is no y2100 problem. */
-#define LEAPYEAR(y) (((y) % 4) == 0)
-#define SECDAY (24 * 60 * 60)
int rtc_offset;
@@ -68,14 +66,15 @@ getsecs(void)
days = 0;
for (y = 1970; y < year; y++)
- days += 365 + LEAPYEAR(y);
+ days += days_per_year(y);
days += yday[mon - 1] + day - 1;
- if (LEAPYEAR(y) && mon > 2)
+ if (is_leap_year(y) && mon > 2)
days++;
/* now we have days since Jan 1, 1970. the rest is easy... */
- return (days * SECDAY) + (hour * 3600) + (min * 60) + sec
- + (rtc_offset * 60);
+ return days * SECS_PER_DAY) + (hour * SECS_PER_HOUR)
+ + (min * SECS_PER_MINUTE) + sec
+ + (rtc_offset * 60);
}
void
Index: src/sys/dev/clock_subr.c
diff -u src/sys/dev/clock_subr.c:1.22 src/sys/dev/clock_subr.c:1.23
--- src/sys/dev/clock_subr.c:1.22 Sun Sep 7 07:50:23 2014
+++ src/sys/dev/clock_subr.c Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: clock_subr.c,v 1.22 2014/09/07 11:50:23 martin Exp $ */
+/* $NetBSD: clock_subr.c,v 1.23 2014/11/17 02:15:49 christos Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -50,7 +50,7 @@
#ifdef _KERNEL
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: clock_subr.c,v 1.22 2014/09/07 11:50:23 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: clock_subr.c,v 1.23 2014/11/17 02:15:49 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -65,8 +65,6 @@ __KERNEL_RCSID(0, "$NetBSD: clock_subr.c
static inline int leapyear(uint64_t year);
#define FEBRUARY 2
-#define days_in_year(a) (leapyear(a) ? 366 : 365)
-#define days_in_month(a) (month_days[(a) - 1])
/* for easier alignment:
* time from the epoch to 2000 (there were 7 leap years): */
@@ -81,37 +79,6 @@ static inline int leapyear(uint64_t year
/* 400 year intervals include 97 leap years */
#define DAYS400YEARS (365*400+97)
-static const int month_days[12] = {
- 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
-};
-
-/*
- * This inline avoids some unnecessary modulo operations
- * as compared with the usual macro:
- * ( ((year % 4) == 0 &&
- * (year % 100) != 0) ||
- * ((year % 400) == 0) )
- * It is otherwise equivalent.
- */
-static inline int
-leapyear(uint64_t year)
-{
- int rv = 0;
-
- if (year < 1969)
- return EINVAL;
-
- if ((year & 3) == 0) {
- rv = 1;
- if ((year % 100) == 0) {
- rv = 0;
- if ((year % 400) == 0)
- rv = 1;
- }
- }
- return rv;
-}
-
time_t
clock_ymdhms_to_secs(struct clock_ymdhms *dt)
{
@@ -126,13 +93,13 @@ clock_ymdhms_to_secs(struct clock_ymdhms
if (year < POSIX_BASE_YEAR)
return -1;
days = 0;
- if (leapyear(year) && dt->dt_mon > FEBRUARY)
+ if (is_leap_year(year) && dt->dt_mon > FEBRUARY)
days++;
if (year < 2000) {
/* simple way for early years */
for (i = POSIX_BASE_YEAR; i < year; i++)
- days += days_in_year(i);
+ days += days_per_year(i);
} else {
/* years are properly aligned */
days += DAYSTO2000;
@@ -182,8 +149,8 @@ clock_secs_to_ymdhms(time_t secs, struct
if (secs < 0)
return EINVAL;
- days = secs / SECDAY;
- rsec = secs % SECDAY;
+ days = secs / SECS_PER_DAY;
+ rsec = secs % SECS_PER_DAY;
/* Day of week (Note: 1/1/1970 was a Thursday) */
dt->dt_wday = (days + 4) % 7;
@@ -204,20 +171,20 @@ clock_secs_to_ymdhms(time_t secs, struct
days -= i*DAYS4YEARS;
dt->dt_year += i*4;
- for (i = dt->dt_year; days >= days_in_year(i); i++)
- days -= days_in_year(i);
+ for (i = dt->dt_year; days >= days_per_year(i); i++)
+ days -= days_per_year(i);
dt->dt_year = i;
} else {
/* Subtract out whole years, counting them in i. */
- for (i = POSIX_BASE_YEAR; days >= days_in_year(i); i++)
- days -= days_in_year(i);
+ for (i = POSIX_BASE_YEAR; days >= days_per_year(i); i++)
+ days -= days_per_year(i);
dt->dt_year = i;
}
/* Subtract out whole months, counting them in i. */
for (leap = 0, i = 1; days >= days_in_month(i)+leap; i++) {
days -= days_in_month(i)+leap;
- if (i == 1 && leapyear(dt->dt_year))
+ if (i == 1 && is_leap_year(dt->dt_year))
leap = 1;
else
leap = 0;
Index: src/sys/dev/clock_subr.h
diff -u src/sys/dev/clock_subr.h:1.22 src/sys/dev/clock_subr.h:1.23
--- src/sys/dev/clock_subr.h:1.22 Sun Sep 7 07:50:23 2014
+++ src/sys/dev/clock_subr.h Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: clock_subr.h,v 1.22 2014/09/07 11:50:23 martin Exp $ */
+/* $NetBSD: clock_subr.h,v 1.23 2014/11/17 02:15:49 christos Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -32,17 +32,19 @@
#ifndef _DEV_CLOCK_SUBR_H_
#define _DEV_CLOCK_SUBR_H_
+#include <sys/clock.h>
+
/*
* "POSIX time" to/from "YY/MM/DD/hh/mm/ss"
*/
struct clock_ymdhms {
uint64_t dt_year;
- u_char dt_mon;
- u_char dt_day;
- u_char dt_wday; /* Day of week */
- u_char dt_hour;
- u_char dt_min;
- u_char dt_sec;
+ uint8_t dt_mon;
+ uint8_t dt_day;
+ uint8_t dt_wday; /* Day of week */
+ uint8_t dt_hour;
+ uint8_t dt_min;
+ uint8_t dt_sec;
};
time_t clock_ymdhms_to_secs(struct clock_ymdhms *);
@@ -54,13 +56,6 @@ int clock_secs_to_ymdhms(time_t, struct
#define FROMBCD(x) bcdtobin((x))
#define TOBCD(x) bintobcd((x))
-/* Some handy constants. */
-#define SECDAY (24 * 60 * 60)
-#define SECYR (SECDAY * 365)
-
-/* Traditional POSIX base year */
-#define POSIX_BASE_YEAR 1970
-
/*
* Interface to time-of-day clock devices.
*
Index: src/sys/dev/dec/mcclock.c
diff -u src/sys/dev/dec/mcclock.c:1.27 src/sys/dev/dec/mcclock.c:1.28
--- src/sys/dev/dec/mcclock.c:1.27 Fri Jun 3 21:43:56 2011
+++ src/sys/dev/dec/mcclock.c Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: mcclock.c,v 1.27 2011/06/04 01:43:56 tsutsui Exp $ */
+/* $NetBSD: mcclock.c,v 1.28 2014/11/17 02:15:49 christos Exp $ */
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mcclock.c,v 1.27 2011/06/04 01:43:56 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mcclock.c,v 1.28 2014/11/17 02:15:49 christos Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -168,13 +168,13 @@ mcclock_get(todr_chip_handle_t tch, stru
dt.dt_mon = regs[MC_MONTH];
dt.dt_year = 1972;
- yearsecs = clock_ymdhms_to_secs(&dt) - (72 - 70) * SECYR;
+ yearsecs = clock_ymdhms_to_secs(&dt) - (72 - 70) * SECS_PER_COMMON_YEAR;
/*
* Take the actual year from the filesystem if possible;
* allow for 2 days of clock loss and 363 days of clock gain.
*/
- dt.dt_year = 1972; /* or MINYEAR or base/SECYR+1970 ... */
+ dt.dt_year = 1972; /* or MINYEAR or base/SECS_PER_COMMON_YEAR+1970... */
dt.dt_mon = 1;
dt.dt_day = 1;
dt.dt_hour = 0;
@@ -182,7 +182,7 @@ mcclock_get(todr_chip_handle_t tch, stru
dt.dt_sec = 0;
for(;;) {
tvp->tv_sec = yearsecs + clock_ymdhms_to_secs(&dt);
- if (tvp->tv_sec > tch->base_time - 2 * SECDAY)
+ if (tvp->tv_sec > tch->base_time - 2 * SECS_PER_DAY)
break;
dt.dt_year++;
}
@@ -214,7 +214,7 @@ mcclock_set(todr_chip_handle_t tch, stru
dt.dt_sec = 0;
yearsecs = tvp->tv_sec - clock_ymdhms_to_secs(&dt);
-#define first72 ((72 - 70) * SECYR)
+#define first72 ((72 - 70) * SECS_PER_COMMON_YEAR)
clock_secs_to_ymdhms(first72 + yearsecs, &dt);
#ifdef DEBUG
Index: src/sys/fs/smbfs/smbfs_subr.c
diff -u src/sys/fs/smbfs/smbfs_subr.c:1.17 src/sys/fs/smbfs/smbfs_subr.c:1.18
--- src/sys/fs/smbfs/smbfs_subr.c:1.17 Sat Nov 15 13:52:44 2014
+++ src/sys/fs/smbfs/smbfs_subr.c Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: smbfs_subr.c,v 1.17 2014/11/15 18:52:44 nakayama Exp $ */
+/* $NetBSD: smbfs_subr.c,v 1.18 2014/11/17 02:15:49 christos Exp $ */
/*
* Copyright (c) 2000-2001, Boris Popov
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smbfs_subr.c,v 1.17 2014/11/15 18:52:44 nakayama Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smbfs_subr.c,v 1.18 2014/11/17 02:15:49 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -176,12 +176,12 @@ smb_time_unix2dos(struct timespec *tsp,
if (days != lastday) {
lastday = days;
for (year = 1970;; year++) {
- inc = year & 0x03 ? 365 : 366;
+ inc = days_per_year(year);
if (days < inc)
break;
days -= inc;
}
- months = year & 0x03 ? regyear : leapyear;
+ months = is_leap_year(year) ? leapyear : regyear;
for (month = 0; days >= months[month]; month++)
;
if (month > 0)
Index: src/sys/kern/kern_todr.c
diff -u src/sys/kern/kern_todr.c:1.36 src/sys/kern/kern_todr.c:1.37
--- src/sys/kern/kern_todr.c:1.36 Sun Oct 12 12:23:20 2014
+++ src/sys/kern/kern_todr.c Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_todr.c,v 1.36 2014/10/12 16:23:20 jmcneill Exp $ */
+/* $NetBSD: kern_todr.c,v 1.37 2014/11/17 02:15:49 christos Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_todr.c,v 1.36 2014/10/12 16:23:20 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_todr.c,v 1.37 2014/11/17 02:15:49 christos Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -85,7 +85,7 @@ inittodr(time_t base)
rnd_add_data(NULL, &base, sizeof(base), 0);
- if (base < 5 * SECYR) {
+ if (base < 5 * SECS_PER_COMMON_YEAR) {
struct clock_ymdhms basedate;
/*
@@ -113,7 +113,7 @@ inittodr(time_t base)
if ((todr_handle == NULL) ||
(todr_gettime(todr_handle, &tv) != 0) ||
- (tv.tv_sec < (25 * SECYR))) {
+ (tv.tv_sec < (25 * SECS_PER_COMMON_YEAR))) {
if (todr_handle != NULL)
printf("WARNING: preposterous TOD clock time\n");
@@ -126,7 +126,7 @@ inittodr(time_t base)
if (deltat < 0)
deltat = -deltat;
- if (!badbase && deltat >= 2 * SECDAY) {
+ if (!badbase && deltat >= 2 * SECS_PER_DAY) {
if (tv.tv_sec < base) {
/*
@@ -136,11 +136,11 @@ inittodr(time_t base)
* believe the filesystem.
*/
printf("WARNING: clock lost %" PRId64 " days\n",
- deltat / SECDAY);
+ deltat / SECS_PER_DAY);
badrtc = true;
} else {
aprint_verbose("WARNING: clock gained %" PRId64
- " days\n", deltat / SECDAY);
+ " days\n", deltat / SECS_PER_DAY);
goodtime = true;
}
} else {
@@ -179,8 +179,8 @@ inittodr(time_t base)
* Reset the TODR based on the time value; used when the TODR
* has a preposterous value and also when the time is reset
* by the stime system call. Also called when the TODR goes past
- * TODRZERO + 100*(SECYEAR+2*SECDAY) (e.g. on Jan 2 just after midnight)
- * to wrap the TODR around.
+ * TODRZERO + 100*(SECS_PER_COMMON_YEAR+2*SECS_PER_DAY)
+ * (e.g. on Jan 2 just after midnight) to wrap the TODR around.
*/
void
resettodr(void)
Index: src/sys/sys/Makefile
diff -u src/sys/sys/Makefile:1.151 src/sys/sys/Makefile:1.152
--- src/sys/sys/Makefile:1.151 Tue Aug 19 03:27:31 2014
+++ src/sys/sys/Makefile Sun Nov 16 21:15:49 2014
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.151 2014/08/19 07:27:31 matt Exp $
+# $NetBSD: Makefile,v 1.152 2014/11/17 02:15:49 christos Exp $
.include <bsd.own.mk>
@@ -7,7 +7,7 @@ INCSDIR= /usr/include/sys
INCS= acct.h agpio.h aio.h ansi.h aout_mids.h ataio.h atomic.h audioio.h \
bitops.h bootblock.h bswap.h buf.h \
callback.h callout.h cdbr.h cdefs.h cdefs_aout.h \
- cdefs_elf.h cdio.h chio.h clockctl.h \
+ cdefs_elf.h cdio.h chio.h clock.h clockctl.h \
common_ansi.h common_int_const.h common_int_fmtio.h \
common_int_limits.h common_int_mwgwtypes.h common_int_types.h \
common_limits.h common_wchar_limits.h \