16#ifndef PG_WIN32_PORT_H
17#define PG_WIN32_PORT_H
35#define _WINSOCK_DEPRECATED_NO_WARNINGS
42#if !defined(__MINGW64_VERSION_MAJOR) || defined(_MSC_VER)
56#define fstat microsoft_native_fstat
57#define stat microsoft_native_stat
63#define mkdir(a,b) mkdir(a)
65#define ftruncate(a,b) chsize(a,b)
68#define fsync(fd) _commit(fd)
75#define HAVE_FSYNC_WRITETHROUGH
76#define FSYNC_WRITETHROUGH_IS_FSYNC
83#undef HAVE_UNION_SEMUN
84#define HAVE_UNION_SEMUN 1
89#define IPC_PRIVATE 234564
90#define IPC_NOWAIT 2048
143#define WIFEXITED(w) (((w) & 0XFFFFFF00) == 0)
144#define WIFSIGNALED(w) (!WIFEXITED(w))
145#define WEXITSTATUS(w) (w)
146#define WTERMSIG(w) (w)
148#define sigmask(sig) ( 1 << ((sig)-1) )
154#define SIG_DFL ((pqsigfunc)0)
155#define SIG_ERR ((pqsigfunc)-1)
156#define SIG_IGN ((pqsigfunc)1)
178#ifndef HAVE_GETTIMEOFDAY
200#define pgoff_t __int64
203#define fseeko(stream, offset, origin) _fseeki64(stream, offset, origin)
204#define ftello(stream) _ftelli64(stream)
207#define fseeko(stream, offset, origin) fseeko64(stream, offset, origin)
210#define ftello(stream) ftello64(stream)
223extern int pgsymlink(
const char *oldpath,
const char *newpath);
224extern int pgreadlink(
const char *path,
char *buf,
size_t size);
227#define symlink(oldpath, newpath) pgsymlink(oldpath, newpath)
228#define readlink(path, buf, size) pgreadlink(path, buf, size)
235#ifndef PLPERL_HAVE_UID_GID
274#define fstat(fileno, sb) _pgfstat64(fileno, sb)
275#define stat(path, sb) _pgstat64(path, sb)
276#define lstat(path, sb) _pgstat64(path, sb)
280#define S_IRUSR _S_IREAD
283#define S_IWUSR _S_IWRITE
286#define S_IXUSR _S_IEXEC
289#define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
316#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
319#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
328#define O_DSYNC 0x0080
341#define EAGAIN WSAEWOULDBLOCK
343#define EINTR WSAEINTR
345#define EMSGSIZE WSAEMSGSIZE
347#define EAFNOSUPPORT WSAEAFNOSUPPORT
349#define EWOULDBLOCK WSAEWOULDBLOCK
351#define ECONNABORTED WSAECONNABORTED
353#define ECONNRESET WSAECONNRESET
355#define EINPROGRESS WSAEINPROGRESS
357#define EISCONN WSAEISCONN
359#define ENOBUFS WSAENOBUFS
360#undef EPROTONOSUPPORT
361#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
363#define ECONNREFUSED WSAECONNREFUSED
365#define ENOTSOCK WSAENOTSOCK
367#define EOPNOTSUPP WSAEOPNOTSUPP
369#define EADDRINUSE WSAEADDRINUSE
371#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
373#define EHOSTDOWN WSAEHOSTDOWN
375#define EHOSTUNREACH WSAEHOSTUNREACH
377#define ENETDOWN WSAENETDOWN
379#define ENETRESET WSAENETRESET
381#define ENETUNREACH WSAENETUNREACH
383#define ENOTCONN WSAENOTCONN
391#define locale_t _locale_t
392#define tolower_l _tolower_l
393#define toupper_l _toupper_l
394#define towlower_l _towlower_l
395#define towupper_l _towupper_l
396#define isdigit_l _isdigit_l
397#define iswdigit_l _iswdigit_l
398#define isalpha_l _isalpha_l
399#define iswalpha_l _iswalpha_l
400#define isalnum_l _isalnum_l
401#define iswalnum_l _iswalnum_l
402#define isupper_l _isupper_l
403#define iswupper_l _iswupper_l
404#define islower_l _islower_l
405#define iswlower_l _iswlower_l
406#define isgraph_l _isgraph_l
407#define iswgraph_l _iswgraph_l
408#define isprint_l _isprint_l
409#define iswprint_l _iswprint_l
410#define ispunct_l _ispunct_l
411#define iswpunct_l _iswpunct_l
412#define isspace_l _isspace_l
413#define iswspace_l _iswspace_l
414#define strcoll_l _strcoll_l
415#define strxfrm_l _strxfrm_l
416#define wcscoll_l _wcscoll_l
417#define wcstombs_l _wcstombs_l
418#define mbstowcs_l _mbstowcs_l
426#if defined(setlocale)
436#define setlocale(a,b) pgwin32_setlocale(a,b)
445#define UNBLOCKED_SIGNAL_QUEUE() (pg_signal_queue & ~pg_signal_mask)
446#define PG_SIGNAL_COUNT 32
454#define kill(pid,sig) pgkill(pid,sig)
459#define socket(af, type, protocol) pgwin32_socket(af, type, protocol)
460#define bind(s, addr, addrlen) pgwin32_bind(s, addr, addrlen)
461#define listen(s, backlog) pgwin32_listen(s, backlog)
462#define accept(s, addr, addrlen) pgwin32_accept(s, addr, addrlen)
463#define connect(s, name, namelen) pgwin32_connect(s, name, namelen)
464#define select(n, r, w, e, timeout) pgwin32_select(n, r, w, e, timeout)
465#define recv(s, buf, len, flags) pgwin32_recv(s, buf, len, flags)
466#define send(s, buf, len, flags) pgwin32_send(s, buf, len, flags)
473int pgwin32_select(
int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
const struct timeval *timeout);
496#define putenv(x) pgwin32_putenv(x)
497#define setenv(x,y,z) pgwin32_setenv(x,y,z)
498#define unsetenv(x) pgwin32_unsetenv(x)
513typedef __int64 ssize_t;
516typedef unsigned short mode_t;
523#define DLSUFFIX ".dll"
527#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || \
528 defined(__MINGW32__) || defined(__MINGW64__)
543#define HAVE_BUGGY_STRTOF 1
#define PGDLLIMPORT
Definition: c.h:1332
struct timeval it_value
Definition: win32_port.h:191
struct timeval it_interval
Definition: win32_port.h:190
Definition: win32_port.h:189
__time64_t st_mtime
Definition: win32_port.h:267
__int64 st_size
Definition: win32_port.h:265
short st_gid
Definition: win32_port.h:263
unsigned short st_mode
Definition: win32_port.h:260
_dev_t st_dev
Definition: win32_port.h:258
short st_uid
Definition: win32_port.h:262
_ino_t st_ino
Definition: win32_port.h:259
_dev_t st_rdev
Definition: win32_port.h:264
__time64_t st_atime
Definition: win32_port.h:266
__time64_t st_ctime
Definition: win32_port.h:268
short st_nlink
Definition: win32_port.h:261
Definition: win32_port.h:257
int tz_minuteswest
Definition: win32_port.h:181
int tz_dsttime
Definition: win32_port.h:182
Definition: win32_port.h:180
HANDLE pgwin32_create_signal_listener(pid_t pid)
int pgwin32_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timeval *timeout)
void pg_queue_signal(int signum)
HANDLE pgwin32_initial_signal_pipe
int pgwin32_send(SOCKET s, const void *buf, int len, int flags)
int pgwin32_waitforsinglesocket(SOCKET s, int what, int timeout)
SOCKET pgwin32_socket(int af, int type, int protocol)
int _pgfstat64(int fileno, struct stat *buf)
int pgwin32_connect(SOCKET s, const struct sockaddr *name, int namelen)
int pgwin32_recv(SOCKET s, char *buf, int len, int flags)
void pgwin32_dispatch_queued_signals(void)
void pgwin32_install_crashdump_handler(void)
BOOL AddUserToTokenDacl(HANDLE hToken)
int _pgstat64(const char *name, struct stat *buf)
int pgwin32_unsetenv(const char *name)
SOCKET pgwin32_accept(SOCKET s, struct sockaddr *addr, int *addrlen)
PGDLLIMPORT volatile int pg_signal_queue
int gid_t
Definition: win32_port.h:237
void _dosmaperr(unsigned long)
int pgreadlink(const char *path, char *buf, size_t size)
HANDLE pgwin32_signal_event
int pgwin32_bind(SOCKET s, struct sockaddr *addr, int addrlen)
long key_t
Definition: win32_port.h:239
PGDLLIMPORT int pg_signal_mask
int pgwin32_putenv(const char *)
int pgwin32_is_service(void)
bool pgwin32_is_junction(const char *path)
int pgwin32_ReserveSharedMemoryRegion(HANDLE)
int pgsymlink(const char *oldpath, const char *newpath)
void pgwin32_signal_initialize(void)
int pgwin32_is_admin(void)
int pgwin32_setenv(const char *name, const char *value, int overwrite)
int pgkill(int pid, int sig)
char * pgwin32_setlocale(int category, const char *locale)
int uid_t
Definition: win32_port.h:236
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue)
int pgwin32_listen(SOCKET s, int backlog)