diff options
Diffstat (limited to 'tools/include/linux/bitmap.h')
| -rw-r--r-- | tools/include/linux/bitmap.h | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/tools/include/linux/bitmap.h b/tools/include/linux/bitmap.h index f3566ea0f932..210c13b1b857 100644 --- a/tools/include/linux/bitmap.h +++ b/tools/include/linux/bitmap.h @@ -3,6 +3,7 @@  #define _TOOLS_LINUX_BITMAP_H  #include <string.h> +#include <linux/align.h>  #include <linux/bitops.h>  #include <linux/find.h>  #include <stdlib.h> @@ -25,13 +26,14 @@ bool __bitmap_intersects(const unsigned long *bitmap1,  #define BITMAP_FIRST_WORD_MASK(start) (~0UL << ((start) & (BITS_PER_LONG - 1)))  #define BITMAP_LAST_WORD_MASK(nbits) (~0UL >> (-(nbits) & (BITS_PER_LONG - 1))) +#define bitmap_size(nbits)	(ALIGN(nbits, BITS_PER_LONG) / BITS_PER_BYTE) +  static inline void bitmap_zero(unsigned long *dst, unsigned int nbits)  {  	if (small_const_nbits(nbits))  		*dst = 0UL;  	else { -		int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); -		memset(dst, 0, len); +		memset(dst, 0, bitmap_size(nbits));  	}  } @@ -83,7 +85,7 @@ static inline void bitmap_or(unsigned long *dst, const unsigned long *src1,   */  static inline unsigned long *bitmap_zalloc(int nbits)  { -	return calloc(1, BITS_TO_LONGS(nbits) * sizeof(unsigned long)); +	return calloc(1, bitmap_size(nbits));  }  /* @@ -126,7 +128,6 @@ static inline bool bitmap_and(unsigned long *dst, const unsigned long *src1,  #define BITMAP_MEM_ALIGNMENT (8 * sizeof(unsigned long))  #endif  #define BITMAP_MEM_MASK (BITMAP_MEM_ALIGNMENT - 1) -#define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0)  static inline bool bitmap_equal(const unsigned long *src1,  				const unsigned long *src2, unsigned int nbits)  |