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 \