Skip to content

Commit

Permalink
endian.h
Browse files Browse the repository at this point in the history
everybody gets one eventually
  • Loading branch information
pqwy committed Jan 2, 2018
1 parent d4efa12 commit 9a7397d
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 22 deletions.
29 changes: 29 additions & 0 deletions src/native/endian.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)

#include <sys/endian.h>

#elif defined(__APPLE__)

/* OS X endian.h doesn't provide be|le macros */
#include <machine/endian.h>
#include <libkern/OSByteOrder.h>

#define htobe16(x) OSSwapHostToBigInt16(x)
#define htole16(x) OSSwapHostToLittleInt16(x)
#define be16toh(x) OSSwapBigToHostInt16(x)
#define le16toh(x) OSSwapLittleToHostInt16(x)
#define htobe32(x) OSSwapHostToBigInt32(x)
#define htole32(x) OSSwapHostToLittleInt32(x)
#define be32toh(x) OSSwapBigToHostInt32(x)
#define le32toh(x) OSSwapLittleToHostInt32(x)
#define htobe64(x) OSSwapHostToBigInt64(x)
#define htole64(x) OSSwapHostToLittleInt64(x)
#define be64toh(x) OSSwapBigToHostInt64(x)
#define le64toh(x) OSSwapLittleToHostInt64(x)

#else

/* Needs _DEFAULT_SOURCE with glibc */
#include <endian.h>

#endif
23 changes: 1 addition & 22 deletions src/native/nocrypto.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,7 @@
#define H__NOCRYPTO

#include <stdint.h>
#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
#include <sys/endian.h>
#elif defined(__APPLE__)
/* OS X endian.h doesn't provide be|le macros */
#include <machine/endian.h>
#include <libkern/OSByteOrder.h>
#define htobe16(x) OSSwapHostToBigInt16(x)
#define htole16(x) OSSwapHostToLittleInt16(x)
#define be16toh(x) OSSwapBigToHostInt16(x)
#define le16toh(x) OSSwapLittleToHostInt16(x)
#define htobe32(x) OSSwapHostToBigInt32(x)
#define htole32(x) OSSwapHostToLittleInt32(x)
#define be32toh(x) OSSwapBigToHostInt32(x)
#define le32toh(x) OSSwapLittleToHostInt32(x)
#define htobe64(x) OSSwapHostToBigInt64(x)
#define htole64(x) OSSwapHostToLittleInt64(x)
#define be64toh(x) OSSwapBigToHostInt64(x)
#define le64toh(x) OSSwapLittleToHostInt64(x)
#else
// Needs _DEFAULT_SOURCE on Linux.
#include <endian.h>
#endif
#include "endian.h"

#include <caml/mlvalues.h>
#include <caml/bigarray.h>
Expand Down

0 comments on commit 9a7397d

Please sign in to comment.