/* Bit operation macros */
#define sbi(b,n) (b |= (1<<n)) /* Set bit number n in byte b */
#define cbi(b,n) (b &= (~(1<<n))) /* Clear bit number n in byte b */
#define fbi(b,n) (b ^= (1<<n)) /* Flip bit number n in byte b */
#define bit_is_set(b,n) (b & (1<<n)) /* Return nonzero if bit is set */
#define bit_is_clear(b,n) (!(b & (1<<n))) /* Return nonzero if bit is clear */
#define wait_until_bit_is_set(b,n) while(bit_is_clear(b,n)){}
#define wait_until_bit_is_clear(b,n) while(bit_is_set(b,n)){}