|
FireSync API
|
Collection of static methods and macros for bit field manipulation.
Related | |
| #define | kNanoToMicro_(V) ((V) / 1000) |
| Converts integer nano-scaled values to micro-scaled values (/1000). More... | |
| #define | kField_ToMask_(MSB, LSB) (((((MSB) - (MSB) + 1) << ((MSB) - (LSB) + 1)) - 1) << (LSB)) |
| Creates a bit mask from a 32-bit range. More... | |
| #define | kField_Create_(MASK, SHIFT, FLD_VAL) (((FLD_VAL) << SHIFT) & (MASK)) |
| Creates a bitfield by applying the specified mask and shift values. More... | |
| #define | kField_CreateNamed_(FIELD_NAME, FLD_VAL) kField_Create_(FIELD_NAME##_MASK, FIELD_NAME##_SHIFT, FLD_VAL) |
| Creates a bitfield by token-pasting mask/shift macros using a specific naming scheme. More... | |
| #define | kField_CreateRange_(MSB, LSB, FLD_VAL) kField_Create_(kField_ToMask_(MSB, LSB), LSB, FLD_VAL) |
| Creates a bitfield within the specified bit range. More... | |
| #define | kField_CreateNamedRange_(FIELD_NAME, FLD_VAL) kField_CreateRange_(FIELD_NAME##_MSB, FIELD_NAME##_LSB, FLD_VAL) |
| Creates a bitfield by token-pasting left/right macros using a specific naming scheme. More... | |
| #define | kField_Extract_(REG_VAL, MASK, SHIFT) (((REG_VAL) & (MASK)) >> (SHIFT)) |
| Extracts a bitfield by applying the specified mask and shift values. More... | |
| #define | kField_ExtractNamed_(REG_VAL, FIELD_NAME) (((REG_VAL) & (FIELD_NAME##_MASK)) >> (FIELD_NAME##_SHIFT)) |
| Extracts a bitfield by token-pasting mask/shift macros using a specific naming scheme. More... | |
| #define | kField_ExtractRange_(REG_VAL, MSB, LSB) kField_Extract_(REG_VAL, kField_ToMask_(MSB, LSB), LSB) |
| Extracts a bitfield from the specified bit range. More... | |
| #define | kField_ExtractNamedRange_(REG_VAL, FIELD_NAME) kField_ExtractRange_(REG_VAL, FIELD_NAME##_MSB, FIELD_NAME##_LSB) |
| Extracts a bitfield by token-pasting left/right macros using a specific naming scheme. More... | |
| #define | kField_Insert_(REG_REF, MASK, SHIFT, FLD_VAL) (*(REG_REF) = (*(REG_REF) & ~(MASK)) | kField_Create_(MASK, SHIFT, FLD_VAL)) |
| Inserts a bitfield into an existing register value. More... | |
| #define | kField_InsertNamed_(REG_REF, FIELD_NAME, FLD_VAL) kField_Insert_(REG_REF, FIELD_NAME##_MASK, FIELD_NAME##_SHIFT, FLD_VAL) |
| Inserts a bitfield into an existing register value by token-pasting mask/shift macros using a specific naming scheme. More... | |
| #define | kField_InsertRange_(REG_REF, MSB, LSB, FLD_VAL) kField_Insert_(REG_REF, kField_ToMask_(MSB, LSB), LSB, FLD_VAL) |
| Inserts a bitfield into an existing register value. More... | |
| #define | kField_InsertNamedRange_(REG_REF, FIELD_NAME, FLD_VAL) kField_InsertRange_(REG_REF, FIELD_NAME##_MSB, FIELD_NAME##_LSB, FLD_VAL) |
| Inserts a bitfield into an existing register value by token-pasting left/right macros using a specific naming scheme. More... | |
| #define | kField_Diff_(REG_VAL_A, REG_VAL_B, MASK, SHIFT) |
| Takes the difference between register fields at the same location within two register values. More... | |
| #define | kField_DiffNamed_(REG_VAL_A, REG_VAL_B, FIELD_NAME) kField_Diff_(REG_VAL_A, REG_VAL_B, FIELD_NAME##_MASK, FIELD_NAME##_SHIFT) |
| Takes the difference between register fields at the same location within two register values by token-pasting mask/shift macros using a specific naming scheme. More... | |
| #define | kField_DiffRange_(REG_VAL_A, REG_VAL_B, MSB, LSB) kField_Diff_(REG_VAL_A, REG_VAL_B, kField_ToMask_(MSB, LSB), LSB) |
| Takes the difference between register fields at the same location within two register values. More... | |
| #define | kField_DiffNamedRange_(REG_VAL_A, REG_VAL_B, FIELD_NAME) kField_DiffRange_(REG_VAL_A, REG_VAL_B, FIELD_NAME##_MSB, FIELD_NAME##_LSB) |
| Takes the difference between register fields at the same location within two register values by token-pasting left/right macros using a specific naming scheme. More... | |