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>