| /* | |
| * From lib/bitmap.c | |
| * Helper functions for bitmap.h. | |
| * | |
| * This source code is licensed under the GNU General Public License, | |
| * Version 2. See the file COPYING for more details. | |
| */ | |
| #include <linux/bitmap.h> | |
| int __bitmap_weight(const unsigned long *bitmap, int bits) | |
| { | |
| int k, w = 0, lim = bits/BITS_PER_LONG; | |
| for (k = 0; k < lim; k++) | |
| w += hweight_long(bitmap[k]); | |
| if (bits % BITS_PER_LONG) | |
| w += hweight_long(bitmap[k] & BITMAP_LAST_WORD_MASK(bits)); | |
| return w; | |
| } |