|
RTEMS
5.0.0
|
Go to the documentation of this file. 23 #ifndef LIBCPU_SHARED_UTILITY_H 24 #define LIBCPU_SHARED_UTILITY_H 28 #define BSP_BIT8(bit) \ 29 ((uint8_t) (((unsigned int) 1) << (bit))) 31 #define BSP_MSK8(first_bit, last_bit) \ 32 ((uint8_t) ((BSP_BIT8((last_bit) - (first_bit) + 1) - 1) << (first_bit))) 34 #define BSP_FLD8(val, first_bit, last_bit) \ 36 ((((unsigned int) (val)) << (first_bit)) & BSP_MSK8(first_bit, last_bit))) 38 #define BSP_FLD8GET(reg, first_bit, last_bit) \ 39 ((uint8_t) (((reg) & BSP_MSK8(first_bit, last_bit)) >> (first_bit))) 41 #define BSP_FLD8SET(reg, val, first_bit, last_bit) \ 42 ((uint8_t) (((reg) & ~BSP_MSK8(first_bit, last_bit)) \ 43 | BSP_FLD8(val, first_bit, last_bit))) 45 #define BSP_BIT16(bit) \ 46 ((uint16_t) (((unsigned int) 1) << (bit))) 48 #define BSP_MSK16(first_bit, last_bit) \ 49 ((uint16_t) ((BSP_BIT16((last_bit) - (first_bit) + 1) - 1) << (first_bit))) 51 #define BSP_FLD16(val, first_bit, last_bit) \ 53 ((((unsigned int) (val)) << (first_bit)) & BSP_MSK16(first_bit, last_bit))) 55 #define BSP_FLD16GET(reg, first_bit, last_bit) \ 56 ((uint16_t) (((reg) & BSP_MSK16(first_bit, last_bit)) >> (first_bit))) 58 #define BSP_FLD16SET(reg, val, first_bit, last_bit) \ 59 ((uint16_t) (((reg) & ~BSP_MSK16(first_bit, last_bit)) \ 60 | BSP_FLD16(val, first_bit, last_bit))) 62 #define BSP_BIT32(bit) \ 63 ((uint32_t) (((uint32_t) 1) << (bit))) 65 #define BSP_MSK32(first_bit, last_bit) \ 66 ((uint32_t) ((BSP_BIT32((last_bit) - (first_bit) + 1) - 1) << (first_bit))) 68 #define BSP_FLD32(val, first_bit, last_bit) \ 70 ((((uint32_t) (val)) << (first_bit)) & BSP_MSK32(first_bit, last_bit))) 72 #define BSP_FLD32GET(reg, first_bit, last_bit) \ 73 ((uint32_t) (((reg) & BSP_MSK32(first_bit, last_bit)) >> (first_bit))) 75 #define BSP_FLD32SET(reg, val, first_bit, last_bit) \ 76 ((uint32_t) (((reg) & ~BSP_MSK32(first_bit, last_bit)) \ 77 | BSP_FLD32(val, first_bit, last_bit))) 79 #define BSP_BIT64(bit) \ 80 ((uint64_t) (((uint64_t) 1) << (bit))) 82 #define BSP_MSK64(first_bit, last_bit) \ 83 ((uint64_t) ((BSP_BIT64((last_bit) - (first_bit) + 1) - 1) << (first_bit))) 85 #define BSP_FLD64(val, first_bit, last_bit) \ 87 ((((uint64_t) (val)) << (first_bit)) & BSP_MSK64(first_bit, last_bit))) 89 #define BSP_FLD64GET(reg, first_bit, last_bit) \ 90 ((uint64_t) (((reg) & BSP_MSK64(first_bit, last_bit)) >> (first_bit))) 92 #define BSP_FLD64SET(reg, val, first_bit, last_bit) \ 93 ((uint64_t) (((reg) & ~BSP_MSK64(first_bit, last_bit)) \ 94 | BSP_FLD64(val, first_bit, last_bit))) 96 #define BSP_BBIT8(bit) \ 99 #define BSP_BMSK8(first_bit, last_bit) \ 100 BSP_MSK8(7 - (last_bit), 7 - (first_bit)) 102 #define BSP_BFLD8(val, first_bit, last_bit) \ 103 BSP_FLD8(val, 7 - (last_bit), 7 - (first_bit)) 105 #define BSP_BFLD8GET(reg, first_bit, last_bit) \ 106 BSP_FLD8GET(reg, 7 - (last_bit), 7 - (first_bit)) 108 #define BSP_BFLD8SET(reg, val, first_bit, last_bit) \ 109 BSP_FLD8SET(reg, val, 7 - (last_bit), 7 - (first_bit)) 111 #define BSP_BBIT16(bit) \ 112 BSP_BIT16(15 - (bit)) 114 #define BSP_BMSK16(first_bit, last_bit) \ 115 BSP_MSK16(15 - (last_bit), 15 - (first_bit)) 117 #define BSP_BFLD16(val, first_bit, last_bit) \ 118 BSP_FLD16(val, 15 - (last_bit), 15 - (first_bit)) 120 #define BSP_BFLD16GET(reg, first_bit, last_bit) \ 121 BSP_FLD16GET(reg, 15 - (last_bit), 15 - (first_bit)) 123 #define BSP_BFLD16SET(reg, val, first_bit, last_bit) \ 124 BSP_FLD16SET(reg, val, 15 - (last_bit), 15 - (first_bit)) 126 #define BSP_BBIT32(bit) \ 127 BSP_BIT32(31 - (bit)) 129 #define BSP_BMSK32(first_bit, last_bit) \ 130 BSP_MSK32(31 - (last_bit), 31 - (first_bit)) 132 #define BSP_BFLD32(val, first_bit, last_bit) \ 133 BSP_FLD32(val, 31 - (last_bit), 31 - (first_bit)) 135 #define BSP_BFLD32GET(reg, first_bit, last_bit) \ 136 BSP_FLD32GET(reg, 31 - (last_bit), 31 - (first_bit)) 138 #define BSP_BFLD32SET(reg, val, first_bit, last_bit) \ 139 BSP_FLD32SET(reg, val, 31 - (last_bit), 31 - (first_bit)) 141 #define BSP_BBIT64(bit) \ 142 BSP_BIT64(63 - (bit)) 144 #define BSP_BMSK64(first_bit, last_bit) \ 145 BSP_MSK64(63 - (last_bit), 63 - (first_bit)) 147 #define BSP_BFLD64(val, first_bit, last_bit) \ 148 BSP_FLD64(val, 63 - (last_bit), 63 - (first_bit)) 150 #define BSP_BFLD64GET(reg, first_bit, last_bit) \ 151 BSP_FLD64GET(reg, 63 - (last_bit), 63 - (first_bit)) 153 #define BSP_BFLD64SET(reg, val, first_bit, last_bit) \ 154 BSP_FLD64SET(reg, val, 63 - (last_bit), 63 - (first_bit))