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