diff options
author | 2010-04-30 19:31:12 -0300 | |
---|---|---|
committer | 2010-05-02 12:00:44 -0300 | |
commit | fb72014d98afd51e85aab9c061344ef32d615606 (patch) | |
tree | 18713d4d1084870c604b512396b893944a2bbdab /tools/perf/util/bitmap.c | |
parent | Merge branch 'perf' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/lin... (diff) | |
download | linux-fb72014d98afd51e85aab9c061344ef32d615606.tar.gz linux-fb72014d98afd51e85aab9c061344ef32d615606.tar.bz2 linux-fb72014d98afd51e85aab9c061344ef32d615606.zip |
perf tools: Don't use code surrounded by __KERNEL__
We need to refactor code to be explicitely shared by the kernel and at
least the tools/ userspace programs, so, till we do that, copy the bare
minimum bitmap/bitops code needed by tools/perf.
Reported-by: "H. Peter Anvin" <hpa@zytor.com>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/bitmap.c')
-rw-r--r-- | tools/perf/util/bitmap.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/perf/util/bitmap.c b/tools/perf/util/bitmap.c new file mode 100644 index 000000000000..5e230acae1e9 --- /dev/null +++ b/tools/perf/util/bitmap.c @@ -0,0 +1,21 @@ +/* + * 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; +} |