Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Sep 2010 20:09:50 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r212336 - head/sys/sys
Message-ID:  <201009082009.o88K9obu069829@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Wed Sep  8 20:09:50 2010
New Revision: 212336
URL: http://svn.freebsd.org/changeset/base/212336

Log:
  Add few more bintime math macros.

Modified:
  head/sys/sys/time.h

Modified: head/sys/sys/time.h
==============================================================================
--- head/sys/sys/time.h	Wed Sep  8 20:00:27 2010	(r212335)
+++ head/sys/sys/time.h	Wed Sep  8 20:09:50 2010	(r212336)
@@ -90,6 +90,25 @@ bintime_sub(struct bintime *bt, const st
 	bt->sec -= bt2->sec;
 }
 
+static __inline void
+bintime_mul(struct bintime *bt, u_int x)
+{
+	uint64_t p1, p2;
+
+	p1 = (bt->frac & 0xffffffffllu) * x;
+	p2 = (bt->frac >> 32) * x + (p1 >> 32);
+	bt->sec *= x;
+	bt->sec += (p2 >> 32);
+	bt->frac = (p2 << 32) | (p1 & 0xffffffffllu);
+}
+
+#define	bintime_clear(a)	((a)->sec = (a)->frac = 0)
+#define	bintime_isset(a)	((a)->sec || (a)->frac)
+#define	bintime_cmp(a, b, cmp)						\
+	(((a)->sec == (b)->sec) ?					\
+	    ((a)->frac cmp (b)->frac) :					\
+	    ((a)->sec cmp (b)->sec))
+
 /*-
  * Background information:
  *



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009082009.o88K9obu069829>