summaryrefslogtreecommitdiff
path: root/daemons/shaper/src/platform.h
diff options
context:
space:
mode:
Diffstat (limited to 'daemons/shaper/src/platform.h')
-rw-r--r--daemons/shaper/src/platform.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/daemons/shaper/src/platform.h b/daemons/shaper/src/platform.h
new file mode 100644
index 00000000..3691d584
--- /dev/null
+++ b/daemons/shaper/src/platform.h
@@ -0,0 +1,74 @@
+/*************************************************************************************************************
+Copyright (c) 2016-2017, Harman International Industries, Incorporated
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS LISTED "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS LISTED BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*************************************************************************************************************/
+
+#ifndef MAAP_PLATFORM_H
+#define MAAP_PLATFORM_H
+
+#if defined(__linux__)
+
+#include <endian.h>
+#include <time.h>
+
+#define OS_TIME_TYPE struct timespec
+
+#elif defined(__APPLE__)
+
+#include <libkern/OSByteOrder.h>
+#include <sys/time.h>
+
+#define htobe16(x) OSSwapHostToBigInt16(x)
+#define be16toh(x) OSSwapBigToHostInt16(x)
+#define htobe64(x) OSSwapHostToBigInt64(x)
+#define be64toh(x) OSSwapBigToHostInt64(x)
+
+#define ETH_ALEN 6
+
+#define OS_TIME_TYPE struct timeval
+
+#elif defined(_WIN32)
+
+#include <Winsock2.h>
+
+#define htobe16(x) htons(x)
+#define be16toh(x) ntohs(x)
+#define htobe64(x) ((htonl(1) == 1) ? x : ((uint64_t)htonl((x) & 0xFFFFFFFF) << 32) | htonl((x) >> 32))
+#define be64toh(x) ((ntohl(1) == 1) ? x : ((uint64_t)ntohl((x) & 0xFFFFFFFF) << 32) | ntohl((x) >> 32))
+
+#define OS_TIME_TYPE struct timeval
+
+#else
+
+#error Please create the platform support definitions for this platform
+
+#endif
+
+
+#define HTOBE16(x) htobe16(x)
+#define BE16TOH(x) be16toh(x)
+#define HTOBE64(x) htobe64(x)
+#define BE64TOH(x) be64toh(x)
+
+
+#endif