38#define MY_ATTRIBUTE(A) __attribute__(A)
40#define MY_ATTRIBUTE(A)
54#include <sys/locking.h>
59#define bzero(p, n) memset(p, 0, n)
66#define xcom_close(fd) _close(fd)
67#define xcom_fclose(f) fclose(f)
68#define xcom_chdir(s) _chdir(s)
69#define xcom_dup(s) _dup(s)
70#define xcom_dup2(s, t) _dup2(s, t)
71#define xcom_lseek(fd, of, h) _lseek(fd, of, h)
72#define xcom_open(n, f, m) _open(n, f, m)
73#define xcom_fopen(n, m) fopen(n, m)
74#define xcom_fstat(f, b) _fstat(f, b)
76#define XCOM_F_TLOCK _LK_NBLCK
77#define xcom_lockf(fd, f, sz) _locking(fd, f, sz)
79#define xcom_lrand48() rand()
80#define xcom_srand48(x) srand(x)
81#define xcom_drand48() ((double)rand() / RAND_MAX)
83#define xcom_write(fd, buf, l) _write(fd, buf, (unsigned int)l)
84#define xcom_read(fd, buf, c) _read(fd, buf, (unsigned int)c)
86#define xcom_mktemp(s) _mktemp(s)
90#define xcom_strdup(x) _strdup(x)
92#define xcom_strtok(b, d, c) strtok_s(b, d, c)
94#define xcom_strcasecmp(a, b) _stricmp(a, b)
96#define xcom_execv _execv
108typedef SSIZE_T ssize_t;
112#define UINT64_MAX _UI64_MAX
115#define INT64_MAX _I64_MAX
118#define INT64_MIN _I64_MIN
121#define UINT32_MAX _UI32_MAX
124#define INT32_MAX _I32_MAX
127#define INT32_MIN _I32_MIN
130#define UINT16_MAX _UI16_MAX
133#define INT16_MAX _I16_MAX
136#define INT16_MIN _I16_MIN
152#define XCOM_O_CREAT _O_CREAT
153#define XCOM_O_WRONLY _O_WRONLY
154#define XCOM_O_APPEND _O_APPEND
155#define XCOM_O_LARGEFILE 0
156#define XCOM_O_EXCL _O_EXCL
157#define XCOM_O_RDWR _O_RDWR
158#define XCOM_O_RDONLY _O_RDONLY
159#define XCOM_O_RSYNC 0
160#define XCOM_O_BINARY _O_BINARY
163#define XCOM_S_IRUSR _S_IREAD
164#define XCOM_S_IWUSR _S_IWRITE
165#define XCOM_S_IXUSR 0
166#define XCOM_S_IWRXU XCOM_S_IRUSR | XCOM_S_IWUSR | XCOM_S_IXUSR
167#define XCOM_S_IRGRP 0
168#define XCOM_S_IWGRP 0
169#define XCOM_S_IROTH 0
170#define XCOM_S_IWOTH 0
172#define XCOM_FILE_WRITE_MODE "w"
182#define WEXITSTATUS(s) (s)
183#define WIFEXITED(s) ((s) == -1 ? 1 : ((s)&0x40000000) == 0)
184#define WIFSIGNALED(s) ((s) == -1 ? 0 : ((s)&0x40000000) != 0)
185#define WTERMSIG(s) ((s) == -1 ? 0 : ((s)&0x3FFFFFFF))
186#define WCOREDUMP(s) (((s) == CORE_EXIT_VALUE_WIN32) ? TRUE : FALSE)
189typedef SSIZE_T ssize_t;
191#define XCOM_CLRSYSERR (errno = 0, WSASetLastError(0))
192#define XCOM_ISSYSERR (errno != 0 || WSAGetLastError() != 0)
193#define XCOM_SYSERRNUM (WSAGetLastError() ? WSAGetLastError() : (errno))
194#define XCOM_SYSERRSTR \
195 (WSAGetLastError() ? g_strerror(WSAGetLastError()) : g_strerror(errno))
196#define xcom_gmtime_r(time, res) gmtime_s(res, time)
197#define xcom_localtime_r(time, res) localtime_s(res, time)
215#define xcom_close(fd) close(fd)
216#define xcom_fclose(f) fclose(f)
217#define xcom_chdir(s) chdir(s)
218#define xcom_dup(s) dup(s)
219#define xcom_dup2(s, t) dup2(s, t)
220#define xcom_lseek(fd, of, h) lseek(fd, of, h)
221#define xcom_open(n, f, m) open(n, f, m)
222#define xcom_fopen(n, m) fopen(n, m)
223#define xcom_fstat(f, b) fstat(f, b)
225#define XCOM_F_TLOCK F_TLOCK
226#define xcom_lockf(fd, f, sz) lockf(fd, f, sz)
228#define xcom_lrand48() lrand48()
229#define xcom_srand48(x) srand48(x)
230#define xcom_drand48() drand48()
232#define xcom_write(fd, buf, l) write(fd, buf, l)
233#define xcom_read(fd, buf, c) read(fd, buf, c)
234#define xcom_execv execv
236#define xcom_mktemp(s) mktemp(s)
240#define xcom_strdup(x) strdup(x)
242#define xcom_strtok(b, d, c) strtok_s(b, d, c)
244#define xcom_strtok(b, d, c) strtok_r(b, d, c)
247#define xcom_strcasecmp(a, b) strcasecmp(a, b)
257#define XCOM_O_CREAT O_CREAT
258#define XCOM_O_WRONLY O_WRONLY
259#define XCOM_O_APPEND O_APPEND
260#define XCOM_O_LARGEFILE O_LARGEFILE
261#define XCOM_O_EXCL O_EXCL
262#define XCOM_O_RDWR O_RDWR
263#define XCOM_O_RDONLY O_RDONLY
266#define XCOM_O_RSYNC O_DSYNC
268#define XCOM_O_RSYNC O_RSYNC
270#define XCOM_O_BINARY 0
272#define XCOM_S_IRUSR S_IRUSR
273#define XCOM_S_IWUSR S_IWUSR
274#define XCOM_S_IXUSR S_IXUSR
275#define XCOM_S_IWRXU XCOM_S_IRUSR | XCOM_S_IWUSR | XCOM_S_IXUSR
276#define XCOM_S_IRGRP S_IRGRP
277#define XCOM_S_IWGRP S_IWGRP
278#define XCOM_S_IROTH S_IROTH
279#define XCOM_S_IWOTH S_IWOTH
281#define XCOM_FILE_WRITE_MODE "wF"
283#define SOCKET_ERROR -1
285#define XCOM_CLRSYSERR errno = 0
286#define XCOM_ISSYSERR (errno != 0)
287#define XCOM_SYSERRNUM ((errno) + 0)
288#define XCOM_SYSERRSTR g_strerror(errno)
290#define xcom_gmtime_r(time, res) gmtime_r(time, res)
291#define xcom_localtime_r(time, res) localtime_r(time, res)
293#define thread_yield sched_yield
298#define NEWLINE "\r\n"