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
d2890eeea1
commit
127d8cfafb
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=363078
@ -244,6 +244,28 @@ bitmap_equal(const unsigned long *pa,
|
|||||||
return (1);
|
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
|
static inline void
|
||||||
bitmap_complement(unsigned long *dst, const unsigned long *src,
|
bitmap_complement(unsigned long *dst, const unsigned long *src,
|
||||||
const unsigned int size)
|
const unsigned int size)
|
||||||
|
Loading…
Reference in New Issue
Block a user