summaryrefslogtreecommitdiffstats
path: root/tools/include/linux/bitmap.h
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2021-07-27 11:25:08 +0300
committerTony Lindgren <tony@atomide.com>2021-07-27 11:25:08 +0300
commit353b7a55dcaf5fb8758e09ebe2ddf5f3adbac7c5 (patch)
tree081200957b3d8925cbe913020d45a4e3ba61a7a3 /tools/include/linux/bitmap.h
parent3ff340e24c9dd5cff9fc07d67914c5adf67f80d6 (diff)
parentc68ef4ad180e09805fa46965d15e1dfadf09ffa5 (diff)
downloadcachepc-linux-353b7a55dcaf5fb8758e09ebe2ddf5f3adbac7c5.tar.gz
cachepc-linux-353b7a55dcaf5fb8758e09ebe2ddf5f3adbac7c5.zip
Merge branch 'fixes-v5.14' into fixes
Diffstat (limited to 'tools/include/linux/bitmap.h')
-rw-r--r--tools/include/linux/bitmap.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/include/linux/bitmap.h b/tools/include/linux/bitmap.h
index 330dbf7509cc..9d959bc24859 100644
--- a/tools/include/linux/bitmap.h
+++ b/tools/include/linux/bitmap.h
@@ -18,6 +18,8 @@ int __bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
int __bitmap_equal(const unsigned long *bitmap1,
const unsigned long *bitmap2, unsigned int bits);
void bitmap_clear(unsigned long *map, unsigned int start, int len);
+int __bitmap_intersects(const unsigned long *bitmap1,
+ const unsigned long *bitmap2, unsigned int bits);
#define BITMAP_FIRST_WORD_MASK(start) (~0UL << ((start) & (BITS_PER_LONG - 1)))
#define BITMAP_LAST_WORD_MASK(nbits) (~0UL >> (-(nbits) & (BITS_PER_LONG - 1)))
@@ -170,4 +172,13 @@ static inline int bitmap_equal(const unsigned long *src1,
return __bitmap_equal(src1, src2, nbits);
}
+static inline int bitmap_intersects(const unsigned long *src1,
+ const unsigned long *src2, unsigned int nbits)
+{
+ if (small_const_nbits(nbits))
+ return ((*src1 & *src2) & BITMAP_LAST_WORD_MASK(nbits)) != 0;
+ else
+ return __bitmap_intersects(src1, src2, nbits);
+}
+
#endif /* _PERF_BITOPS_H */