+/* this MACRO set 1 bit at the bit position */
+#define SET_ONE_BIT(_bitPos, _out) \
+{ \
+ _out = ((1<<_bitPos) | _out); \
+}
+
+/* this MACRO un-set 1 bit at the bit position */
+#define UNSET_ONE_BIT(_bitPos, _out) \
+{ \
+ _out = (~(1<<_bitPos) & _out); \
+}
+
+/* this MACRO finds the index of the rightmost set bit */
+#define GET_RIGHT_MOST_SET_BIT( _in,_bitPos) \
+{ \
+ _bitPos = __builtin_ctz(_in); \
+}