svn commit: r212336 - head/sys/sys

Alexander Motin mav at FreeBSD.org
Wed Sep 8 20:09:51 UTC 2010


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:
  *


More information about the svn-src-head mailing list