diff options
Diffstat (limited to 'include/linux/bitops.h')
| -rw-r--r-- | include/linux/bitops.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 3c1063acb2ab..94300fe46cce 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h | |||
| @@ -56,6 +56,26 @@ static inline unsigned long hweight_long(unsigned long w) | |||
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | /** | 58 | /** |
| 59 | * rol64 - rotate a 64-bit value left | ||
| 60 | * @word: value to rotate | ||
| 61 | * @shift: bits to roll | ||
| 62 | */ | ||
| 63 | static inline __u64 rol64(__u64 word, unsigned int shift) | ||
| 64 | { | ||
| 65 | return (word << shift) | (word >> (64 - shift)); | ||
| 66 | } | ||
| 67 | |||
| 68 | /** | ||
| 69 | * ror64 - rotate a 64-bit value right | ||
| 70 | * @word: value to rotate | ||
| 71 | * @shift: bits to roll | ||
| 72 | */ | ||
| 73 | static inline __u64 ror64(__u64 word, unsigned int shift) | ||
| 74 | { | ||
| 75 | return (word >> shift) | (word << (64 - shift)); | ||
| 76 | } | ||
| 77 | |||
| 78 | /** | ||
| 59 | * rol32 - rotate a 32-bit value left | 79 | * rol32 - rotate a 32-bit value left |
| 60 | * @word: value to rotate | 80 | * @word: value to rotate |
| 61 | * @shift: bits to roll | 81 | * @shift: bits to roll |
