Portability fix: Adding local partial copy of libosmocore (TODO: minimize it)
diff --git a/lib/decoding/osmocom/core/endian.h b/lib/decoding/osmocom/core/endian.h
new file mode 100644
index 0000000..6107b12
--- /dev/null
+++ b/lib/decoding/osmocom/core/endian.h
@@ -0,0 +1,62 @@
+/*! \file endian.h
+ *
+ * GNU and FreeBSD have various ways to express the
+ * endianess but none of them is similiar enough. This
+ * will create two defines that allows to decide on the
+ * endian. The following will be defined to either 0 or
+ * 1 at the end of the file.
+ *
+ *      OSMO_IS_LITTLE_ENDIAN
+ *      OSMO_IS_BIG_ENDIAN
+ *
+ */
+
+#pragma once
+
+#if defined(__FreeBSD__)
+#include <sys/endian.h>
+        #if BYTE_ORDER == LITTLE_ENDIAN
+                #define OSMO_IS_LITTLE_ENDIAN           1
+                #define OSMO_IS_BIG_ENDIAN              0
+        #elif BYTE_ORDER == BIG_ENDIAN
+                #define OSMO_IS_LITTLE_ENDIAN           0
+                #define OSMO_IS_BIG_ENDIAN              1
+        #else
+                #error "Unknown endian"
+        #endif
+#elif defined(__APPLE__)
+#include <machine/endian.h>
+	#if defined(__DARWIN_LITTLE_ENDIAN)
+		#define OSMO_IS_LITTLE_ENDIAN		1
+		#define OSMO_IS_BIG_ENDIAN		0
+	#elif defined(__DARWIN_BIG_ENDIAN)
+		#define OSMO_IS_LITTLE_ENDIAN		0
+		#define OSMO_IS_BIG_ENDIAN		1
+	#else
+		#error "Unknown endian"
+	#endif
+#elif defined(__linux__)
+#include <endian.h>
+        #if __BYTE_ORDER == __LITTLE_ENDIAN
+                #define OSMO_IS_LITTLE_ENDIAN           1
+                #define OSMO_IS_BIG_ENDIAN              0
+        #elif __BYTE_ORDER == __BIG_ENDIAN
+                #define OSMO_IS_LITTLE_ENDIAN           0
+                #define OSMO_IS_BIG_ENDIAN              1
+        #else
+                #error "Unknown endian"
+        #endif
+#else
+	/* let's try to rely on the compiler.  GCC and CLANG/LLVM seem
+	 * to support this ... */
+	#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+		#define OSMO_IS_LITTLE_ENDIAN           1
+		#define OSMO_IS_BIG_ENDIAN              0
+	#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+		#define OSMO_IS_LITTLE_ENDIAN           0
+		#define OSMO_IS_BIG_ENDIAN              1
+	#else
+		#error "Unknown endian"
+	#endif
+#endif
+