mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-07 23:28:55 +00:00
kernel: add bit rotation helpers for 16 and 8 bit
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> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Johannes Berg <johannes@sipsolutions.net> Cc: John W. Linville <linville@tuxdriver.com> Cc: Joe Perches <joe@perches.com> Cc: Jiri Benc <jbenc@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
589499c04b
commit
3afe392598
1 changed files with 40 additions and 0 deletions
|
@ -65,6 +65,46 @@ static inline __u32 ror32(__u32 word, unsigned int shift)
|
||||||
return (word >> shift) | (word << (32 - 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)
|
static inline unsigned fls_long(unsigned long l)
|
||||||
{
|
{
|
||||||
if (sizeof(l) == 4)
|
if (sizeof(l) == 4)
|
||||||
|
|
Loading…
Add table
Reference in a new issue