bitops: Add __BIT64 and __BITS64
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Tue, 13 Dec 2011 01:44:05 +0000 (09:44 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Tue, 13 Dec 2011 02:17:27 +0000 (10:17 +0800)
sys/sys/bitops.h

index 04e269c..727e010 100644 (file)
 
 /* __BIT(n): nth bit, where __BIT(0) == 0x1. */
 #define        __BIT(__n) (((__n) == 32) ? 0 : ((uint32_t)1 << (__n)))
+#define        __BIT64(__n) (((__n) == 64) ? 0 : ((uint64_t)1 << (__n)))
 
 /* __BITS(m, n): bits m through n, m < n. */
 #define        __BITS(__m, __n)        \
        ((__BIT(MAX((__m), (__n)) + 1) - 1) ^ (__BIT(MIN((__m), (__n))) - 1))
 
+#define        __BITS64(__m, __n)      \
+       ((__BIT64(MAX((__m), (__n)) + 1) - 1) ^ \
+        (__BIT64(MIN((__m), (__n))) - 1))
+
 /* Find least significant bit that is set */
 #define        __LOWEST_SET_BIT(__mask) ((((__mask) - 1) & (__mask)) ^ (__mask))