1 // 2 // Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2021 3 // 4 // Distributed under the Boost Software License, Version 1.0. (See accompanying 5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 // 7 #pragma once 8 9 #include "td/utils/port/platform.h" 10 11 // clang-format off 12 13 #if TD_WINDOWS 14 #define TD_PORT_WINDOWS 1 15 #else 16 #define TD_PORT_POSIX 1 17 #endif 18 19 #if TD_LINUX || TD_ANDROID || TD_TIZEN 20 #define TD_POLL_EPOLL 1 21 #define TD_EVENTFD_LINUX 1 22 #elif TD_FREEBSD || TD_OPENBSD || TD_NETBSD 23 #define TD_POLL_KQUEUE 1 24 #define TD_EVENTFD_BSD 1 25 #elif TD_CYGWIN 26 #define TD_POLL_SELECT 1 27 #define TD_EVENTFD_BSD 1 28 #elif TD_EMSCRIPTEN 29 #define TD_POLL_POLL 1 30 #define TD_EVENTFD_UNSUPPORTED 1 31 #elif TD_DARWIN 32 #define TD_POLL_KQUEUE 1 33 #define TD_EVENTFD_BSD 1 34 #elif TD_WINDOWS 35 #define TD_POLL_WINEVENT 1 36 #define TD_EVENTFD_WINDOWS 1 37 #elif TD_ILLUMOS 38 #define TD_POLL_EPOLL 1 39 #define TD_EVENTFD_LINUX 1 40 #elif TD_SOLARIS 41 #define TD_POLL_POLL 1 42 #define TD_EVENTFD_BSD 1 43 #else 44 #error "Poll's implementation is not defined" 45 #endif 46 47 #if TD_EMSCRIPTEN 48 #define TD_THREAD_UNSUPPORTED 1 49 #elif TD_TIZEN || TD_LINUX || TD_DARWIN 50 #define TD_THREAD_PTHREAD 1 51 #else 52 #define TD_THREAD_STL 1 53 #endif 54 55 #if TD_LINUX 56 #define TD_HAS_MMSG 1 57 #endif 58 59 // clang-format on 60