6#ifndef BITCOIN_COMPAT_H
7#define BITCOIN_COMPAT_H
9#if defined(HAVE_CONFIG_H)
20#define FD_SETSIZE 1024
27#include <sys/select.h>
28#include <sys/socket.h>
31#include <netinet/in.h>
32#include <netinet/tcp.h>
43#define WSAGetLastError() errno
44#define WSAEINVAL EINVAL
45#define WSAEALREADY EALREADY
46#define WSAEWOULDBLOCK EWOULDBLOCK
47#define WSAEAGAIN EAGAIN
48#define WSAEMSGSIZE EMSGSIZE
50#define WSAEINPROGRESS EINPROGRESS
51#define WSAEADDRINUSE EADDRINUSE
52#define WSAENOTSOCK EBADF
53#define INVALID_SOCKET (SOCKET)(~0)
54#define SOCKET_ERROR -1
58#define WSAEAGAIN EAGAIN
60#define WSAEAGAIN WSAEWOULDBLOCK
76typedef int64_t ssize_t;
78typedef int32_t ssize_t;
83#if HAVE_DECL_STRNLEN == 0
84size_t strnlen(
const char *start,
size_t max_len);
101#if defined(USE_POLL) || defined(WIN32)
104 return (s < FD_SETSIZE);
109#if !defined(MSG_NOSIGNAL)
110#define MSG_NOSIGNAL 0
114#if !defined(MSG_DONTWAIT)
115#define MSG_DONTWAIT 0
size_t strnlen(const char *start, size_t max_len)
static bool IsSelectableSocket(const SOCKET &s)