/** set a bit in bit32. loc from 0~31 */
#define BIT_ISSET(bit32,loc) ((bit32) & (0x1 << (loc)))
#define UNUSED2(a,b) (void)a;(void)b
#define UNUSED3(a,b,c) (void)a;(void)b;(void)c
/** get max between a and b */
#define BIT_SET(bit32, loc) ((bit32) |= (0x1 << (loc)))
#define BIT_CLEAR(bit32,loc) ((bit32) &= ~(0x1 << (loc)))
#define BIT_ISSET(bit32,loc) ((bit32) & (0x1 << (loc)))
/** unused define , for avoid compile error */
#define UNUSED2(a,b) (void)a;(void)b
#define UNUSED3(a,b,c) (void)a;(void)b;(void)c
/** get max between a and b */
#define MAX(a,b) ((a)>(b)?(a):(b))
/** get min between a and b */#define MIN(a,b) ((a)<(b)?(a):(b))
#define AVG(sum,cnt) (((cnt)==0)?(0):((sum)/(cnt)))
Eg.
typedef enum LocoTsiTrafficType_e
{
LOCO_TSI_UDP = 1,
LOCO_TSI_GTP,
LOCO_TSI_L2TP,
LOCO_MAX_TSI_TRAFFIC_TYPE
} LocoTsiTrafficType;
U32 *trafficTypeBits ;
*trafficTypeBits = 0;
BIT_SET(*trafficTypeBits, LOCO_TSI_GTP);