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)
57#define WIN32_LEAN_AND_MEAN
58#define UMDF_USING_NTSTATUS
73#define fstat microsoft_native_fstat
74#define stat microsoft_native_stat
80#define mkdir(a,b) mkdir(a)
83#define fsync(fd) _commit(fd)
90#undef HAVE_UNION_SEMUN
91#define HAVE_UNION_SEMUN 1
96#define IPC_PRIVATE 234564
97#define IPC_NOWAIT 2048
150#define WIFEXITED(w) (((w) & 0XFFFFFF00) == 0)
151#define WIFSIGNALED(w) (!WIFEXITED(w))
152#define WEXITSTATUS(w) (w)
153#define WTERMSIG(w) (w)
155#define sigmask(sig) ( 1 << ((sig)-1) )
202#define fseeko(stream, offset, origin) _pgfseeko64(stream, offset, origin)
203#define ftello(stream) _pgftello64(stream)
206#define fseeko(stream, offset, origin) fseeko64(stream, offset, origin)
209#define ftello(stream) ftello64(stream)
222typedef unsigned short mode_t;
242#define symlink(oldpath, newpath) pgsymlink(oldpath, newpath)
243#define readlink(path, buf, size) pgreadlink(path, buf, size)
250#ifndef PLPERL_HAVE_UID_GID
290#define fstat(fileno, sb) _pgfstat64(fileno, sb)
291#define stat(path, sb) _pgstat64(path, sb)
292#define lstat(path, sb) _pglstat64(path, sb)
296#define S_IRUSR _S_IREAD
299#define S_IWUSR _S_IWRITE
302#define S_IXUSR _S_IEXEC
305#define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
332#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
335#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
345#error "S_ISLNK is already defined"
348#error "S_IFLNK is already defined"
350#define S_IFLNK S_IFCHR
351#define S_ISLNK(m) (((m) & S_IFLNK) == S_IFLNK)
361#define O_CLOEXEC _O_NOINHERIT
362#define O_DIRECT 0x80000000
363#define O_DSYNC 0x04000000
376#define EAGAIN WSAEWOULDBLOCK
378#define EINTR WSAEINTR
380#define EMSGSIZE WSAEMSGSIZE
382#define EAFNOSUPPORT WSAEAFNOSUPPORT
384#define EWOULDBLOCK WSAEWOULDBLOCK
386#define ECONNABORTED WSAECONNABORTED
388#define ECONNRESET WSAECONNRESET
390#define EINPROGRESS WSAEINPROGRESS
392#define EISCONN WSAEISCONN
394#define ENOBUFS WSAENOBUFS
395#undef EPROTONOSUPPORT
396#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
398#define ECONNREFUSED WSAECONNREFUSED
400#define ENOTSOCK WSAENOTSOCK
402#define EOPNOTSUPP WSAEOPNOTSUPP
404#define EADDRINUSE WSAEADDRINUSE
406#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
408#define EHOSTDOWN WSAEHOSTDOWN
410#define EHOSTUNREACH WSAEHOSTUNREACH
412#define ENETDOWN WSAENETDOWN
414#define ENETRESET WSAENETRESET
416#define ENETUNREACH WSAENETUNREACH
418#define ENOTCONN WSAENOTCONN
420#define ETIMEDOUT WSAETIMEDOUT
425#define strtok_r strtok_s
436#define gmtime_r(clock, result) (gmtime_s(result, clock) ? NULL : (result))
437#define localtime_r(clock, result) (localtime_s(result, clock) ? NULL : (result))
446#define locale_t _locale_t
447#define tolower_l _tolower_l
448#define toupper_l _toupper_l
449#define towlower_l _towlower_l
450#define towupper_l _towupper_l
451#define isdigit_l _isdigit_l
452#define iswdigit_l _iswdigit_l
453#define isalpha_l _isalpha_l
454#define iswalpha_l _iswalpha_l
455#define isalnum_l _isalnum_l
456#define iswalnum_l _iswalnum_l
457#define isupper_l _isupper_l
458#define iswupper_l _iswupper_l
459#define islower_l _islower_l
460#define iswlower_l _iswlower_l
461#define isgraph_l _isgraph_l
462#define iswgraph_l _iswgraph_l
463#define isprint_l _isprint_l
464#define iswprint_l _iswprint_l
465#define ispunct_l _ispunct_l
466#define iswpunct_l _iswpunct_l
467#define isspace_l _isspace_l
468#define iswspace_l _iswspace_l
469#define strcoll_l _strcoll_l
470#define strxfrm_l _strxfrm_l
471#define wcscoll_l _wcscoll_l
479#if defined(setlocale)
489#define setlocale(a,b) pgwin32_setlocale(a,b)
498#define UNBLOCKED_SIGNAL_QUEUE() (pg_signal_queue & ~pg_signal_mask)
499#define PG_SIGNAL_COUNT 32
507#define kill(pid,sig) pgkill(pid,sig)
512#define socket(af, type, protocol) pgwin32_socket(af, type, protocol)
513#define bind(s, addr, addrlen) pgwin32_bind(s, addr, addrlen)
514#define listen(s, backlog) pgwin32_listen(s, backlog)
515#define accept(s, addr, addrlen) pgwin32_accept(s, addr, addrlen)
516#define connect(s, name, namelen) pgwin32_connect(s, name, namelen)
517#define select(n, r, w, e, timeout) pgwin32_select(n, r, w, e, timeout)
518#define recv(s, buf, len, flags) pgwin32_recv(s, buf, len, flags)
519#define send(s, buf, len, flags) pgwin32_send(s, buf, len, flags)
542extern void *
dlopen(
const char *file,
int mode);
543extern void *
dlsym(
void *handle,
const char *
symbol);
544extern int dlclose(
void *handle);
558#define putenv(x) pgwin32_putenv(x)
559#define setenv(x,y,z) pgwin32_setenv(x,y,z)
560#define unsetenv(x) pgwin32_unsetenv(x)
569#if defined(__MINGW32__) || defined(__MINGW64__)
580#define HAVE_BUGGY_STRTOF 1
static PgChecksumMode mode
static char buf[DEFAULT_XLOG_SEG_SIZE]
static int fd(const char *x, int i)
struct timeval it_interval
static void overwrite(PGconn *conn, Oid lobjId, int start, int len)
HANDLE pgwin32_create_signal_listener(pid_t pid)
void * dlopen(const char *file, int mode)
int pgwin32_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timeval *timeout)
void pg_queue_signal(int signum)
int pgwin32_send(SOCKET s, const void *buf, int len, int flags)
PGDLLIMPORT int pgwin32_noblock
int pgwin32_connect(SOCKET s, const struct sockaddr *addr, int addrlen)
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)
void * dlsym(void *handle, const char *symbol)
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)
ssize_t pgreadlink(const char *path, char *buf, size_t size)
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
void _dosmaperr(unsigned long)
DWORD pgwin32_get_file_type(HANDLE hFile)
PGDLLIMPORT HANDLE pgwin32_initial_signal_pipe
int pgwin32_bind(SOCKET s, struct sockaddr *addr, int addrlen)
PGDLLIMPORT int pg_signal_mask
int pgwin32_putenv(const char *)
int pgwin32_is_service(void)
int pgwin32_ReserveSharedMemoryRegion(HANDLE)
int pgsymlink(const char *oldpath, const char *newpath)
int _pglstat64(const char *name, struct stat *buf)
PGDLLIMPORT HANDLE pgwin32_signal_event
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 dlclose(void *handle)
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue)
int pgwin32_listen(SOCKET s, int backlog)
int gettimeofday(struct timeval *tp, void *tzp)