Go to the documentation of this file.Go to the SVN repository for this file.
21 #ifndef _tds_sysdep_private_h_
22 #define _tds_sysdep_private_h_
26 #define TDS_ADDITIONAL_SPACE 16
29 # define TDS_NOSIGNAL MSG_NOSIGNAL
31 # define TDS_NOSIGNAL 0L
47 #define READSOCKET(a,b,c) recv((a), (b), (c), TDS_NOSIGNAL)
48 #define WRITESOCKET(a,b,c) send((a), (b), (c), TDS_NOSIGNAL)
49 #define CLOSESOCKET(a) closesocket((a))
50 #define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (char*)(c))
52 #define select select_s
54 #define strcasecmp stricmp
55 #define strncasecmp strnicmp
57 #define getpid() _gethostid()
60 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64)
64 #define READSOCKET(a,b,c) recv((a), (char *) (b), (c), TDS_NOSIGNAL)
65 #define WRITESOCKET(a,b,c) send((a), (const char *) (b), (c), TDS_NOSIGNAL)
66 #define CLOSESOCKET(a) closesocket((a))
67 #define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (c))
69 int tds_socket_init(
void);
70 #define INITSOCKET() tds_socket_init()
71 void tds_socket_done(
void);
72 #define DONESOCKET() tds_socket_done()
73 #define NETDB_REENTRANT 1
75 #define TDSSOCK_EINTR WSAEINTR
76 #define TDSSOCK_EINPROGRESS WSAEWOULDBLOCK
77 #define TDSSOCK_ETIMEDOUT WSAETIMEDOUT
78 #define TDSSOCK_WOULDBLOCK(e) ((e)==WSAEWOULDBLOCK)
79 #define TDSSOCK_ECONNRESET WSAECONNRESET
80 #define sock_errno WSAGetLastError()
81 #define set_sock_errno(err) WSASetLastError(err)
82 #define sock_strerror(n) tds_prwsaerror(n)
83 #define sock_strerror_free(s) tds_prwsaerror_free(s)
88 #define strcasecmp stricmp
90 #define strncasecmp strnicmp
91 #if defined(HAVE__SNPRINTF) && !defined(HAVE_SNPRINTF)
92 #define snprintf _snprintf
99 #if defined(_WIN64) && !defined(WIN64)
103 #define TDS_SDIR_SEPARATOR "\\"
106 #if defined(__MSVCRT__) || defined(_MSC_VER)
109 #define getpid() GetCurrentProcessId()
110 #define strdup(s) _strdup(s)
111 #define unlink(f) _unlink(f)
112 #define putenv(s) _putenv(s)
114 #define fileno(f) _fileno(f)
115 #define stricmp(s1,s2) _stricmp(s1,s2)
116 #define strnicmp(s1,s2,n) _strnicmp(s1,s2,n)
122 #define sock_errno errno
125 #ifndef set_sock_errno
126 #define set_sock_errno(err) do { errno = (err); } while(0)
129 #ifndef sock_strerror
130 #define sock_strerror(n) strerror(n)
131 #define sock_strerror_free(s) do {} while(0)
134 #ifndef TDSSOCK_EINTR
135 #define TDSSOCK_EINTR EINTR
138 #ifndef TDSSOCK_EINPROGRESS
139 #define TDSSOCK_EINPROGRESS EINPROGRESS
142 #ifndef TDSSOCK_ETIMEDOUT
143 #define TDSSOCK_ETIMEDOUT ETIMEDOUT
146 #ifndef TDSSOCK_WOULDBLOCK
147 # if defined(EWOULDBLOCK) && EAGAIN != EWOULDBLOCK
148 # define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN||(e)==EWOULDBLOCK)
150 # define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN)
154 #ifndef TDSSOCK_ECONNRESET
155 #define TDSSOCK_ECONNRESET ECONNRESET
159 #define INITSOCKET() 0
163 #define DONESOCKET() do { } while(0)
168 # define READSOCKET(s,b,l) recv((s), (b), (l), MSG_NOSIGNAL)
170 # define READSOCKET(s,b,l) read((s), (b), (l))
176 # define WRITESOCKET(s,b,l) send((s), (b), (l), MSG_NOSIGNAL)
178 # define WRITESOCKET(s,b,l) write((s), (b), (l))
183 #define CLOSESOCKET(s) close((s))
187 #define IOCTLSOCKET(s,b,l) ioctl((s), (b), (l))
191 # define SOCKLEN_T socklen_t
194 #if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32)
196 #define INVALID_SOCKET -1
197 #define TDS_IS_SOCKET_INVALID(s) ((s) < 0)
200 #define TDS_IS_SOCKET_INVALID(s) ((s) == INVALID_SOCKET)
203 #define tds_accept accept
204 #define tds_getpeername getpeername
205 #define tds_getsockopt getsockopt
206 #define tds_getsockname getsockname
207 #define tds_recvfrom recvfrom
209 #if defined(__hpux__) && SIZEOF_VOID_P == 8 && SIZEOF_INT == 4
210 # if HAVE__XPG_ACCEPT
212 # define tds_accept _xpg_accept
215 # define tds_accept __accept
217 # if HAVE__XPG_GETPEERNAME
218 # undef tds_getpeername
219 # define tds_getpeername _xpg_getpeername
220 # elif HAVE___GETPEERNAME
221 # undef tds_getpeername
222 # define tds_getpeername __getpeername
224 # if HAVE__XPG_GETSOCKOPT
225 # undef tds_getsockopt
226 # define tds_getsockopt _xpg_getsockopt
227 # elif HAVE___GETSOCKOPT
228 # undef tds_getsockopt
229 # define tds_getsockopt __getsockopt
231 # if HAVE__XPG_GETSOCKNAME
232 # undef tds_getsockname
233 # define tds_getsockname _xpg_getsockname
234 # elif HAVE___GETSOCKNAME
235 # undef tds_getsockname
236 # define tds_getsockname __getsockname
238 # if HAVE__XPG_RECVFROM
240 # define tds_recvfrom _xpg_recvfrom
241 # elif HAVE___RECVFROM
243 # define tds_recvfrom __recvfrom
247 #ifndef TDS_SDIR_SEPARATOR
248 #define TDS_SDIR_SEPARATOR "/"
251 #ifdef HAVE_INTTYPES_H
256 #define PRId64 TDS_I64_PREFIX "d"
259 #define PRIu64 TDS_I64_PREFIX "u"
262 #define PRIx64 TDS_I64_PREFIX "x"