| Arnaldo Carvalho de Melo | fb72014 | 2010-04-30 19:31:12 -0300 | [diff] [blame] | 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 | } |