00001
00054 #if !defined(__IX_MACROS_H__)
00055 #define __IX_MACROS_H__
00056
00057
00058 #if defined(__cplusplus)
00059 extern "C"
00060 {
00061 #endif
00062
00063
00076 #define IX_BIT_FIELD_MASK16( \
00077 arg_FieldLSBBit, \
00078 arg_FieldMSBBit \
00079 ) \
00080 ((ix_bit_mask16)((((ix_uint16)1 << (arg_FieldMSBBit + 1 - arg_FieldLSBBit)) - \
00081 (ix_uint16)1) << arg_FieldLSBBit))
00082
00083
00084
00100 #define IX_GET_BIT_FIELD16( \
00101 arg_PackedData16, \
00102 arg_FieldLSBBit, \
00103 arg_FieldMSBBit \
00104 ) \
00105 (((ix_uint16)(arg_PackedData16) & IX_BIT_FIELD_MASK16(arg_FieldLSBBit, arg_FieldMSBBit)) >> \
00106 arg_FieldLSBBit)
00107
00108
00124 #define IX_MAKE_BIT_FIELD16( \
00125 arg_BitFieldValue, \
00126 arg_FieldLSBBit, \
00127 arg_FieldMSBBit \
00128 ) \
00129 (((ix_uint16)(arg_BitFieldValue) << arg_FieldLSBBit) & \
00130 IX_BIT_FIELD_MASK16(arg_FieldLSBBit, arg_FieldMSBBit))
00131
00147 #define IX_SET_BIT_FIELD16( \
00148 arg_PackedData16, \
00149 arg_BitFieldValue, \
00150 arg_FieldLSBBit, \
00151 arg_FieldMSBBit \
00152 ) \
00153 (arg_PackedData16 = (((ix_uint16)(arg_PackedData16) & \
00154 ~(IX_BIT_FIELD_MASK16(arg_FieldLSBBit, arg_FieldMSBBit))) | \
00155 IX_MAKE_BIT_FIELD16(arg_BitFieldValue, arg_FieldLSBBit, arg_FieldMSBBit)))
00156
00157
00170 #define IX_BIT_FIELD_MASK32( \
00171 arg_FieldLSBBit, \
00172 arg_FieldMSBBit \
00173 ) \
00174 ((ix_bit_mask32)((((ix_uint32)1 << (arg_FieldMSBBit + 1 - arg_FieldLSBBit)) - \
00175 (ix_uint32)1) << arg_FieldLSBBit))
00176
00177
00178
00194 #define IX_GET_BIT_FIELD32( \
00195 arg_PackedData32, \
00196 arg_FieldLSBBit, \
00197 arg_FieldMSBBit \
00198 ) \
00199 (((ix_uint32)(arg_PackedData32) & IX_BIT_FIELD_MASK32(arg_FieldLSBBit, arg_FieldMSBBit)) >> \
00200 arg_FieldLSBBit)
00201
00202
00203
00204
00220 #define IX_MAKE_BIT_FIELD32( \
00221 arg_BitFieldValue, \
00222 arg_FieldLSBBit, \
00223 arg_FieldMSBBit \
00224 ) \
00225 (((ix_uint32)(arg_BitFieldValue) << arg_FieldLSBBit) & \
00226 IX_BIT_FIELD_MASK32(arg_FieldLSBBit, arg_FieldMSBBit))
00227
00228
00244 #define IX_SET_BIT_FIELD32( \
00245 arg_PackedData32, \
00246 arg_BitFieldValue, \
00247 arg_FieldLSBBit, \
00248 arg_FieldMSBBit \
00249 ) \
00250 (arg_PackedData32 = (((ix_uint32)(arg_PackedData32) & \
00251 ~(IX_BIT_FIELD_MASK32(arg_FieldLSBBit, arg_FieldMSBBit))) | \
00252 IX_MAKE_BIT_FIELD32(arg_BitFieldValue, arg_FieldLSBBit, arg_FieldMSBBit)))
00253
00254
00255
00256 #if defined(__cplusplus)
00257 }
00258 #endif
00259
00260 #endif