/* * SRT - Secure, Reliable, Transport * Copyright (c) 2018 Haivision Systems Inc. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * */ #ifndef INC_SRT_PLATFORM_SYS_H #define INC_SRT_PLATFORM_SYS_H // INFORMATION // // This file collects all required platform-specific declarations // required to provide everything that the SRT library needs from system. // // There's also semi-modular system implemented using SRT_IMPORT_* macros. // To require a module to be imported, #define SRT_IMPORT_* where * is // the module name. Currently handled module macros: // // SRT_IMPORT_TIME (mach time on Mac, portability gettimeofday on WIN32) // SRT_IMPORT_EVENT (includes kevent on Mac) #ifdef _WIN32 #define _CRT_SECURE_NO_WARNINGS 1 // silences windows complaints for sscanf #include #include #include #include #ifndef __MINGW__ #include #endif #ifdef SRT_IMPORT_TIME #include #endif #include #include #if defined(_MSC_VER) #pragma warning(disable:4251) #endif #else #if __APPLE__ // XXX Check if this condition doesn't require checking of // also other macros, like TARGET_OS_IOS etc. #include "TargetConditionals.h" #define __APPLE_USE_RFC_3542 /* IPV6_PKTINFO */ #ifdef SRT_IMPORT_TIME #include #endif #ifdef SRT_IMPORT_EVENT #include #include #include #include #endif #endif #ifdef LINUX #ifdef SRT_IMPORT_EVENT #include #include #endif #endif #if defined(__ANDROID__) || defined(ANDROID) #ifdef SRT_IMPORT_EVENT #include #endif #endif #include #include #include #include #include #include #include #include #include #ifdef __cplusplus // Headers for errno, string and stdlib are // included indirectly correct C++ way. #else #include #include #include #endif #endif #endif