ice_set_bit(i, dst);
}
+/**
+ * ice_bitmap_hweight - hamming weight of bitmap
+ * @bm: bitmap pointer
+ * @size: size of bitmap (in bits)
+ *
+ * This function determines the number of set bits in a bitmap.
+ * Note that this function assumes it is operating on a bitmap declared using
+ * ice_declare_bitmap.
+ */
+static inline int
+ice_bitmap_hweight(ice_bitmap_t *bm, u16 size)
+{
+ int count = 0;
+ u16 bit = 0;
+
+ while (size > (bit = ice_find_next_bit(bm, size, bit))) {
+ count++;
+ bit++;
+ }
+
+ return count;
+}
+
/**
* ice_cmp_bitmaps - compares two bitmaps.
* @bmp1: the bitmap to compare
ice_declare_bitmap(possible_idx, ICE_MAX_FV_WORDS);
ice_declare_bitmap(recipes, ICE_MAX_NUM_RECIPES);
ice_declare_bitmap(used_idx, ICE_MAX_FV_WORDS);
- u16 count = 0;
u16 bit;
ice_zero_bitmap(possible_idx, ICE_MAX_FV_WORDS);
ice_xor_bitmap(free_idx, used_idx, possible_idx, ICE_MAX_FV_WORDS);
/* return number of free indexes */
- count = 0;
- bit = 0;
- while (ICE_MAX_FV_WORDS >
- (bit = ice_find_next_bit(free_idx, ICE_MAX_FV_WORDS, bit))) {
- count++;
- bit++;
- }
-
- return count;
+ return (u16)ice_bitmap_hweight(free_idx, ICE_MAX_FV_WORDS);
}
/**