Hintsbd: fix locking
[exim.git] / src / OS / unsupported / os.h-Darwin
1 /* Exim: OS-specific C header file for Darwin (Mac OS X) */
2 /* SPDX-License-Identifier: GPL-2.0-or-later */
3
4 /* #define CRYPT_H */  /* Apparently this isn't needed */
5
6 #define HAVE_MMAP
7 #define HAVE_SYS_MOUNT_H
8 #define PAM_H_IN_PAM
9 #define SIOCGIFCONF_GIVES_ADDR
10 #define EXIM_HAVE_OPENAT
11
12
13 #define F_FREESP     O_TRUNC
14 typedef struct flock flock_t;
15
16 #define BASE_62 36  /* HFS+ aliases lower and upper cases in filenames.
17                                Consider reducing MAX_LOCALHOST_NUMBER */
18
19 #ifndef        _BSD_SOCKLEN_T_
20 # define _BSD_SOCKLEN_T_ int32_t                 /* socklen_t (duh) */
21 #endif
22
23 /* Settings for handling IP options. There's no netinet/ip_var.h. The IP
24 option handling is in the style of the later GLIBCs but the GLIBC macros
25 aren't set, so we invent a new one. */
26
27 #define NO_IP_VAR_H
28 #define DARWIN_IP_OPTIONS
29
30 /* Need this for the DNS lookup code. Remember to remove if we get round to
31 updating Exim to use the newer interface. */
32
33 #define BIND_8_COMPAT
34
35 /* It's not .so for dynamic libraries on Darwin. */
36 #define DYNLIB_FN_EXT "dylib"
37
38 /* We currently need some assistance getting OFF_T_FMT correct on MacOS */
39 #ifdef OFF_T_FMT
40 # undef OFF_T_FMT
41 #endif
42 #define OFF_T_FMT "%lld"
43 #define LONGLONG_T long int
44
45 /* default is non-const */
46 #define ICONV_ARG2_TYPE const char **
47
48 /* seems arpa/nameser.h does not define this */
49 #define NS_MAXMSG 65535
50
51 /* There may be very many supplementary groups for the user. See notes
52 in "man 2 getgroups". */
53 #define _DARWIN_UNLIMITED_GETGROUPS
54 #define EXIM_GROUPLIST_SIZE 64
55
56 /* TCP Fast Open: Darwin uses a connectx() call
57 rather than a modified sendto() */
58 #define EXIM_TFO_CONNECTX
59
60 /* MacOS, at least on the buildfarm animal, does not seem to push out
61 the SMTP response to QUIT with our usual handling which is trying to get
62 the client to FIN first so that the server does not get the TIME_WAIT */
63 #define SERVERSIDE_CLOSE_NOWAIT
64
65 /* End */