From patchwork Fri Sep 13 20:31:52 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [02,of,11,c-hglib:level0,V2] utils: swap_uint32 function From: Iulian Stana X-Patchwork-Id: 2436 Message-Id: <1c3f11950b3e4a267c69.1379104312@doppler> To: mercurial-devel@selenic.com Date: Fri, 13 Sep 2013 23:31:52 +0300 # HG changeset patch # User Iulian Stana # Date 1379102653 -10800 # Fri Sep 13 23:04:13 2013 +0300 # Node ID 1c3f11950b3e4a267c6973e6682beaf90a94bb2b # Parent 61c230dad6595f35cf22d2b3c0f64df039e8fb18 utils: swap_uint32 function Swap from Big endian to Little endian and vice versa. diff --git a/utils.c b/utils.c new file mode 100644 --- /dev/null +++ b/utils.c @@ -0,0 +1,17 @@ +#include +#include +#include +#include +#include + +#include "utils.h" + +/* + * Byte swap unsigned int + * */ +uint32_t swap_uint32(uint32_t val) +{ + val = ((val << 8) & 0xFF00FF00) | ((val >> 8) & 0xFF00FF); + return (val << 16) | (val >> 16); +} + diff --git a/utils.h b/utils.h new file mode 100644 --- /dev/null +++ b/utils.h @@ -0,0 +1,13 @@ +#ifndef _UTILS_CHG_H_ +#define _UTILS_CHG_H_ + +#include + +/** + * \brief Byte swap unsigned int + * \param val an uint32_t integer + * \retval uint32_t the bigendian form of val value + * */ +uint32_t swap_uint32( uint32_t val ); + +#endif