Messages in this thread Patch in this message | | | Subject | [PATCH] kernel: add bit rotation helpers for 16 and 8 bit | From | Harvey Harrison <> | Date | Tue, 18 Mar 2008 13:24:01 -0700 |
| |
Will replace open-coded variants elsewhere. Done in the same style as the 32-bit versions.
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> --- Andrew, these will be used to replace some open-coded variants in the mac80211 code, there are currently no users so it can go in with little risk.
Randy, CC'd in case I screwed up the kerneldoc.
include/linux/bitops.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 69c1edb..40d5473 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -65,6 +65,46 @@ static inline __u32 ror32(__u32 word, unsigned int shift) return (word >> shift) | (word << (32 - shift)); } +/** + * rol16 - rotate a 16-bit value left + * @word: value to rotate + * @shift: bits to roll + */ +static inline __u16 rol16(__u16 word, unsigned int shift) +{ + return (word << shift) | (word >> (16 - shift)); +} + +/** + * ror16 - rotate a 16-bit value right + * @word: value to rotate + * @shift: bits to roll + */ +static inline __u16 ror16(__u16 word, unsigned int shift) +{ + return (word >> shift) | (word << (16 - shift)); +} + +/** + * rol8 - rotate an 8-bit value left + * @word: value to rotate + * @shift: bits to roll + */ +static inline __u8 rol8(__u8 word, unsigned int shift) +{ + return (word << shift) | (word >> (8 - shift)); +} + +/** + * ror8 - rotate an 8-bit value right + * @word: value to rotate + * @shift: bits to roll + */ +static inline __u8 ror8(__u8 word, unsigned int shift) +{ + return (word >> shift) | (word << (8 - shift)); +} + static inline unsigned fls_long(unsigned long l) { if (sizeof(l) == 4) -- 1.5.4.4.684.g0e08
| |