[PATCH 02 of 11 c-hglib:level0 V2] utils: swap_uint32 function

Iulian Stana julian.stana at gmail.com
Fri Sep 13 15:31:52 CDT 2013


# HG changeset patch
# User Iulian Stana <julian.stana at gmail.com>
# 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 <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+
+#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 <stdint.h>
+
+/** 
+ * \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


More information about the Mercurial-devel mailing list