diff options
Diffstat (limited to 'src/OS/os.h-cygwin')
-rw-r--r-- | src/OS/os.h-cygwin | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/OS/os.h-cygwin b/src/OS/os.h-cygwin new file mode 100644 index 000000000..ebd9c848b --- /dev/null +++ b/src/OS/os.h-cygwin @@ -0,0 +1,53 @@ +/* $Cambridge: exim/src/OS/os.h-cygwin,v 1.1 2004/10/06 15:07:39 ph10 Exp $ */ + +/* Exim: OS-specific C header file for Cygwin */ + +/* This code was supplied by Pierre A. Humblet <Pierre.Humblet@ieee.org> */ + +/* Define the OS_INIT macro that we insert in exim.c:main() + to set the root and exim uid depending on the system */ +/* We use a special routine to initialize */ +void cygwin_init(int, char **, void *, void *, void *, void *); +#define OS_INIT\ + cygwin_init(argc, (char **) argv, &root_uid, &exim_uid, &exim_gid, &config_uid); + +/* We need a special mkdir that + allows names starting with // */ +#include <sys/stat.h> /* Do not redefine mkdir in sys/stat.h */ +int cygwin_mkdir( const char *_path, mode_t __mode ); +#define mkdir cygwin_mkdir /* redefine mkdir elsewhere */ + +/* Redefine the set*id calls to run when faking root */ +#include <unistd.h> /* Do not redefine in unitsd.h */ +int cygwin_setuid(uid_t uid ); +int cygwin_setgid(gid_t gid ); +#define setuid cygwin_setuid +#define setgid cygwin_setgid + +extern unsigned int cygwin_WinVersion; + +#define BASE_62 36 /* Windows aliases lower and upper cases in filenames. + Consider reducing MAX_LOCALHOST_NUMBER */ +#define CRYPT_H +#define HAVE_MMAP +#define HAVE_SYS_VFS_H +#define NO_IP_VAR_H +#define NO_IP_OPTIONS +#define F_FREESP O_TRUNC +/* Defining LOAD_AVG_NEEDS_ROOT causes an initial + call to os_getloadavg. In our case this is beneficial + because it initializes the counts */ +#define LOAD_AVG_NEEDS_ROOT + +typedef struct flock flock_t; + +/* Macro to define variable length SID structures */ +#define SID(n, name, sid...) \ +struct { \ + BYTE Revision; \ + BYTE SubAuthorityCount; \ + SID_IDENTIFIER_AUTHORITY IdentifierAuthority; \ + DWORD SubAuthority[n]; \ +} name = { SID_REVISION, n, {SECURITY_NT_AUTHORITY}, {sid}} + +/* End */ |