Lines Matching defs:nbits

26 #define BITMAP_LAST_WORD_MASK(nbits) (~0UL >> (-(nbits) & (BITS_PER_LONG - 1)))
28 static inline void bitmap_zero(unsigned long *dst, unsigned int nbits)
30 if (small_const_nbits(nbits))
33 int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
38 static inline void bitmap_fill(unsigned long *dst, unsigned int nbits)
40 unsigned int nlongs = BITS_TO_LONGS(nbits);
41 if (!small_const_nbits(nbits)) {
45 dst[nlongs - 1] = BITMAP_LAST_WORD_MASK(nbits);
48 static inline bool bitmap_empty(const unsigned long *src, unsigned int nbits)
50 if (small_const_nbits(nbits))
51 return ! (*src & BITMAP_LAST_WORD_MASK(nbits));
53 return find_first_bit(src, nbits) == nbits;
56 static inline bool bitmap_full(const unsigned long *src, unsigned int nbits)
58 if (small_const_nbits(nbits))
59 return ! (~(*src) & BITMAP_LAST_WORD_MASK(nbits));
61 return find_first_zero_bit(src, nbits) == nbits;
64 static inline unsigned int bitmap_weight(const unsigned long *src, unsigned int nbits)
66 if (small_const_nbits(nbits))
67 return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
68 return __bitmap_weight(src, nbits);
72 const unsigned long *src2, unsigned int nbits)
74 if (small_const_nbits(nbits))
77 __bitmap_or(dst, src1, src2, nbits);
82 * @nbits: Number of bits
84 static inline unsigned long *bitmap_zalloc(int nbits)
86 return calloc(1, BITS_TO_LONGS(nbits) * sizeof(unsigned long));
101 * @nbits: size of bitmap
105 size_t bitmap_scnprintf(unsigned long *bitmap, unsigned int nbits,
113 * @nbits: size of bitmap
116 const unsigned long *src2, unsigned int nbits)
118 if (small_const_nbits(nbits))
119 return (*dst = *src1 & *src2 & BITMAP_LAST_WORD_MASK(nbits)) != 0;
120 return __bitmap_and(dst, src1, src2, nbits);
132 const unsigned long *src2, unsigned int nbits)
134 if (small_const_nbits(nbits))
135 return !((*src1 ^ *src2) & BITMAP_LAST_WORD_MASK(nbits));
136 if (__builtin_constant_p(nbits & BITMAP_MEM_MASK) &&
137 IS_ALIGNED(nbits, BITMAP_MEM_ALIGNMENT))
138 return !memcmp(src1, src2, nbits / 8);
139 return __bitmap_equal(src1, src2, nbits);
144 unsigned int nbits)
146 if (small_const_nbits(nbits))
147 return ((*src1 & *src2) & BITMAP_LAST_WORD_MASK(nbits)) != 0;
149 return __bitmap_intersects(src1, src2, nbits);