| 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 | } |