Lines Matching +full:bit +full:- +full:shift
1 /* SPDX-License-Identifier: GPL-2.0 */
31 * Defined here because those may be needed by architecture-specific static
52 #include <asm-generic/bitops.h>
54 #define for_each_set_bit(bit, addr, size) \ argument
55 for ((bit) = find_first_bit((addr), (size)); \
56 (bit) < (size); \
57 (bit) = find_next_bit((addr), (size), (bit) + 1))
59 #define for_each_clear_bit(bit, addr, size) \ argument
60 for ((bit) = find_first_zero_bit((addr), (size)); \
61 (bit) < (size); \
62 (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
64 /* same as for_each_set_bit() but use bit as value to start with */
65 #define for_each_set_bit_from(bit, addr, size) \ argument
66 for ((bit) = find_next_bit((addr), (size), (bit)); \
67 (bit) < (size); \
68 (bit) = find_next_bit((addr), (size), (bit) + 1))
83 * rol32 - rotate a 32-bit value left
85 * @shift: bits to roll
87 static inline __u32 rol32(__u32 word, unsigned int shift) in rol32() argument
89 return (word << shift) | (word >> ((-shift) & 31)); in rol32()
93 * sign_extend64 - sign extend a 64-bit value using specified bit as sign-bit
95 * @index: 0 based bit index (0<=index<64) to sign bit
99 __u8 shift = 63 - index; in sign_extend64() local
100 return (__s64)(value << shift) >> shift; in sign_extend64()