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;
 }

Reply via email to