Bit Manipulation

Description

Bitwise operations.

Macros

#define SL_SET_BIT(val, mask)   ((val) = ((val) | (mask)))
 Set specified bit(s) in a value.
 
#define SL_CLEAR_BIT(val, mask)   ((val) = ((val) & (~(mask))))
 Clear specified bit(s) in a value.
 
#define SL_IS_BIT_SET(val, mask)   (((((val) & (mask)) == (mask)) && ((mask) != 0u)) ? (true) : (false))
 Determine whether the specified bit(s) in a value are set.
 
#define SL_IS_BIT_CLEAR(val, mask)   (((((val) & (mask)) == 0u) && ((mask) != 0u)) ? (true) : (false))
 Determine whether the specified bit(s) in a value are clear.
 
#define SL_IS_ANY_BIT_SET(val, mask)   ((((val) & (mask)) == 0u) ? (false) : (true))
 Determine whether any specified bit(s) in a value are set.
 
#define SL_IS_ANY_BIT_CLEAR(val, mask)   ((((val) & (mask)) == (mask)) ? (false) : (true))
 Determine whether any specified bit(s) in a value are clear.
 

Macro Definition Documentation

◆ SL_SET_BIT

#define SL_SET_BIT (   val,
  mask 
)    ((val) = ((val) | (mask)))

Set specified bit(s) in a value.

                                          SL_SET_BIT()
Parameters
valValue to modify by setting specified bit(s).
maskMask of bits to set.
Returns
Modified value with specified bit(s) set.
Note
'val' & 'mask' SHOULD be unsigned integers.

◆ SL_CLEAR_BIT

#define SL_CLEAR_BIT (   val,
  mask 
)    ((val) = ((val) & (~(mask))))

Clear specified bit(s) in a value.

                                          SL_CLEAR_BIT()
Parameters
valValue to modify by clearing specified bit(s).
maskMask of bits to clear.
Returns
Modified value with specified bit(s) clear.
Note
'val' & 'mask' SHOULD be unsigned integers.
'mask' SHOULD be cast with the same data type than 'val'.

◆ SL_IS_BIT_SET

#define SL_IS_BIT_SET (   val,
  mask 
)    (((((val) & (mask)) == (mask)) && ((mask) != 0u)) ? (true) : (false))

Determine whether the specified bit(s) in a value are set.

                                          SL_IS_BIT_SET()
Parameters
valValue to check for specified bit(s) set.
maskMask of bits to check if set.
Returns
true, if ALL specified bit(s) are set in value.
      false, if ALL specified bit(s) are NOT set in value.
Note
'val' & 'mask' SHOULD be unsigned integers.
NULL 'mask' allowed; returns 'false' since NO mask bits specified.

◆ SL_IS_BIT_CLEAR

#define SL_IS_BIT_CLEAR (   val,
  mask 
)    (((((val) & (mask)) == 0u) && ((mask) != 0u)) ? (true) : (false))

Determine whether the specified bit(s) in a value are clear.

                                          SL_IS_BIT_CLEAR()
Parameters
valValue to check for specified bit(s) clear.
maskMask of bits to check if clear.
Returns
true, if ALL specified bit(s) are clear in value.
      false, if ALL specified bit(s) are NOT clear in value.
Note
val' & 'mask' SHOULD be unsigned integers.
NULL 'mask' allowed; returns 'false' since NO mask bits specified.

◆ SL_IS_ANY_BIT_SET

#define SL_IS_ANY_BIT_SET (   val,
  mask 
)    ((((val) & (mask)) == 0u) ? (false) : (true))

Determine whether any specified bit(s) in a value are set.

                                      SL_IS_ANY_BIT_SET()
Parameters
valValue to check for specified bit(s) set.
maskMask of bits to check if set (see Note #2).
Returns
true, if ANY specified bit(s) are set in value.
      false, if ALL specified bit(s) are NOT set in value.
Note
'val' & 'mask' SHOULD be unsigned integers.
NULL 'mask' allowed; returns 'false' since NO mask bits specified.

◆ SL_IS_ANY_BIT_CLEAR

#define SL_IS_ANY_BIT_CLEAR (   val,
  mask 
)    ((((val) & (mask)) == (mask)) ? (false) : (true))

Determine whether any specified bit(s) in a value are clear.

                                      SL_IS_ANY_BIT_CLEAR()
Parameters
valValue to check for specified bit(s) clear.
maskMask of bits to check if clear (see Note #2).
Returns
true, if ANY specified bit(s) are clear in value.
      false,  if ALL specified bit(s) are NOT clear in value.
Note
'val' & 'mask' SHOULD be unsigned integers.
NULL 'mask' allowed; returns 'false' since NO mask bits specified.