Expand the documentation about the new submission mode behaviour.
[exim.git] / src / OS / os.h-cygwin
CommitLineData
61ec970d
PH
1/* $Cambridge: exim/src/OS/os.h-cygwin,v 1.1 2004/10/06 15:07:39 ph10 Exp $ */
2
3/* Exim: OS-specific C header file for Cygwin */
4
5/* This code was supplied by Pierre A. Humblet <Pierre.Humblet@ieee.org> */
6
7/* Define the OS_INIT macro that we insert in exim.c:main()
8 to set the root and exim uid depending on the system */
9/* We use a special routine to initialize */
10void cygwin_init(int, char **, void *, void *, void *, void *);
11#define OS_INIT\
12 cygwin_init(argc, (char **) argv, &root_uid, &exim_uid, &exim_gid, &config_uid);
13
14/* We need a special mkdir that
15 allows names starting with // */
16#include <sys/stat.h> /* Do not redefine mkdir in sys/stat.h */
17int cygwin_mkdir( const char *_path, mode_t __mode );
18#define mkdir cygwin_mkdir /* redefine mkdir elsewhere */
19
20/* Redefine the set*id calls to run when faking root */
21#include <unistd.h> /* Do not redefine in unitsd.h */
22int cygwin_setuid(uid_t uid );
23int cygwin_setgid(gid_t gid );
24#define setuid cygwin_setuid
25#define setgid cygwin_setgid
26
27extern unsigned int cygwin_WinVersion;
28
29#define BASE_62 36 /* Windows aliases lower and upper cases in filenames.
30 Consider reducing MAX_LOCALHOST_NUMBER */
31#define CRYPT_H
32#define HAVE_MMAP
33#define HAVE_SYS_VFS_H
34#define NO_IP_VAR_H
35#define NO_IP_OPTIONS
36#define F_FREESP O_TRUNC
37/* Defining LOAD_AVG_NEEDS_ROOT causes an initial
38 call to os_getloadavg. In our case this is beneficial
39 because it initializes the counts */
40#define LOAD_AVG_NEEDS_ROOT
41
42typedef struct flock flock_t;
43
44/* Macro to define variable length SID structures */
45#define SID(n, name, sid...) \
46struct { \
47 BYTE Revision; \
48 BYTE SubAuthorityCount; \
49 SID_IDENTIFIER_AUTHORITY IdentifierAuthority; \
50 DWORD SubAuthority[n]; \
51} name = { SID_REVISION, n, {SECURITY_NT_AUTHORITY}, {sid}}
52
53/* End */