opflags: Introduce opflags generating macros
authorCyrill Gorcunov <gorcunov@gmail.com>
Sat, 15 Sep 2012 15:58:36 +0000 (15 19:58 +0400)
committerCyrill Gorcunov <gorcunov@gmail.com>
Sun, 16 Sep 2012 19:23:43 +0000 (16 23:23 +0400)
This patch introduces two macros

 - OP_GENMASK, to generate masks in opflags
 - OP_GENBIT, to generate bit at specified position

we will use them with extended 64 bits opflags.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
opflags.h

index d3da5b3..904a53a 100644 (file)
--- a/opflags.h
+++ b/opflags.h
 
 typedef uint64_t opflags_t;
 
+#define OP_GENMASK(bits, shift)         (((UINT64_C(1) << (bits)) - 1) << (shift))
+#define OP_GENBIT(bit, shift)           (UINT64_C(1) << ((shift) + (bit)))
+
+
 /* Size, and other attributes, of the operand */
 #define BITS8           UINT64_C(0x00000001)
 #define BITS16          UINT64_C(0x00000002)