Implement the bitmap_subset() function in the LinuxKPI. This function
checks if the bitmap pointed to by the first argument is a subset of the bitmap pointed to by the second argument. The function returns one on success and zero on failure. MFC after: 1 week Sponsored by: Mellanox Technologies
This commit is contained in:
parent
dee503b4a7
commit
7ecaecc7c2
@ -244,6 +244,28 @@ bitmap_equal(const unsigned long *pa,
|
||||
return (1);
|
||||
}
|
||||
|
||||
static inline int
|
||||
bitmap_subset(const unsigned long *pa,
|
||||
const unsigned long *pb, unsigned size)
|
||||
{
|
||||
const unsigned end = BIT_WORD(size);
|
||||
const unsigned tail = size & (BITS_PER_LONG - 1);
|
||||
unsigned i;
|
||||
|
||||
for (i = 0; i != end; i++) {
|
||||
if (pa[i] & ~pb[i])
|
||||
return (0);
|
||||
}
|
||||
|
||||
if (tail) {
|
||||
const unsigned long mask = BITMAP_LAST_WORD_MASK(tail);
|
||||
|
||||
if (pa[end] & ~pb[end] & mask)
|
||||
return (0);
|
||||
}
|
||||
return (1);
|
||||
}
|
||||
|
||||
static inline void
|
||||
bitmap_complement(unsigned long *dst, const unsigned long *src,
|
||||
const unsigned int size)
|
||||
|
Loading…
Reference in New Issue
Block a user