2004-01-26 23:59:54 +01:00
|
|
|
/* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.16 2004/01/26 22:59:54 momjian Exp $ */
|
2003-05-15 18:35:30 +02:00
|
|
|
|
|
|
|
/* undefine and redefine after #include */
|
|
|
|
#undef mkdir
|
|
|
|
|
|
|
|
#undef ERROR
|
|
|
|
#include <windows.h>
|
|
|
|
#undef near
|
|
|
|
|
|
|
|
/* Must be here to avoid conflicting with prototype in windows.h */
|
|
|
|
#define mkdir(a,b) mkdir(a)
|
|
|
|
|
2003-04-18 03:03:42 +02:00
|
|
|
|
1997-09-07 07:04:48 +02:00
|
|
|
#define USES_WINSOCK
|
|
|
|
#define NOFILE 100
|
2002-01-22 20:02:40 +01:00
|
|
|
|
|
|
|
/* defines for dynamic linking on Win32 platform */
|
2004-01-26 23:59:54 +01:00
|
|
|
#if defined(__CYGWIN__) || defined(__MINGW32__)
|
2002-01-22 20:02:40 +01:00
|
|
|
|
|
|
|
#if __GNUC__ && ! defined (__declspec)
|
|
|
|
#error You need egcs 1.1 or newer for compiling!
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef BUILDING_DLL
|
|
|
|
#define DLLIMPORT __declspec (dllexport)
|
|
|
|
#else /* not BUILDING_DLL */
|
|
|
|
#define DLLIMPORT __declspec (dllimport)
|
|
|
|
#endif
|
|
|
|
|
2004-01-26 23:59:54 +01:00
|
|
|
#elif defined(WIN32) && defined(_MSC_VER) /* not CYGWIN or MingW */
|
2002-01-22 20:02:40 +01:00
|
|
|
|
|
|
|
#if defined(_DLL)
|
|
|
|
#define DLLIMPORT __declspec (dllexport)
|
|
|
|
#else /* not _DLL */
|
|
|
|
#define DLLIMPORT __declspec (dllimport)
|
|
|
|
#endif
|
|
|
|
|
2004-01-26 23:59:54 +01:00
|
|
|
#else /* not CYGWIN, not MSVC, not MingW */
|
2002-01-22 20:02:40 +01:00
|
|
|
|
|
|
|
#define DLLIMPORT
|
|
|
|
#endif
|
2003-04-18 03:03:42 +02:00
|
|
|
|
2003-04-24 23:23:01 +02:00
|
|
|
/*
|
|
|
|
* IPC defines
|
|
|
|
*/
|
2003-05-15 18:35:30 +02:00
|
|
|
#undef HAVE_UNION_SEMUN
|
|
|
|
#define HAVE_UNION_SEMUN 1
|
|
|
|
|
2003-04-24 23:23:01 +02:00
|
|
|
#define IPC_RMID 256
|
|
|
|
#define IPC_CREAT 512
|
|
|
|
#define IPC_EXCL 1024
|
|
|
|
#define IPC_PRIVATE 234564
|
|
|
|
#define IPC_NOWAIT 2048
|
|
|
|
#define IPC_STAT 4096
|
|
|
|
|
2003-05-15 18:35:30 +02:00
|
|
|
#define EACCESS 2048
|
|
|
|
#define EIDRM 4096
|
|
|
|
|
|
|
|
#define SETALL 8192
|
|
|
|
#define GETNCNT 16384
|
|
|
|
#define GETVAL 65536
|
|
|
|
#define SETVAL 131072
|
|
|
|
#define GETPID 262144
|
2003-04-24 23:23:01 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Shared memory
|
|
|
|
*/
|
|
|
|
struct shmid_ds
|
|
|
|
{
|
2003-08-04 02:43:34 +02:00
|
|
|
int dummy;
|
|
|
|
int shm_nattch;
|
2003-04-24 23:23:01 +02:00
|
|
|
};
|
|
|
|
|
2003-08-04 02:43:34 +02:00
|
|
|
int shmdt(const void *shmaddr);
|
|
|
|
void *shmat(int memId, void *shmaddr, int flag);
|
|
|
|
int shmctl(int shmid, int flag, struct shmid_ds * dummy);
|
|
|
|
int shmget(int memKey, int size, int flag);
|
2003-04-24 23:23:01 +02:00
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Semaphores
|
|
|
|
*/
|
|
|
|
union semun
|
|
|
|
{
|
2003-08-04 02:43:34 +02:00
|
|
|
int val;
|
2003-04-24 23:23:01 +02:00
|
|
|
struct semid_ds *buf;
|
|
|
|
unsigned short *array;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct sembuf
|
|
|
|
{
|
2003-08-04 02:43:34 +02:00
|
|
|
int sem_flg;
|
|
|
|
int sem_op;
|
|
|
|
int sem_num;
|
2003-04-24 23:23:01 +02:00
|
|
|
};
|
|
|
|
|
2003-08-04 02:43:34 +02:00
|
|
|
int semctl(int semId, int semNum, int flag, union semun);
|
|
|
|
int semget(int semKey, int semNum, int flags);
|
|
|
|
int semop(int semId, struct sembuf * sops, int flag);
|
2003-04-24 23:23:01 +02:00
|
|
|
|
2003-05-15 18:35:30 +02:00
|
|
|
#define sleep(sec) (Sleep(sec * 1000), /* no return value */ 0)
|
|
|
|
|
|
|
|
/* Some extra signals */
|
|
|
|
#define SIGHUP 1
|
2003-08-04 02:43:34 +02:00
|
|
|
#define SIGQUIT 3
|
|
|
|
#define SIGTRAP 5
|
|
|
|
#define SIGABRT 22 /* Set to match W32 value -- not UNIX
|
|
|
|
* value */
|
|
|
|
#define SIGKILL 9
|
|
|
|
#define SIGPIPE 13
|
|
|
|
#define SIGALRM 14
|
|
|
|
#define SIGSTOP 17
|
|
|
|
#define SIGCONT 19
|
|
|
|
#define SIGCHLD 20
|
|
|
|
#define SIGTTIN 21
|
|
|
|
#define SIGTTOU 22 /* Same as SIGABRT -- no problem, I hope */
|
|
|
|
#define SIGWINCH 28
|
|
|
|
#define SIGUSR1 30
|
|
|
|
#define SIGUSR2 31
|
2003-05-15 18:35:30 +02:00
|
|
|
|
|
|
|
struct timezone
|
|
|
|
{
|
2003-08-04 02:43:34 +02:00
|
|
|
int tz_minuteswest; /* Minutes west of GMT. */
|
|
|
|
int tz_dsttime; /* Nonzero if DST is ever in effect. */
|
2003-05-15 18:35:30 +02:00
|
|
|
};
|
2003-04-24 23:23:01 +02:00
|
|
|
|
|
|
|
/* FROM SRA */
|
|
|
|
|
2003-04-18 03:03:42 +02:00
|
|
|
/*
|
|
|
|
* Supplement to <sys/types.h>.
|
|
|
|
*/
|
|
|
|
#define uid_t int
|
|
|
|
#define gid_t int
|
|
|
|
#define pid_t unsigned long
|
|
|
|
#define ssize_t int
|
|
|
|
#define mode_t int
|
|
|
|
#define key_t long
|
|
|
|
#define ushort unsigned short
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Supplement to <sys/stat.h>.
|
|
|
|
*/
|
|
|
|
#define lstat slat
|
|
|
|
|
|
|
|
#define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
|
|
|
|
#define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
|
|
|
|
|
|
|
|
#define S_IRUSR _S_IREAD
|
|
|
|
#define S_IWUSR _S_IWRITE
|
|
|
|
#define S_IXUSR _S_IEXEC
|
|
|
|
#define S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Supplement to <errno.h>.
|
|
|
|
*/
|
|
|
|
#include <errno.h>
|
|
|
|
#undef EAGAIN
|
|
|
|
#undef EINTR
|
|
|
|
#define EINTR WSAEINTR
|
|
|
|
#define EAGAIN WSAEWOULDBLOCK
|
|
|
|
#define EMSGSIZE WSAEMSGSIZE
|
|
|
|
#define EAFNOSUPPORT WSAEAFNOSUPPORT
|
|
|
|
#define EWOULDBLOCK WSAEWOULDBLOCK
|
|
|
|
#define ECONNRESET WSAECONNRESET
|
|
|
|
#define EINPROGRESS WSAEINPROGRESS
|