Go to the documentation of this file. 21 #ifndef GRPC_CORE_LIB_IOMGR_PORT_H 22 #define GRPC_CORE_LIB_IOMGR_PORT_H 25 #ifndef GRPC_CUSTOM_SOCKET 26 #define GRPC_CUSTOM_SOCKET 32 #define GRPC_ARES_RESOLVE_LOCALHOST_MANUALLY 1 34 #if defined(GRPC_CUSTOM_SOCKET) 36 #elif defined(GPR_MANYLINUX1) 37 #define GRPC_HAVE_ARPA_NAMESER 1 38 #define GRPC_HAVE_IFADDRS 1 39 #define GRPC_HAVE_IPV6_RECVPKTINFO 1 40 #define GRPC_HAVE_IP_PKTINFO 1 41 #define GRPC_HAVE_MSG_NOSIGNAL 1 42 #define GRPC_HAVE_UNIX_SOCKET 1 43 #define GRPC_POSIX_FORK 1 44 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 45 #define GRPC_POSIX_SOCKET 1 46 #define GRPC_POSIX_SOCKETUTILS 1 47 #define GRPC_POSIX_WAKEUP_FD 1 48 #define GRPC_LINUX_EPOLL 1 49 #elif defined(GPR_WINDOWS) 50 #define GRPC_WINSOCK_SOCKET 1 51 #define GRPC_WINDOWS_SOCKETUTILS 1 52 #define GRPC_WINDOWS_SOCKET_ARES_EV_DRIVER 1 53 #elif defined(GPR_ANDROID) 54 #define GRPC_HAVE_IPV6_RECVPKTINFO 1 55 #define GRPC_HAVE_IP_PKTINFO 1 56 #define GRPC_HAVE_MSG_NOSIGNAL 1 57 #define GRPC_HAVE_UNIX_SOCKET 1 58 #define GRPC_LINUX_EVENTFD 1 59 #define GRPC_POSIX_SOCKET 1 60 #define GRPC_POSIX_SOCKETUTILS 1 61 #define GRPC_POSIX_WAKEUP_FD 1 62 #elif defined(GPR_LINUX) 63 #define GRPC_HAVE_ARPA_NAMESER 1 64 #define GRPC_HAVE_IFADDRS 1 65 #define GRPC_HAVE_IPV6_RECVPKTINFO 1 66 #define GRPC_HAVE_IP_PKTINFO 1 67 #define GRPC_HAVE_MSG_NOSIGNAL 1 68 #define GRPC_HAVE_UNIX_SOCKET 1 71 #define GRPC_HAVE_TCP_INQ 1 72 #ifdef LINUX_VERSION_CODE 73 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0) 74 #define GRPC_LINUX_ERRQUEUE 1 77 #define GRPC_LINUX_MULTIPOLL_WITH_EPOLL 1 78 #define GRPC_POSIX_FORK 1 79 #define GRPC_POSIX_HOST_NAME_MAX 1 80 #define GRPC_POSIX_SOCKET 1 81 #define GRPC_POSIX_WAKEUP_FD 1 83 #if __GLIBC_PREREQ(2, 4) 84 #define GRPC_LINUX_EPOLL 1 86 #if __GLIBC_PREREQ(2, 9) 87 #define GRPC_LINUX_EPOLL_CREATE1 1 88 #define GRPC_LINUX_EVENTFD 1 90 #if __GLIBC_PREREQ(2, 10) 91 #define GRPC_LINUX_SOCKETUTILS 1 94 #ifdef LINUX_VERSION_CODE 95 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) 96 #define GRPC_HAVE_TCP_USER_TIMEOUT 98 #if !(__GLIBC_PREREQ(2, 17)) 103 #define GRPC_LINUX_TCP_H 1 109 #define GRPC_LINUX_EPOLL 1 110 #define GRPC_LINUX_EPOLL_CREATE1 1 111 #define GRPC_LINUX_EVENTFD 1 112 #define GRPC_MSG_IOVLEN_TYPE int 114 #ifndef GRPC_LINUX_EVENTFD 115 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 117 #ifndef GRPC_LINUX_SOCKETUTILS 118 #define GRPC_POSIX_SOCKETUTILS 120 #elif defined(GPR_APPLE) 121 #define GRPC_HAVE_ARPA_NAMESER 1 122 #define GRPC_HAVE_IFADDRS 1 123 #define GRPC_HAVE_SO_NOSIGPIPE 1 124 #define GRPC_HAVE_UNIX_SOCKET 1 125 #define GRPC_MSG_IOVLEN_TYPE int 126 #define GRPC_POSIX_FORK 1 127 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 129 #define GRPC_CFSTREAM_IOMGR 1 130 #define GRPC_CFSTREAM_CLIENT 1 131 #define GRPC_CFSTREAM_ENDPOINT 1 132 #define GRPC_POSIX_SOCKET_ARES_EV_DRIVER 1 133 #define GRPC_POSIX_SOCKET_EV 1 134 #define GRPC_POSIX_SOCKET_EV_EPOLL1 1 135 #define GRPC_POSIX_SOCKET_EV_EPOLLEX 1 136 #define GRPC_POSIX_SOCKET_EV_POLL 1 137 #define GRPC_POSIX_SOCKET_IF_NAMETOINDEX 1 138 #define GRPC_POSIX_SOCKET_RESOLVE_ADDRESS 1 139 #define GRPC_POSIX_SOCKET_SOCKADDR 1 140 #define GRPC_POSIX_SOCKET_SOCKET_FACTORY 1 141 #define GRPC_POSIX_SOCKET_TCP 1 142 #define GRPC_POSIX_SOCKET_TCP_CLIENT 1 143 #define GRPC_POSIX_SOCKET_TCP_SERVER 1 144 #define GRPC_POSIX_SOCKET_TCP_SERVER_UTILS_COMMON 1 145 #define GRPC_POSIX_SOCKET_UDP_SERVER 1 146 #define GRPC_POSIX_SOCKET_UTILS_COMMON 1 148 #define GRPC_POSIX_SOCKET 1 150 #define GRPC_POSIX_SOCKETUTILS 1 151 #define GRPC_POSIX_SYSCONF 1 152 #define GRPC_POSIX_WAKEUP_FD 1 153 #elif defined(GPR_FREEBSD) 154 #define GRPC_HAVE_ARPA_NAMESER 1 155 #define GRPC_HAVE_IFADDRS 1 156 #define GRPC_HAVE_IPV6_RECVPKTINFO 1 157 #define GRPC_HAVE_SO_NOSIGPIPE 1 158 #define GRPC_HAVE_UNIX_SOCKET 1 159 #define GRPC_POSIX_FORK 1 160 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 161 #define GRPC_POSIX_SOCKET 1 162 #define GRPC_POSIX_SOCKETUTILS 1 163 #define GRPC_POSIX_WAKEUP_FD 1 164 #elif defined(GPR_OPENBSD) 165 #define GRPC_HAVE_IFADDRS 1 166 #define GRPC_HAVE_IPV6_RECVPKTINFO 1 167 #define GRPC_HAVE_UNIX_SOCKET 1 168 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 169 #define GRPC_POSIX_SOCKET 1 170 #define GRPC_POSIX_SOCKETUTILS 1 171 #define GRPC_POSIX_WAKEUP_FD 1 172 #elif defined(GPR_SOLARIS) 173 #define GRPC_HAVE_UNIX_SOCKET 1 174 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 175 #define GRPC_POSIX_SOCKET 1 176 #define GRPC_POSIX_SOCKETUTILS 1 177 #define GRPC_POSIX_WAKEUP_FD 1 178 #elif defined(GPR_AIX) 179 #define GRPC_HAVE_UNIX_SOCKET 1 180 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 181 #define GRPC_POSIX_SOCKET 1 182 #define GRPC_POSIX_SOCKETUTILS 1 183 #define GRPC_POSIX_WAKEUP_FD 1 184 #elif defined(GPR_NACL) 185 #define GRPC_HAVE_ARPA_NAMESER 1 186 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 187 #define GRPC_POSIX_SOCKET 1 188 #define GRPC_POSIX_SOCKETUTILS 1 189 #define GRPC_POSIX_WAKEUP_FD 1 190 #elif defined(GPR_FUCHSIA) 191 #define GRPC_HAVE_IFADDRS 1 192 #define GRPC_HAVE_IPV6_RECVPKTINFO 1 193 #define GRPC_HAVE_IP_PKTINFO 1 196 #undef GRPC_HAVE_MSG_NOSIGNAL 197 #define GRPC_HAVE_UNIX_SOCKET 1 198 #define GRPC_POSIX_WAKEUP_FD 1 200 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 201 #define GRPC_POSIX_SOCKET 1 202 #define GRPC_POSIX_SOCKETADDR 1 204 #define GRPC_POSIX_SOCKETUTILS 1 205 #define GRPC_TIMER_USE_GENERIC 1 206 #elif !defined(GPR_NO_AUTODETECT_PLATFORM) 207 #error "Platform not recognized" 210 #if defined(GRPC_POSIX_SOCKET) + defined(GRPC_WINSOCK_SOCKET) + \ 211 defined(GRPC_CUSTOM_SOCKET) + defined(GRPC_CFSTREAM) != \ 214 "Must define exactly one of GRPC_POSIX_SOCKET, GRPC_WINSOCK_SOCKET, GRPC_CUSTOM_SOCKET" 217 #ifdef GRPC_POSIX_SOCKET 218 #define GRPC_POSIX_SOCKET_ARES_EV_DRIVER 1 219 #define GRPC_POSIX_SOCKET_EV 1 220 #define GRPC_POSIX_SOCKET_EV_EPOLLEX 1 221 #define GRPC_POSIX_SOCKET_EV_POLL 1 222 #define GRPC_POSIX_SOCKET_EV_EPOLL1 1 223 #define GRPC_POSIX_SOCKET_IF_NAMETOINDEX 1 224 #define GRPC_POSIX_SOCKET_IOMGR 1 225 #define GRPC_POSIX_SOCKET_RESOLVE_ADDRESS 1 226 #define GRPC_POSIX_SOCKET_SOCKADDR 1 227 #define GRPC_POSIX_SOCKET_SOCKET_FACTORY 1 228 #define GRPC_POSIX_SOCKET_TCP 1 229 #define GRPC_POSIX_SOCKET_TCP_CLIENT 1 230 #define GRPC_POSIX_SOCKET_TCP_SERVER 1 231 #define GRPC_POSIX_SOCKET_TCP_SERVER_UTILS_COMMON 1 232 #define GRPC_POSIX_SOCKET_UDP_SERVER 1 233 #define GRPC_POSIX_SOCKET_UTILS_COMMON 1 236 #if defined(GRPC_POSIX_HOST_NAME_MAX) && defined(GRPC_POSIX_SYSCONF) 237 #error "Cannot define both GRPC_POSIX_HOST_NAME_MAX and GRPC_POSIX_SYSCONF" 239 #if !defined(GRPC_POSIX_HOST_NAME_MAX) && !defined(GRPC_POSIX_SYSCONF) 240 #define GRPC_GETHOSTNAME_FALLBACK 1