powerpc: Add more PPC bit conversion macros
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 5 Apr 2017 07:54:47 +0000 (17:54 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 6 Apr 2017 09:58:53 +0000 (19:58 +1000)
Add 32 and 8 bit variants

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/bitops.h

index bc5fdfd227886aa2cb359656faf2eef5eb6574b7..33a24fdd795811fb5c7ce4eecce45a524e1c3b2b 100644 (file)
 #define PPC_BITEXTRACT(bits, ppc_bit, dst_bit)                 \
        ((((bits) >> PPC_BITLSHIFT(ppc_bit)) & 1) << (dst_bit))
 
+#define PPC_BITLSHIFT32(be)    (32 - 1 - (be))
+#define PPC_BIT32(bit)         (1UL << PPC_BITLSHIFT32(bit))
+#define PPC_BITMASK32(bs, be)  ((PPC_BIT32(bs) - PPC_BIT32(be))|PPC_BIT32(bs))
+
+#define PPC_BITLSHIFT8(be)     (8 - 1 - (be))
+#define PPC_BIT8(bit)          (1UL << PPC_BITLSHIFT8(bit))
+#define PPC_BITMASK8(bs, be)   ((PPC_BIT8(bs) - PPC_BIT8(be))|PPC_BIT8(bs))
+
 #include <asm/barrier.h>
 
 /* Macro for generating the ***_bits() functions */