[U-Boot] [PATCH 1/2] linux/bitops: Move BIT defination at top

Since it's a copy from Linux, this patch moved all BIT definations to top so-that it looks same as Linux file.
Cc: Tom Rini trini@konsulko.com Signed-off-by: Jagan Teki jteki@openedev.com --- include/linux/bitops.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 7d30ace..8ed0cf5 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -4,6 +4,8 @@ #include <asm/types.h>
#define BIT(nr) (1UL << (nr)) +#define BIT_MASK(nr) (1UL << ((nr) % BITS_PER_LONG)) +#define BIT_WORD(nr) ((nr) / BITS_PER_LONG)
/* * ffs: find first bit set. This is defined the same way as @@ -106,9 +108,6 @@ static inline unsigned int generic_hweight8(unsigned int w) return (res & 0x0F) + ((res >> 4) & 0x0F); }
-#define BIT_MASK(nr) (1UL << ((nr) % BITS_PER_LONG)) -#define BIT_WORD(nr) ((nr) / BITS_PER_LONG) - #include <asm/bitops.h>
/* linux/include/asm-generic/bitops/non-atomic.h */

GENMASK is used to create a contiguous bitmask([hi:lo]).
This patch is a copy from Linux, with below commit details "bitops: Fix shift overflow in GENMASK macros" (sha1: 00b4d9a14125f1e51874def2b9de6092e007412d)
Cc: Tom Rini trini@konsulko.com Cc: Masahiro Yamada yamada.m@jp.panasonic.com Signed-off-by: Jagan Teki jteki@openedev.com --- Changes for v3: - Rebase to master - Added bitsperlong.h
include/asm-generic/bitsperlong.h | 8 ++++++++ include/linux/bitops.h | 11 +++++++++++ 2 files changed, 19 insertions(+) create mode 100644 include/asm-generic/bitsperlong.h
diff --git a/include/asm-generic/bitsperlong.h b/include/asm-generic/bitsperlong.h new file mode 100644 index 0000000..75ee21e --- /dev/null +++ b/include/asm-generic/bitsperlong.h @@ -0,0 +1,8 @@ +#ifndef __ASM_GENERIC_BITS_PER_LONG +#define __ASM_GENERIC_BITS_PER_LONG + +#ifndef BITS_PER_LONG_LONG +#define BITS_PER_LONG_LONG 64 +#endif + +#endif /* __ASM_GENERIC_BITS_PER_LONG */ diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 8ed0cf5..6b801b4 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -8,6 +8,17 @@ #define BIT_WORD(nr) ((nr) / BITS_PER_LONG)
/* + * Create a contiguous bitmask starting at bit position @l and ending at + * position @h. For example + * GENMASK_ULL(39, 21) gives us the 64bit vector 0x000000ffffe00000. + */ +#define GENMASK(h, l) \ + (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG - 1 - (h)))) + +#define GENMASK_ULL(h, l) \ + (((~0ULL) << (l)) & (~0ULL >> (BITS_PER_LONG_LONG - 1 - (h)))) + +/* * ffs: find first bit set. This is defined the same way as * the libc and compiler builtin ffs routines, therefore * differs in spirit from the above ffz (man ffs).

On Wed, Oct 21, 2015 at 04:46:51PM +0530, Jagan Teki wrote:
GENMASK is used to create a contiguous bitmask([hi:lo]).
This patch is a copy from Linux, with below commit details "bitops: Fix shift overflow in GENMASK macros" (sha1: 00b4d9a14125f1e51874def2b9de6092e007412d)
Cc: Tom Rini trini@konsulko.com Cc: Masahiro Yamada yamada.m@jp.panasonic.com Signed-off-by: Jagan Teki jteki@openedev.com
Applied to u-boot/master, thanks!
participants (2)
-
Jagan Teki
-
Tom Rini