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:
  *
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to