Commit | Line | Data |
---|---|---|
fb72014d ACM |
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 | } |