Home | History | Annotate | Download | only in util
      1 /*
      2  * From lib/bitmap.c
      3  * Helper functions for bitmap.h.
      4  *
      5  * This source code is licensed under the GNU General Public License,
      6  * Version 2.  See the file COPYING for more details.
      7  */
      8 #include <linux/bitmap.h>
      9 
     10 int __bitmap_weight(const unsigned long *bitmap, int bits)
     11 {
     12 	int k, w = 0, lim = bits/BITS_PER_LONG;
     13 
     14 	for (k = 0; k < lim; k++)
     15 		w += hweight_long(bitmap[k]);
     16 
     17 	if (bits % BITS_PER_LONG)
     18 		w += hweight_long(bitmap[k] & BITMAP_LAST_WORD_MASK(bits));
     19 
     20 	return w;
     21 }
     22 
     23 void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
     24 		 const unsigned long *bitmap2, int bits)
     25 {
     26 	int k;
     27 	int nr = BITS_TO_LONGS(bits);
     28 
     29 	for (k = 0; k < nr; k++)
     30 		dst[k] = bitmap1[k] | bitmap2[k];
     31 }
     32