Module Name: src Committed By: jmcneill Date: Tue Aug 23 17:00:36 UTC 2011
Modified Files: src/sys/arch/usermode/dev: clock.c src/sys/arch/usermode/include: thunk.h src/sys/arch/usermode/usermode: machdep.c thunk.c Log Message: more time_t fixes To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/arch/usermode/dev/clock.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/usermode/include/thunk.h cvs rdiff -u -r1.13 -r1.14 src/sys/arch/usermode/usermode/machdep.c \ src/sys/arch/usermode/usermode/thunk.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/usermode/dev/clock.c diff -u src/sys/arch/usermode/dev/clock.c:1.10 src/sys/arch/usermode/dev/clock.c:1.11 --- src/sys/arch/usermode/dev/clock.c:1.10 Tue Aug 23 16:09:27 2011 +++ src/sys/arch/usermode/dev/clock.c Tue Aug 23 17:00:36 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: clock.c,v 1.10 2011/08/23 16:09:27 jmcneill Exp $ */ +/* $NetBSD: clock.c,v 1.11 2011/08/23 17:00:36 jmcneill Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.10 2011/08/23 16:09:27 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.11 2011/08/23 17:00:36 jmcneill Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -83,7 +83,7 @@ clock_attach(device_t parent, device_t self, void *opaque) { clock_softc_t *sc = device_private(self); - struct itimerval itimer; + struct thunk_itimerval itimer; long tcres; aprint_naive("\n"); Index: src/sys/arch/usermode/include/thunk.h diff -u src/sys/arch/usermode/include/thunk.h:1.12 src/sys/arch/usermode/include/thunk.h:1.13 --- src/sys/arch/usermode/include/thunk.h:1.12 Tue Aug 23 16:16:26 2011 +++ src/sys/arch/usermode/include/thunk.h Tue Aug 23 17:00:36 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: thunk.h,v 1.12 2011/08/23 16:16:26 jmcneill Exp $ */ +/* $NetBSD: thunk.h,v 1.13 2011/08/23 17:00:36 jmcneill Exp $ */ /*- * Copyright (c) 2011 Jared D. McNeill <jmcne...@invisible.ca> @@ -43,7 +43,12 @@ int32_t tv_usec; }; -int thunk_setitimer(int, const struct itimerval *, struct itimerval *); +struct thunk_itimerval { + struct thunk_timeval it_interval; + struct thunk_timeval it_value; +}; + +int thunk_setitimer(int, const struct thunk_itimerval *, struct thunk_itimerval *); int thunk_gettimeofday(struct thunk_timeval *, void *); unsigned int thunk_getcounter(void); long thunk_clock_getres_monotonic(void); Index: src/sys/arch/usermode/usermode/machdep.c diff -u src/sys/arch/usermode/usermode/machdep.c:1.13 src/sys/arch/usermode/usermode/machdep.c:1.14 --- src/sys/arch/usermode/usermode/machdep.c:1.13 Sat Aug 13 10:31:24 2011 +++ src/sys/arch/usermode/usermode/machdep.c Tue Aug 23 17:00:36 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.13 2011/08/13 10:31:24 jmcneill Exp $ */ +/* $NetBSD: machdep.c,v 1.14 2011/08/23 17:00:36 jmcneill Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.13 2011/08/13 10:31:24 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.14 2011/08/23 17:00:36 jmcneill Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -102,7 +102,7 @@ void usermode_reboot(void) { - struct itimerval itimer; + struct thunk_itimerval itimer; /* make sure the timer is turned off */ memset(&itimer, 0, sizeof(itimer)); Index: src/sys/arch/usermode/usermode/thunk.c diff -u src/sys/arch/usermode/usermode/thunk.c:1.13 src/sys/arch/usermode/usermode/thunk.c:1.14 --- src/sys/arch/usermode/usermode/thunk.c:1.13 Tue Aug 23 16:16:26 2011 +++ src/sys/arch/usermode/usermode/thunk.c Tue Aug 23 17:00:36 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: thunk.c,v 1.13 2011/08/23 16:16:26 jmcneill Exp $ */ +/* $NetBSD: thunk.c,v 1.14 2011/08/23 17:00:36 jmcneill Exp $ */ /*- * Copyright (c) 2011 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: thunk.c,v 1.13 2011/08/23 16:16:26 jmcneill Exp $"); +__RCSID("$NetBSD: thunk.c,v 1.14 2011/08/23 17:00:36 jmcneill Exp $"); #include <sys/types.h> #include <sys/ansi.h> @@ -46,11 +46,49 @@ #include "../include/thunk.h" +static void +thunk_to_timeval(const struct thunk_timeval *ttv, struct timeval *tv) +{ + tv->tv_sec = ttv->tv_sec; + tv->tv_usec = ttv->tv_usec; +} + +static void +thunk_from_timeval(const struct timeval *tv, struct thunk_timeval *ttv) +{ + ttv->tv_sec = tv->tv_sec; + ttv->tv_usec = tv->tv_usec; +} + +static void +thunk_to_itimerval(const struct thunk_itimerval *tit, struct itimerval *it) +{ + thunk_to_timeval(&tit->it_interval, &it->it_interval); + thunk_to_timeval(&tit->it_value, &it->it_value); +} + +static void +thunk_from_itimerval(const struct itimerval *it, struct thunk_itimerval *tit) +{ + thunk_from_timeval(&it->it_interval, &tit->it_interval); + thunk_from_timeval(&it->it_value, &tit->it_value); +} + int -thunk_setitimer(int which, const struct itimerval *value, - struct itimerval *ovalue) +thunk_setitimer(int which, const struct thunk_itimerval *value, + struct thunk_itimerval *ovalue) { - return setitimer(which, value, ovalue); + struct itimerval it, oit; + int error; + + thunk_to_itimerval(value, &it); + error = setitimer(which, &it, &oit); + if (error) + return error; + if (ovalue) + thunk_from_itimerval(&oit, ovalue); + + return 0; } int @@ -63,8 +101,7 @@ if (error) return error; - tp->tv_sec = tv.tv_sec; - tp->tv_usec = tv.tv_usec; + thunk_from_timeval(&tv, tp); return 0; }