diff --git a/bacnet-stack/include/bits.h b/bacnet-stack/include/bits.h index 55671e17..0e6357db 100644 --- a/bacnet-stack/include/bits.h +++ b/bacnet-stack/include/bits.h @@ -70,4 +70,16 @@ #define BIT30 (0x40000000UL) #define BIT31 (0x80000000UL) +/* a=register, b=bit number to act upon 0-n */ +#define BIT_SET(a,b) ((a) |= (1<<(b))) +#define BIT_CLEAR(a,b) ((a) &= ~(1<<(b))) +#define BIT_FLIP(a,b) ((a) ^= (1<<(b))) +#define BIT_CHECK(a,b) ((a) & (1<<(b))) + +/* x=target variable, y=mask */ +#define BITMASK_SET(x,y) ((x) |= (y)) +#define BITMASK_CLEAR(x,y) ((x) &= (~(y))) +#define BITMASK_FLIP(x,y) ((x) ^= (y)) +#define BITMASK_CHECK(x,y) ((x) & (y)) + #endif