Loading...
Searching...
No Matches
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
33#define TDS_EXTERN_C extern "C"
43#define READSOCKET(a,b,c) recv((a), (b), (c), TDS_NOSIGNAL)
44#define WRITESOCKET(a,b,c) send((a), (b), (c), TDS_NOSIGNAL)
45#define CLOSESOCKET(a) closesocket((a))
46#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (char*)(c))
48#define select select_s
50#define strcasecmp stricmp
51#define strncasecmp strnicmp
53#define getpid() _gethostid()
56#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64)
57#include <freetds/windows.h>
58#define READSOCKET(a,b,c) recv((a), (char *) (b), (c), TDS_NOSIGNAL)
59#define WRITESOCKET(a,b,c) send((a), (const char *) (b), (c), TDS_NOSIGNAL)
60#define CLOSESOCKET(a) closesocket((a))
61#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (c))
63TDS_EXTERN_C
int tds_socket_init(
void);
64#define INITSOCKET() tds_socket_init()
65TDS_EXTERN_C
void tds_socket_done(
void);
66#define DONESOCKET() tds_socket_done()
67#define NETDB_REENTRANT 1
69#define TDSSOCK_EINTR WSAEINTR
70#define TDSSOCK_EINPROGRESS WSAEWOULDBLOCK
71#define TDSSOCK_ETIMEDOUT WSAETIMEDOUT
72#define TDSSOCK_WOULDBLOCK(e) ((e)==WSAEWOULDBLOCK)
73#define TDSSOCK_ECONNRESET WSAECONNRESET
74#define sock_errno WSAGetLastError()
75#define set_sock_errno(err) WSASetLastError(err)
76#define sock_strerror(n) tds_prwsaerror(n)
77#define sock_strerror_free(s) tds_prwsaerror_free(s)
82#define strcasecmp stricmp
84#define strncasecmp strnicmp
85#if defined(HAVE__SNPRINTF) && !defined(HAVE_SNPRINTF)
86#define snprintf _snprintf
93#if defined(_WIN64) && !defined(WIN64)
98#if defined(__MSVCRT__) || defined(_MSC_VER)
101#define getpid() GetCurrentProcessId()
102#define strdup(s) _strdup(s)
103#define unlink(f) _unlink(f)
104#define putenv(s) _putenv(s)
106#define fileno(f) _fileno(f)
108#define close(f) _close(f)
110#define open(fn,...) _open(fn,__VA_ARGS__)
112#define dup2(o,n) _dup2(o,n)
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)
128#define sock_strerror(n) strerror(n)
129#define sock_strerror_free(s) do {} while(0)
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)
193typedef int TDS_SYS_SOCKET;
194#define INVALID_SOCKET -1
195#define TDS_IS_SOCKET_INVALID(s) ((s) < 0)
197typedef 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
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
249#ifdef HAVE_INTTYPES_H
254#define PRId64 TDS_I64_PREFIX "d"
257#define PRIu64 TDS_I64_PREFIX "u"
260#define PRIx64 TDS_I64_PREFIX "x"
265# define UINT64_C(c) c ## U
267# elif SIZEOF_LONG >= 8
268# define UINT64_C(c) c ## UL
269# define INT64_C(c) c ## L
270# elif SIZEOF_LONG_LONG >= 8
271# define UINT64_C(c) c ## ULL
272# define INT64_C(c) c ## LL
273# elif SIZEOF___INT64 >= 8
274# define UINT64_C(c) c ## ui64
275# define INT64_C(c) c ## i64
277# error Unable to understand how to define 64 bit constants
281#include <freetds/sysdep_types.h>