|
@@ -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)
|