[XFS] Use the generic bitops rather than implementing them ourselves.
Patch inspired by Andi Kleen. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30000a Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
This commit is contained in:
committed by
Lachlan McIlroy
parent
c319b58b13
commit
a69b176df2
@@ -47,13 +47,30 @@ static inline __uint64_t xfs_mask64lo(int n)
|
||||
}
|
||||
|
||||
/* Get high bit set out of 32-bit argument, -1 if none set */
|
||||
extern int xfs_highbit32(__uint32_t v);
|
||||
|
||||
/* Get low bit set out of 64-bit argument, -1 if none set */
|
||||
extern int xfs_lowbit64(__uint64_t v);
|
||||
static inline int xfs_highbit32(__uint32_t v)
|
||||
{
|
||||
return fls(v) - 1;
|
||||
}
|
||||
|
||||
/* Get high bit set out of 64-bit argument, -1 if none set */
|
||||
extern int xfs_highbit64(__uint64_t);
|
||||
static inline int xfs_highbit64(__uint64_t v)
|
||||
{
|
||||
return fls64(v) - 1;
|
||||
}
|
||||
|
||||
/* Get low bit set out of 32-bit argument, -1 if none set */
|
||||
static inline int xfs_lowbit32(__uint32_t v)
|
||||
{
|
||||
unsigned long t = v;
|
||||
return (v) ? find_first_bit(&t, 32) : -1;
|
||||
}
|
||||
|
||||
/* Get low bit set out of 64-bit argument, -1 if none set */
|
||||
static inline int xfs_lowbit64(__uint64_t v)
|
||||
{
|
||||
unsigned long t = v;
|
||||
return (v) ? find_first_bit(&t, 64) : -1;
|
||||
}
|
||||
|
||||
/* Return whether bitmap is empty (1 == empty) */
|
||||
extern int xfs_bitmap_empty(uint *map, uint size);
|
||||
|
Reference in New Issue
Block a user