aboutsummaryrefslogtreecommitdiff
path: root/hal_internal.h
diff options
context:
space:
mode:
authorPaul Selkirk <paul@psgd.org>2016-05-24 15:42:15 -0400
committerPaul Selkirk <paul@psgd.org>2016-05-24 15:43:13 -0400
commit1fe3c1370d668afd68b9c3b6d0e9480bf3700a7e (patch)
treeabddf1e91d75ec7339ac45ed803df301e4068cbf /hal_internal.h
parent9f4389f372576c377a070e18ca402482de9cdf21 (diff)
Move htonl to hal_internal.h
Diffstat (limited to 'hal_internal.h')
-rw-r--r--hal_internal.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/hal_internal.h b/hal_internal.h
index 253dc09..60aed3b 100644
--- a/hal_internal.h
+++ b/hal_internal.h
@@ -46,6 +46,27 @@
*/
/*
+ * htonl is not available in arm-none-eabi headers or libc.
+ */
+#ifndef STM32F4XX
+#include <arpa/inet.h>
+#else
+#ifdef __ARMEL__ /* little endian */
+inline uint32_t htonl(uint32_t w)
+{
+ return
+ ((w & 0x000000ff) << 24) +
+ ((w & 0x0000ff00) << 8) +
+ ((w & 0x00ff0000) >> 8) +
+ ((w & 0xff000000) >> 24);
+}
+#else /* big endian */
+#define htonl(x) (x)
+#endif
+#define ntohl htonl
+#endif
+
+/*
* Longest hash block and digest we support at the moment.
*/