21 #ifndef _tds_sysdep_private_h_    22 #define _tds_sysdep_private_h_    24 #define TDS_ADDITIONAL_SPACE 16    27 # define TDS_NOSIGNAL MSG_NOSIGNAL    29 # define TDS_NOSIGNAL 0L    45 #define READSOCKET(a,b,c)   recv((a), (b), (c), TDS_NOSIGNAL)    46 #define WRITESOCKET(a,b,c)  send((a), (b), (c), TDS_NOSIGNAL)    47 #define CLOSESOCKET(a)      closesocket((a))    48 #define IOCTLSOCKET(a,b,c)  ioctlsocket((a), (b), (char*)(c))    50 #define select select_s    52 #define strcasecmp stricmp    53 #define strncasecmp strnicmp    55 #define getpid() _gethostid()    58 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64)    62 #define READSOCKET(a,b,c)   recv((a), (char *) (b), (c), TDS_NOSIGNAL)    63 #define WRITESOCKET(a,b,c)  send((a), (const char *) (b), (c), TDS_NOSIGNAL)    64 #define CLOSESOCKET(a)      closesocket((a))    65 #define IOCTLSOCKET(a,b,c)  ioctlsocket((a), (b), (c))    67 int  tds_socket_init(
void);
    68 #define INITSOCKET()    tds_socket_init()    69 void tds_socket_done(
void);
    70 #define DONESOCKET()    tds_socket_done()    71 #define NETDB_REENTRANT 1       73 #define TDSSOCK_EINTR WSAEINTR    74 #define TDSSOCK_EINPROGRESS WSAEWOULDBLOCK    75 #define TDSSOCK_ETIMEDOUT WSAETIMEDOUT    76 #define TDSSOCK_WOULDBLOCK(e) ((e)==WSAEWOULDBLOCK)    77 #define TDSSOCK_ECONNRESET WSAECONNRESET    78 #define sock_errno WSAGetLastError()    79 #define set_sock_errno(err) WSASetLastError(err)    80 #define sock_strerror(n) tds_prwsaerror(n)    81 #define sock_strerror_free(s) tds_prwsaerror_free(s)    86 #define strcasecmp stricmp    88 #define strncasecmp strnicmp    89 #if defined(HAVE__SNPRINTF) && !defined(HAVE_SNPRINTF)    90 #define snprintf _snprintf    97 #if defined(_WIN64) && !defined(WIN64)   101 #define TDS_SDIR_SEPARATOR "\\"   104 #if defined(__MSVCRT__) || defined(_MSC_VER)   107 #define getpid()           GetCurrentProcessId()   108 #define strdup(s)          _strdup(s)   109 #define unlink(f)          _unlink(f)   110 #define putenv(s)          _putenv(s)   112 #define fileno(f)          _fileno(f)   113 #define stricmp(s1,s2)     _stricmp(s1,s2)   114 #define strnicmp(s1,s2,n)  _strnicmp(s1,s2,n)   120 #define sock_errno errno   123 #ifndef set_sock_errno   124 #define set_sock_errno(err) do { errno = (err); } while(0)   127 #ifndef sock_strerror   128 #define sock_strerror(n) strerror(n)   129 #define sock_strerror_free(s) do {} while(0)   132 #ifndef TDSSOCK_EINTR   133 #define TDSSOCK_EINTR EINTR   136 #ifndef TDSSOCK_EINPROGRESS    137 #define TDSSOCK_EINPROGRESS EINPROGRESS   140 #ifndef TDSSOCK_ETIMEDOUT   141 #define TDSSOCK_ETIMEDOUT ETIMEDOUT   144 #ifndef TDSSOCK_WOULDBLOCK   145 # if defined(EWOULDBLOCK) && EAGAIN != EWOULDBLOCK   146 #  define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN||(e)==EWOULDBLOCK)   148 #  define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN)   152 #ifndef TDSSOCK_ECONNRESET   153 #define TDSSOCK_ECONNRESET ECONNRESET   157 #define INITSOCKET()    0   161 #define DONESOCKET()    do { } while(0)   166 #  define READSOCKET(s,b,l) recv((s), (b), (l), MSG_NOSIGNAL)   168 #  define READSOCKET(s,b,l) read((s), (b), (l))   174 #  define WRITESOCKET(s,b,l)    send((s), (b), (l), MSG_NOSIGNAL)   176 #  define WRITESOCKET(s,b,l)    write((s), (b), (l))   181 #define CLOSESOCKET(s)      close((s))   185 #define IOCTLSOCKET(s,b,l)  ioctl((s), (b), (l))   189 # define SOCKLEN_T socklen_t   192 #if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32)   193 typedef int TDS_SYS_SOCKET;
   194 #define INVALID_SOCKET -1   195 #define TDS_IS_SOCKET_INVALID(s) ((s) < 0)   197 typedef SOCKET TDS_SYS_SOCKET;
   198 #define TDS_IS_SOCKET_INVALID(s) ((s) == INVALID_SOCKET)   201 #define tds_accept      accept   202 #define tds_getpeername getpeername   203 #define tds_getsockopt  getsockopt   204 #define tds_getsockname getsockname   205 #define tds_recvfrom    recvfrom   207 #if defined(__hpux__) && SIZEOF_VOID_P == 8 && SIZEOF_INT == 4   208 # if HAVE__XPG_ACCEPT   210 #  define tds_accept _xpg_accept   213 #  define tds_accept __accept   215 # if HAVE__XPG_GETPEERNAME   216 #  undef tds_getpeername   217 #  define tds_getpeername _xpg_getpeername   218 # elif HAVE___GETPEERNAME   219 #  undef tds_getpeername   220 #  define tds_getpeername __getpeername   222 # if HAVE__XPG_GETSOCKOPT   223 #  undef tds_getsockopt   224 #  define tds_getsockopt _xpg_getsockopt   225 # elif HAVE___GETSOCKOPT   226 #  undef tds_getsockopt   227 #  define tds_getsockopt __getsockopt   229 # if HAVE__XPG_GETSOCKNAME   230 #  undef tds_getsockname   231 #  define tds_getsockname _xpg_getsockname   232 # elif HAVE___GETSOCKNAME   233 #  undef tds_getsockname   234 #  define tds_getsockname __getsockname   236 # if HAVE__XPG_RECVFROM   238 #  define tds_recvfrom _xpg_recvfrom   239 # elif HAVE___RECVFROM   241 #  define tds_recvfrom __recvfrom   245 #ifndef TDS_SDIR_SEPARATOR   246 #define TDS_SDIR_SEPARATOR "/"   249 #ifdef HAVE_INTTYPES_H   250 #include <inttypes.h>   254 #define PRId64 TDS_I64_PREFIX "d"   257 #define PRIu64 TDS_I64_PREFIX "u"   260 #define PRIx64 TDS_I64_PREFIX "x"