From c3f47ca9fa033ac1994df605e980df8e224fda88 Mon Sep 17 00:00:00 2001 From: Peter Wemm Date: Mon, 30 Dec 1996 15:36:56 +0000 Subject: Add NetBSD/OpenBSD compatable timeradd()/timersub() user-space macros. These are deliberately not visible to the kernel since we have timevaladd() and timevalsub() functions there. Obtained from: NetBSD/OpenBSD --- sys/sys/time.h | 23 ++++++++++++++++++++++- sys/sys/timetc.h | 23 ++++++++++++++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/sys/sys/time.h b/sys/sys/time.h index f68c5cc8f57f..ef2f222710c4 100644 --- a/sys/sys/time.h +++ b/sys/sys/time.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)time.h 8.5 (Berkeley) 5/4/95 - * $Id: time.h,v 1.7 1996/03/11 02:11:25 hsu Exp $ + * $Id: time.h,v 1.8 1996/09/19 18:21:20 nate Exp $ */ #ifndef _SYS_TIME_H_ @@ -84,6 +84,27 @@ struct timezone { (((tvp)->tv_sec == (uvp)->tv_sec) ? \ ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ ((tvp)->tv_sec cmp (uvp)->tv_sec)) +#ifndef KERNEL /* use timevaladd/timevalsub in kernel */ +/* NetBSD/OpenBSD compatable interfaces */ +#define timeradd(tvp, uvp, vvp) \ + do { \ + (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ + (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ + if ((vvp)->tv_usec >= 1000000) { \ + (vvp)->tv_sec++; \ + (vvp)->tv_usec -= 1000000; \ + } \ + } while (0) +#define timersub(tvp, uvp, vvp) \ + do { \ + (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ + (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ + if ((vvp)->tv_usec < 0) { \ + (vvp)->tv_sec--; \ + (vvp)->tv_usec += 1000000; \ + } \ + } while (0) +#endif /* * Names of the interval timers, and structure diff --git a/sys/sys/timetc.h b/sys/sys/timetc.h index f68c5cc8f57f..ef2f222710c4 100644 --- a/sys/sys/timetc.h +++ b/sys/sys/timetc.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)time.h 8.5 (Berkeley) 5/4/95 - * $Id: time.h,v 1.7 1996/03/11 02:11:25 hsu Exp $ + * $Id: time.h,v 1.8 1996/09/19 18:21:20 nate Exp $ */ #ifndef _SYS_TIME_H_ @@ -84,6 +84,27 @@ struct timezone { (((tvp)->tv_sec == (uvp)->tv_sec) ? \ ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ ((tvp)->tv_sec cmp (uvp)->tv_sec)) +#ifndef KERNEL /* use timevaladd/timevalsub in kernel */ +/* NetBSD/OpenBSD compatable interfaces */ +#define timeradd(tvp, uvp, vvp) \ + do { \ + (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ + (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ + if ((vvp)->tv_usec >= 1000000) { \ + (vvp)->tv_sec++; \ + (vvp)->tv_usec -= 1000000; \ + } \ + } while (0) +#define timersub(tvp, uvp, vvp) \ + do { \ + (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ + (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ + if ((vvp)->tv_usec < 0) { \ + (vvp)->tv_sec--; \ + (vvp)->tv_usec += 1000000; \ + } \ + } while (0) +#endif /* * Names of the interval timers, and structure -- cgit v1.3