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)    59 #include <freetds/windows.h>    60 #define READSOCKET(a,b,c)   recv((a), (char *) (b), (c), TDS_NOSIGNAL)    61 #define WRITESOCKET(a,b,c)  send((a), (const char *) (b), (c), TDS_NOSIGNAL)    62 #define CLOSESOCKET(a)      closesocket((a))    63 #define IOCTLSOCKET(a,b,c)  ioctlsocket((a), (b), (c))    65 int  tds_socket_init(
void);
    66 #define INITSOCKET()    tds_socket_init()    67 void tds_socket_done(
void);
    68 #define DONESOCKET()    tds_socket_done()    69 #define NETDB_REENTRANT 1       71 #define TDSSOCK_EINTR WSAEINTR    72 #define TDSSOCK_EINPROGRESS WSAEWOULDBLOCK    73 #define TDSSOCK_ETIMEDOUT WSAETIMEDOUT    74 #define TDSSOCK_WOULDBLOCK(e) ((e)==WSAEWOULDBLOCK)    75 #define TDSSOCK_ECONNRESET WSAECONNRESET    76 #define sock_errno WSAGetLastError()    77 #define set_sock_errno(err) WSASetLastError(err)    78 #define sock_strerror(n) tds_prwsaerror(n)    79 #define sock_strerror_free(s) tds_prwsaerror_free(s)    84 #define strcasecmp stricmp    86 #define strncasecmp strnicmp    87 #if defined(HAVE__SNPRINTF) && !defined(HAVE_SNPRINTF)    88 #define snprintf _snprintf    95 #if defined(_WIN64) && !defined(WIN64)    99 #define TDS_SDIR_SEPARATOR "\\"   102 #if defined(__MSVCRT__) || defined(_MSC_VER)   105 #define getpid()           GetCurrentProcessId()   106 #define strdup(s)          _strdup(s)   107 #define unlink(f)          _unlink(f)   108 #define putenv(s)          _putenv(s)   110 #define fileno(f)          _fileno(f)   112 #define close(f)           _close(f)   114 #define open(fn,...)       _open(fn,__VA_ARGS__)   116 #define dup2(o,n)          _dup2(o,n)   117 #define stricmp(s1,s2)     _stricmp(s1,s2)   118 #define strnicmp(s1,s2,n)  _strnicmp(s1,s2,n)   124 #define sock_errno errno   127 #ifndef set_sock_errno   128 #define set_sock_errno(err) do { errno = (err); } while(0)   131 #ifndef sock_strerror   132 #define sock_strerror(n) strerror(n)   133 #define sock_strerror_free(s) do {} while(0)   136 #ifndef TDSSOCK_EINTR   137 #define TDSSOCK_EINTR EINTR   140 #ifndef TDSSOCK_EINPROGRESS    141 #define TDSSOCK_EINPROGRESS EINPROGRESS   144 #ifndef TDSSOCK_ETIMEDOUT   145 #define TDSSOCK_ETIMEDOUT ETIMEDOUT   148 #ifndef TDSSOCK_WOULDBLOCK   149 # if defined(EWOULDBLOCK) && EAGAIN != EWOULDBLOCK   150 #  define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN||(e)==EWOULDBLOCK)   152 #  define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN)   156 #ifndef TDSSOCK_ECONNRESET   157 #define TDSSOCK_ECONNRESET ECONNRESET   161 #define INITSOCKET()    0   165 #define DONESOCKET()    do { } while(0)   170 #  define READSOCKET(s,b,l) recv((s), (b), (l), MSG_NOSIGNAL)   172 #  define READSOCKET(s,b,l) read((s), (b), (l))   178 #  define WRITESOCKET(s,b,l)    send((s), (b), (l), MSG_NOSIGNAL)   180 #  define WRITESOCKET(s,b,l)    write((s), (b), (l))   185 #define CLOSESOCKET(s)      close((s))   189 #define IOCTLSOCKET(s,b,l)  ioctl((s), (b), (l))   193 # define SOCKLEN_T socklen_t   196 #if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32)   197 typedef int TDS_SYS_SOCKET;
   198 #define INVALID_SOCKET -1   199 #define TDS_IS_SOCKET_INVALID(s) ((s) < 0)   201 typedef SOCKET TDS_SYS_SOCKET;
   202 #define TDS_IS_SOCKET_INVALID(s) ((s) == INVALID_SOCKET)   205 #define tds_accept      accept   206 #define tds_getpeername getpeername   207 #define tds_getsockopt  getsockopt   208 #define tds_getsockname getsockname   209 #define tds_recvfrom    recvfrom   211 #if defined(__hpux__) && SIZEOF_VOID_P == 8 && SIZEOF_INT == 4   212 # if HAVE__XPG_ACCEPT   214 #  define tds_accept _xpg_accept   217 #  define tds_accept __accept   219 # if HAVE__XPG_GETPEERNAME   220 #  undef tds_getpeername   221 #  define tds_getpeername _xpg_getpeername   222 # elif HAVE___GETPEERNAME   223 #  undef tds_getpeername   224 #  define tds_getpeername __getpeername   226 # if HAVE__XPG_GETSOCKOPT   227 #  undef tds_getsockopt   228 #  define tds_getsockopt _xpg_getsockopt   229 # elif HAVE___GETSOCKOPT   230 #  undef tds_getsockopt   231 #  define tds_getsockopt __getsockopt   233 # if HAVE__XPG_GETSOCKNAME   234 #  undef tds_getsockname   235 #  define tds_getsockname _xpg_getsockname   236 # elif HAVE___GETSOCKNAME   237 #  undef tds_getsockname   238 #  define tds_getsockname __getsockname   240 # if HAVE__XPG_RECVFROM   242 #  define tds_recvfrom _xpg_recvfrom   243 # elif HAVE___RECVFROM   245 #  define tds_recvfrom __recvfrom   249 #ifndef TDS_SDIR_SEPARATOR   250 #define TDS_SDIR_SEPARATOR "/"   253 #ifdef HAVE_INTTYPES_H   254 #include <inttypes.h>   258 #define PRId64 TDS_I64_PREFIX "d"   261 #define PRIu64 TDS_I64_PREFIX "u"   264 #define PRIx64 TDS_I64_PREFIX "x"