File indexing completed on 2025-05-11 08:23:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 #ifndef LIBCPU_SHARED_UTILITY_H
0037 #define LIBCPU_SHARED_UTILITY_H
0038
0039 #include <stdint.h>
0040
0041 #define BSP_BIT8(bit) \
0042 ((uint8_t) (((unsigned int) 1) << (bit)))
0043
0044 #define BSP_MSK8(first_bit, last_bit) \
0045 ((uint8_t) ((BSP_BIT8((last_bit) - (first_bit) + 1) - 1) << (first_bit)))
0046
0047 #define BSP_FLD8(val, first_bit, last_bit) \
0048 ((uint8_t) \
0049 ((((unsigned int) (val)) << (first_bit)) & BSP_MSK8(first_bit, last_bit)))
0050
0051 #define BSP_FLD8GET(reg, first_bit, last_bit) \
0052 ((uint8_t) (((reg) & BSP_MSK8(first_bit, last_bit)) >> (first_bit)))
0053
0054 #define BSP_FLD8SET(reg, val, first_bit, last_bit) \
0055 ((uint8_t) (((reg) & ~BSP_MSK8(first_bit, last_bit)) \
0056 | BSP_FLD8(val, first_bit, last_bit)))
0057
0058 #define BSP_BIT16(bit) \
0059 ((uint16_t) (((unsigned int) 1) << (bit)))
0060
0061 #define BSP_MSK16(first_bit, last_bit) \
0062 ((uint16_t) ((BSP_BIT16((last_bit) - (first_bit) + 1) - 1) << (first_bit)))
0063
0064 #define BSP_FLD16(val, first_bit, last_bit) \
0065 ((uint16_t) \
0066 ((((unsigned int) (val)) << (first_bit)) & BSP_MSK16(first_bit, last_bit)))
0067
0068 #define BSP_FLD16GET(reg, first_bit, last_bit) \
0069 ((uint16_t) (((reg) & BSP_MSK16(first_bit, last_bit)) >> (first_bit)))
0070
0071 #define BSP_FLD16SET(reg, val, first_bit, last_bit) \
0072 ((uint16_t) (((reg) & ~BSP_MSK16(first_bit, last_bit)) \
0073 | BSP_FLD16(val, first_bit, last_bit)))
0074
0075 #define BSP_BIT32(bit) \
0076 ((uint32_t) (((uint32_t) 1) << (bit)))
0077
0078 #define BSP_MSK32(first_bit, last_bit) \
0079 ((uint32_t) ((BSP_BIT32((last_bit) - (first_bit) + 1) - 1) << (first_bit)))
0080
0081 #define BSP_FLD32(val, first_bit, last_bit) \
0082 ((uint32_t) \
0083 ((((uint32_t) (val)) << (first_bit)) & BSP_MSK32(first_bit, last_bit)))
0084
0085 #define BSP_FLD32GET(reg, first_bit, last_bit) \
0086 ((uint32_t) (((reg) & BSP_MSK32(first_bit, last_bit)) >> (first_bit)))
0087
0088 #define BSP_FLD32SET(reg, val, first_bit, last_bit) \
0089 ((uint32_t) (((reg) & ~BSP_MSK32(first_bit, last_bit)) \
0090 | BSP_FLD32(val, first_bit, last_bit)))
0091
0092 #define BSP_BIT64(bit) \
0093 ((uint64_t) (((uint64_t) 1) << (bit)))
0094
0095 #define BSP_MSK64(first_bit, last_bit) \
0096 ((uint64_t) ((BSP_BIT64((last_bit) - (first_bit) + 1) - 1) << (first_bit)))
0097
0098 #define BSP_FLD64(val, first_bit, last_bit) \
0099 ((uint64_t) \
0100 ((((uint64_t) (val)) << (first_bit)) & BSP_MSK64(first_bit, last_bit)))
0101
0102 #define BSP_FLD64GET(reg, first_bit, last_bit) \
0103 ((uint64_t) (((reg) & BSP_MSK64(first_bit, last_bit)) >> (first_bit)))
0104
0105 #define BSP_FLD64SET(reg, val, first_bit, last_bit) \
0106 ((uint64_t) (((reg) & ~BSP_MSK64(first_bit, last_bit)) \
0107 | BSP_FLD64(val, first_bit, last_bit)))
0108
0109 #define BSP_BBIT8(bit) \
0110 BSP_BIT8(7 - (bit))
0111
0112 #define BSP_BMSK8(first_bit, last_bit) \
0113 BSP_MSK8(7 - (last_bit), 7 - (first_bit))
0114
0115 #define BSP_BFLD8(val, first_bit, last_bit) \
0116 BSP_FLD8(val, 7 - (last_bit), 7 - (first_bit))
0117
0118 #define BSP_BFLD8GET(reg, first_bit, last_bit) \
0119 BSP_FLD8GET(reg, 7 - (last_bit), 7 - (first_bit))
0120
0121 #define BSP_BFLD8SET(reg, val, first_bit, last_bit) \
0122 BSP_FLD8SET(reg, val, 7 - (last_bit), 7 - (first_bit))
0123
0124 #define BSP_BBIT16(bit) \
0125 BSP_BIT16(15 - (bit))
0126
0127 #define BSP_BMSK16(first_bit, last_bit) \
0128 BSP_MSK16(15 - (last_bit), 15 - (first_bit))
0129
0130 #define BSP_BFLD16(val, first_bit, last_bit) \
0131 BSP_FLD16(val, 15 - (last_bit), 15 - (first_bit))
0132
0133 #define BSP_BFLD16GET(reg, first_bit, last_bit) \
0134 BSP_FLD16GET(reg, 15 - (last_bit), 15 - (first_bit))
0135
0136 #define BSP_BFLD16SET(reg, val, first_bit, last_bit) \
0137 BSP_FLD16SET(reg, val, 15 - (last_bit), 15 - (first_bit))
0138
0139 #define BSP_BBIT32(bit) \
0140 BSP_BIT32(31 - (bit))
0141
0142 #define BSP_BMSK32(first_bit, last_bit) \
0143 BSP_MSK32(31 - (last_bit), 31 - (first_bit))
0144
0145 #define BSP_BFLD32(val, first_bit, last_bit) \
0146 BSP_FLD32(val, 31 - (last_bit), 31 - (first_bit))
0147
0148 #define BSP_BFLD32GET(reg, first_bit, last_bit) \
0149 BSP_FLD32GET(reg, 31 - (last_bit), 31 - (first_bit))
0150
0151 #define BSP_BFLD32SET(reg, val, first_bit, last_bit) \
0152 BSP_FLD32SET(reg, val, 31 - (last_bit), 31 - (first_bit))
0153
0154 #define BSP_BBIT64(bit) \
0155 BSP_BIT64(63 - (bit))
0156
0157 #define BSP_BMSK64(first_bit, last_bit) \
0158 BSP_MSK64(63 - (last_bit), 63 - (first_bit))
0159
0160 #define BSP_BFLD64(val, first_bit, last_bit) \
0161 BSP_FLD64(val, 63 - (last_bit), 63 - (first_bit))
0162
0163 #define BSP_BFLD64GET(reg, first_bit, last_bit) \
0164 BSP_FLD64GET(reg, 63 - (last_bit), 63 - (first_bit))
0165
0166 #define BSP_BFLD64SET(reg, val, first_bit, last_bit) \
0167 BSP_FLD64SET(reg, val, 63 - (last_bit), 63 - (first_bit))
0168
0169 #endif