|
135 | 135 | (d)->__bits[__i] = (s1)->__bits[__i] | (s2)->__bits[__i];\
|
136 | 136 | } while (0)
|
137 | 137 |
|
| 138 | +#define __BIT_ORNOT(_s, d, s) do { \ |
| 139 | + __size_t __i; \ |
| 140 | + for (__i = 0; __i < __bitset_words((_s)); __i++) \ |
| 141 | + (d)->__bits[__i] |= ~(s)->__bits[__i]; \ |
| 142 | +} while (0) |
| 143 | + |
| 144 | +#define __BIT_ORNOT2(_s, d, s1, s2) do { \ |
| 145 | + __size_t __i; \ |
| 146 | + for (__i = 0; __i < __bitset_words((_s)); __i++) \ |
| 147 | + (d)->__bits[__i] = (s1)->__bits[__i] | ~(s2)->__bits[__i];\ |
| 148 | +} while (0) |
| 149 | + |
138 | 150 | #define __BIT_AND(_s, d, s) do { \
|
139 | 151 | __size_t __i; \
|
140 | 152 | for (__i = 0; __i < __bitset_words((_s)); __i++) \
|
|
330 | 342 | #define BIT_ISSET(_s, n, p) __BIT_ISSET(_s, n, p)
|
331 | 343 | #define BIT_OR(_s, d, s) __BIT_OR(_s, d, s)
|
332 | 344 | #define BIT_OR2(_s, d, s1, s2) __BIT_OR2(_s, d, s1, s2)
|
| 345 | +#define BIT_ORNOT(_s, d, s) __BIT_ORNOT(_s, d, s) |
| 346 | +#define BIT_ORNOT2(_s, d, s1, s2) __BIT_ORNOT2(_s, d, s1, s2) |
333 | 347 | #define BIT_OR_ATOMIC(_s, d, s) __BIT_OR_ATOMIC(_s, d, s)
|
334 | 348 | #define BIT_OVERLAP(_s, p, c) __BIT_OVERLAP(_s, p, c)
|
335 | 349 | #define BIT_SET(_s, n, p) __BIT_SET(_s, n, p)
|
|
0 commit comments