FireSync API
 All Classes Files Functions Variables Typedefs Friends Macros Modules Pages
kField Struct Reference

Description

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...
 

The documentation for this struct was generated from the following file: