svn commit: r319652 - stable/10/sys/sys
Konstantin Belousov
kib at FreeBSD.org
Wed Jun 7 11:42:45 UTC 2017
Author: kib
Date: Wed Jun 7 11:42:43 2017
New Revision: 319652
URL: https://svnweb.freebsd.org/changeset/base/319652
Log:
MFC r318781:
Add BIT_OR2(), BIT_AND2(), BIT_NAND2(), BIT_XOR() and BIT_XOR2().
Modified:
stable/10/sys/sys/bitset.h
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/sys/bitset.h
==============================================================================
--- stable/10/sys/sys/bitset.h Wed Jun 7 11:39:52 2017 (r319651)
+++ stable/10/sys/sys/bitset.h Wed Jun 7 11:42:43 2017 (r319652)
@@ -115,16 +115,46 @@
(d)->__bits[__i] |= (s)->__bits[__i]; \
} while (0)
+#define BIT_OR2(_s, d, s1, s2) do { \
+ __size_t __i; \
+ for (__i = 0; __i < __bitset_words((_s)); __i++) \
+ (d)->__bits[__i] = (s1)->__bits[__i] | (s2)->__bits[__i];\
+} while (0)
+
#define BIT_AND(_s, d, s) do { \
__size_t __i; \
for (__i = 0; __i < __bitset_words((_s)); __i++) \
(d)->__bits[__i] &= (s)->__bits[__i]; \
} while (0)
+#define BIT_AND2(_s, d, s1, s2) do { \
+ __size_t __i; \
+ for (__i = 0; __i < __bitset_words((_s)); __i++) \
+ (d)->__bits[__i] = (s1)->__bits[__i] & (s2)->__bits[__i];\
+} while (0)
+
#define BIT_NAND(_s, d, s) do { \
__size_t __i; \
for (__i = 0; __i < __bitset_words((_s)); __i++) \
(d)->__bits[__i] &= ~(s)->__bits[__i]; \
+} while (0)
+
+#define BIT_NAND2(_s, d, s1, s2) do { \
+ __size_t __i; \
+ for (__i = 0; __i < __bitset_words((_s)); __i++) \
+ (d)->__bits[__i] = (s1)->__bits[__i] & ~(s2)->__bits[__i];\
+} while (0)
+
+#define BIT_XOR(_s, d, s) do { \
+ __size_t __i; \
+ for (__i = 0; __i < __bitset_words((_s)); __i++) \
+ (d)->__bits[__i] ^= (s)->__bits[__i]; \
+} while (0)
+
+#define BIT_XOR2(_s, d, s1, s2) do { \
+ __size_t __i; \
+ for (__i = 0; __i < __bitset_words((_s)); __i++) \
+ (d)->__bits[__i] = (s1)->__bits[__i] ^ (s2)->__bits[__i];\
} while (0)
#define BIT_CLR_ATOMIC(_s, n, p) \
More information about the svn-src-stable
mailing list