From e2c1390d1badbce07945d19ead64704ad4056309 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Jun 2014 19:07:42 +0200 Subject: [PATCH] bits: Add left circular shift function Submitted-by: Max Signed-off-by: Sylvain Munaut --- include/osmocom/core/bits.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/osmocom/core/bits.h b/include/osmocom/core/bits.h index f3045e471..1587b0500 100644 --- a/include/osmocom/core/bits.h +++ b/include/osmocom/core/bits.h @@ -77,4 +77,14 @@ uint32_t osmo_revbytebits_8(uint8_t x); /* \brief reverse the bits of each byte in a given buffer */ void osmo_revbytebits_buf(uint8_t *buf, int len); +/*! \brief left circular shift + * \param[in] in The 16 bit unsigned integer to be rotated + * \param[in] shift Number of bits to shift \a in to, [0;16] bits + * \returns shifted value + */ +static inline uint16_t osmo_rol16(uint16_t in, unsigned shift) +{ + return (in << shift) | (in >> (16 - shift)); +} + /*! @} */