mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-09-21 20:22:13 +08:00
lib/bitmap.c: make the bits parameter of bitmap_remap unsigned
Also, rename bits to nbits. Both changes for consistency with other bitmap_* functions. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f6a1f5db8d
commit
9814ec135d
@ -160,7 +160,7 @@ extern int bitmap_parselist(const char *buf, unsigned long *maskp,
|
|||||||
extern int bitmap_parselist_user(const char __user *ubuf, unsigned int ulen,
|
extern int bitmap_parselist_user(const char __user *ubuf, unsigned int ulen,
|
||||||
unsigned long *dst, int nbits);
|
unsigned long *dst, int nbits);
|
||||||
extern void bitmap_remap(unsigned long *dst, const unsigned long *src,
|
extern void bitmap_remap(unsigned long *dst, const unsigned long *src,
|
||||||
const unsigned long *old, const unsigned long *new, int bits);
|
const unsigned long *old, const unsigned long *new, unsigned int nbits);
|
||||||
extern int bitmap_bitremap(int oldbit,
|
extern int bitmap_bitremap(int oldbit,
|
||||||
const unsigned long *old, const unsigned long *new, int bits);
|
const unsigned long *old, const unsigned long *new, int bits);
|
||||||
extern void bitmap_onto(unsigned long *dst, const unsigned long *orig,
|
extern void bitmap_onto(unsigned long *dst, const unsigned long *orig,
|
||||||
|
16
lib/bitmap.c
16
lib/bitmap.c
@ -803,7 +803,7 @@ unsigned int bitmap_ord_to_pos(const unsigned long *buf, unsigned int ord, unsig
|
|||||||
* @src: subset to be remapped
|
* @src: subset to be remapped
|
||||||
* @old: defines domain of map
|
* @old: defines domain of map
|
||||||
* @new: defines range of map
|
* @new: defines range of map
|
||||||
* @bits: number of bits in each of these bitmaps
|
* @nbits: number of bits in each of these bitmaps
|
||||||
*
|
*
|
||||||
* Let @old and @new define a mapping of bit positions, such that
|
* Let @old and @new define a mapping of bit positions, such that
|
||||||
* whatever position is held by the n-th set bit in @old is mapped
|
* whatever position is held by the n-th set bit in @old is mapped
|
||||||
@ -831,22 +831,22 @@ unsigned int bitmap_ord_to_pos(const unsigned long *buf, unsigned int ord, unsig
|
|||||||
*/
|
*/
|
||||||
void bitmap_remap(unsigned long *dst, const unsigned long *src,
|
void bitmap_remap(unsigned long *dst, const unsigned long *src,
|
||||||
const unsigned long *old, const unsigned long *new,
|
const unsigned long *old, const unsigned long *new,
|
||||||
int bits)
|
unsigned int nbits)
|
||||||
{
|
{
|
||||||
int oldbit, w;
|
unsigned int oldbit, w;
|
||||||
|
|
||||||
if (dst == src) /* following doesn't handle inplace remaps */
|
if (dst == src) /* following doesn't handle inplace remaps */
|
||||||
return;
|
return;
|
||||||
bitmap_zero(dst, bits);
|
bitmap_zero(dst, nbits);
|
||||||
|
|
||||||
w = bitmap_weight(new, bits);
|
w = bitmap_weight(new, nbits);
|
||||||
for_each_set_bit(oldbit, src, bits) {
|
for_each_set_bit(oldbit, src, nbits) {
|
||||||
int n = bitmap_pos_to_ord(old, oldbit, bits);
|
int n = bitmap_pos_to_ord(old, oldbit, nbits);
|
||||||
|
|
||||||
if (n < 0 || w == 0)
|
if (n < 0 || w == 0)
|
||||||
set_bit(oldbit, dst); /* identity map */
|
set_bit(oldbit, dst); /* identity map */
|
||||||
else
|
else
|
||||||
set_bit(bitmap_ord_to_pos(new, n % w, bits), dst);
|
set_bit(bitmap_ord_to_pos(new, n % w, nbits), dst);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(bitmap_remap);
|
EXPORT_SYMBOL(bitmap_remap);
|
||||||
|
Loading…
Reference in New Issue
Block a user