linux/tools/lib/bitmap.c
<<
>>
Prefs
   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
  10int __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
  23void __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