Changes in kernel/generic/include/bitops.h [137691a:7a0359b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/bitops.h
r137691a r7a0359b 27 27 */ 28 28 29 /** @addtogroup generic 29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 36 36 #define KERN_BITOPS_H_ 37 37 38 #include <trace.h> 38 39 39 /** Return position of first non-zero bit from left (i.e. [log_2(arg)]). 40 #ifdef __32_BITS__ 41 #define fnzb(arg) fnzb32(arg) 42 #endif 43 44 #ifdef __64_BITS__ 45 #define fnzb(arg) fnzb64(arg) 46 #endif 47 48 /** Return position of first non-zero bit from left (32b variant). 40 49 * 41 * If number is zero, it returns 0 50 * @return 0 (if the number is zero) or [log_2(arg)]. 51 * 42 52 */ 43 static inline int fnzb32(uint32_t arg)53 NO_TRACE static inline uint8_t fnzb32(uint32_t arg) 44 54 { 45 int n = 0;46 55 uint8_t n = 0; 56 47 57 if (arg >> 16) { 48 58 arg >>= 16; … … 71 81 } 72 82 73 static inline int fnzb64(uint64_t arg) 83 /** Return position of first non-zero bit from left (64b variant). 84 * 85 * @return 0 (if the number is zero) or [log_2(arg)]. 86 * 87 */ 88 NO_TRACE static inline uint8_t fnzb64(uint64_t arg) 74 89 { 75 int n = 0;76 90 uint8_t n = 0; 91 77 92 if (arg >> 32) { 78 93 arg >>= 32; … … 83 98 } 84 99 85 #define fnzb(x) fnzb32(x)86 87 100 #endif 88 101
Note:
See TracChangeset
for help on using the changeset viewer.