From: Heiko Schocher Date: Tue, 18 Nov 2025 04:30:37 +0000 (+0100) Subject: lib: Import rol32 function from Linux X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a0c939b88fd42c6b0a374f7c87317f292df46a1;p=thirdparty%2Fu-boot.git lib: Import rol32 function from Linux sm3 crypto algorithm uses rol32 function from linux, so import it. Linux base was: commit ca91b9500108:("Merge tag 'v6.15-rc4-ksmbd-server-fixes' of git://git.samba.org/ksmbd") Signed-off-by: Heiko Schocher Reviewed-by: Ilias Apalodimas --- diff --git a/include/linux/bitops.h b/include/linux/bitops.h index f826d7f3b34..29e0da48de8 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -148,6 +148,17 @@ static inline unsigned long hweight_long(unsigned long w) return sizeof(w) == 4 ? generic_hweight32(w) : generic_hweight64(w); } +/** + * rol32 - rotate a 32-bit value left + * @word: value to rotate + * @shift: bits to roll + */ + +static inline __u32 rol32(__u32 word, unsigned int shift) +{ + return (word << (shift & 31)) | (word >> ((-shift) & 31)); +} + #include /* linux/include/asm-generic/bitops/non-atomic.h */