Module Name:    src
Committed By:   tsutsui
Date:           Sun Dec 13 11:03:33 UTC 2009

Modified Files:
        src/sys/arch/sgimips/mace: mcclock_mace.c

Log Message:
Use todr_[gs]ettime_ymdhms() format.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/sgimips/mace/mcclock_mace.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/sgimips/mace/mcclock_mace.c
diff -u src/sys/arch/sgimips/mace/mcclock_mace.c:1.11 src/sys/arch/sgimips/mace/mcclock_mace.c:1.12
--- src/sys/arch/sgimips/mace/mcclock_mace.c:1.11	Sat Dec 12 14:44:09 2009
+++ src/sys/arch/sgimips/mace/mcclock_mace.c	Sun Dec 13 11:03:33 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: mcclock_mace.c,v 1.11 2009/12/12 14:44:09 tsutsui Exp $	*/
+/*	$NetBSD: mcclock_mace.c,v 1.12 2009/12/13 11:03:33 tsutsui Exp $	*/
 
 /*
  * Copyright (c) 2001 Antti Kantee.  All Rights Reserved.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mcclock_mace.c,v 1.11 2009/12/12 14:44:09 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mcclock_mace.c,v 1.12 2009/12/13 11:03:33 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -97,10 +97,10 @@
 static int	mcclock_mace_match(struct device *, struct cfdata *, void *);
 static void	mcclock_mace_attach(struct device*, struct device *, void *);
 
-static int	mcclock_mace_gettime(struct todr_chip_handle *,
-    struct timeval *);
-static int	mcclock_mace_settime(struct todr_chip_handle *,
-    struct timeval *);
+static int	mcclock_mace_gettime_ymdhms(struct todr_chip_handle *,
+    struct clock_ymdhms *);
+static int	mcclock_mace_settime_ymdhms(struct todr_chip_handle *,
+    struct clock_ymdhms *);
 
 unsigned int	ds1687_read(void *arg, unsigned int addr);
 void		ds1687_write(void *arg, unsigned int addr, unsigned int data);
@@ -146,8 +146,8 @@
 	printf("\n");
 
 	sc->sc_todrch.cookie = sc;
-	sc->sc_todrch.todr_gettime = mcclock_mace_gettime;
-	sc->sc_todrch.todr_settime = mcclock_mace_settime;
+	sc->sc_todrch.todr_gettime_ymdhms = mcclock_mace_gettime_ymdhms;
+	sc->sc_todrch.todr_settime_ymdhms = mcclock_mace_settime_ymdhms;
 	sc->sc_todrch.todr_setwen = NULL;
 
 	todr_attach(&sc->sc_todrch);
@@ -175,11 +175,11 @@
 }
 
 static int
-mcclock_mace_gettime(struct todr_chip_handle *todrch, struct timeval *tv)
+mcclock_mace_gettime_ymdhms(struct todr_chip_handle *todrch,
+    struct clock_ymdhms *dt)
 {
 	struct mcclock_mace_softc *sc =
 	    (struct mcclock_mace_softc *)todrch->cookie;
-	struct clock_ymdhms dt;
 	ds1687_todregs regs;
 	int s;
 
@@ -187,49 +187,37 @@
 	DS1687_GETTOD(sc, &regs);
 	splx(s);
 
-	dt.dt_sec = FROMBCD(regs[DS1687_SOFT_SEC]);
-	dt.dt_min = FROMBCD(regs[DS1687_SOFT_MIN]);
-	dt.dt_hour = FROMBCD(regs[DS1687_SOFT_HOUR]);
-	dt.dt_wday = FROMBCD(regs[DS1687_SOFT_DOW]);
-	dt.dt_day = FROMBCD(regs[DS1687_SOFT_DOM]);
-	dt.dt_mon = FROMBCD(regs[DS1687_SOFT_MONTH]);
-	dt.dt_year = FROMBCD(regs[DS1687_SOFT_YEAR]) +
+	dt->dt_sec = FROMBCD(regs[DS1687_SOFT_SEC]);
+	dt->dt_min = FROMBCD(regs[DS1687_SOFT_MIN]);
+	dt->dt_hour = FROMBCD(regs[DS1687_SOFT_HOUR]);
+	dt->dt_wday = FROMBCD(regs[DS1687_SOFT_DOW]);
+	dt->dt_day = FROMBCD(regs[DS1687_SOFT_DOM]);
+	dt->dt_mon = FROMBCD(regs[DS1687_SOFT_MONTH]);
+	dt->dt_year = FROMBCD(regs[DS1687_SOFT_YEAR]) +
 	    (100 * FROMBCD(regs[DS1687_SOFT_CENTURY]));
 
-	/* simple sanity checks */
-	if (dt.dt_mon > 12 || dt.dt_day > 31 ||
-	    dt.dt_hour >= 24 || dt.dt_min >= 60 || dt.dt_sec >= 60)
-		return (EIO);
-
-	tv->tv_sec = (long)clock_ymdhms_to_secs(&dt);
-	if (tv->tv_sec == -1)
-		return (ERANGE);
-	tv->tv_usec = 0;
-
 	return (0);
 }
 
 static int
-mcclock_mace_settime(struct todr_chip_handle *todrch, struct timeval *tv)
+mcclock_mace_settime_ymdhms(struct todr_chip_handle *todrch,
+    struct clock_ymdhms *dt)
 {
 	struct mcclock_mace_softc *sc =
 	    (struct mcclock_mace_softc *)todrch->cookie;
-	struct clock_ymdhms dt;
 	ds1687_todregs regs;
 	int s;
 
-	clock_secs_to_ymdhms((time_t)(tv->tv_sec + (tv->tv_usec > 500000)),&dt);
-
 	memset(&regs, 0, sizeof(regs));
 
-	regs[DS1687_SOFT_SEC] = TOBCD(dt.dt_sec);
-	regs[DS1687_SOFT_MIN] = TOBCD(dt.dt_min);
-	regs[DS1687_SOFT_HOUR] = TOBCD(dt.dt_hour);
-	regs[DS1687_SOFT_DOW] = TOBCD(dt.dt_wday);
-	regs[DS1687_SOFT_DOM] = TOBCD(dt.dt_day);
-	regs[DS1687_SOFT_MONTH] = TOBCD(dt.dt_mon);
-	regs[DS1687_SOFT_YEAR] = TOBCD(dt.dt_year % 100);
-	regs[DS1687_SOFT_CENTURY] = TOBCD(dt.dt_year / 100);
+	regs[DS1687_SOFT_SEC] = TOBCD(dt->dt_sec);
+	regs[DS1687_SOFT_MIN] = TOBCD(dt->dt_min);
+	regs[DS1687_SOFT_HOUR] = TOBCD(dt->dt_hour);
+	regs[DS1687_SOFT_DOW] = TOBCD(dt->dt_wday);
+	regs[DS1687_SOFT_DOM] = TOBCD(dt->dt_day);
+	regs[DS1687_SOFT_MONTH] = TOBCD(dt->dt_mon);
+	regs[DS1687_SOFT_YEAR] = TOBCD(dt->dt_year % 100);
+	regs[DS1687_SOFT_CENTURY] = TOBCD(dt->dt_year / 100);
 	s = splhigh();
 	DS1687_PUTTOD(sc, &regs);
 	splx(s);

Reply via email to