diff options
Diffstat (limited to 'daemons/shaper/src/platform.h')
-rw-r--r-- | daemons/shaper/src/platform.h | 74 |
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 |