/* Exim: OS-specific C header file for Darwin (Mac OS X) */

/* #define CRYPT_H */  /* Apparently this isn't needed */

#define HAVE_MMAP
#define HAVE_SYS_MOUNT_H
#define PAM_H_IN_PAM
#define SIOCGIFCONF_GIVES_ADDR


#define F_FREESP     O_TRUNC
typedef struct flock flock_t;

#define BASE_62 36  /* HFS+ aliases lower and upper cases in filenames.
                               Consider reducing MAX_LOCALHOST_NUMBER */

#ifndef        _BSD_SOCKLEN_T_
# define _BSD_SOCKLEN_T_ int32_t                 /* socklen_t (duh) */
#endif

/* Settings for handling IP options. There's no netinet/ip_var.h. The IP
option handling is in the style of the later GLIBCs but the GLIBC macros
aren't set, so we invent a new one. */

#define NO_IP_VAR_H
#define DARWIN_IP_OPTIONS

/* Need this for the DNS lookup code. Remember to remove if we get round to
updating Exim to use the newer interface. */

#define BIND_8_COMPAT

/* It's not .so for dynamic libraries on Darwin. */
#define DYNLIB_FN_EXT "dylib"

/* We currently need some assistance getting OFF_T_FMT correct on MacOS */
#ifdef OFF_T_FMT
# undef OFF_T_FMT
#endif
#define OFF_T_FMT "%lld"
#define LONGLONG_T long int

/* default is non-const */
#define ICONV_ARG2_TYPE const char **

/* seems arpa/nameser.h does not define this */
#define NS_MAXMSG 65535

/* There may be very many supplementary groups for the user. See notes
in "man 2 getgroups". */
#define _DARWIN_UNLIMITED_GETGROUPS
#define EXIM_GROUPLIST_SIZE 64

/* TCP Fast Open: Darwin uses a connectx() call
rather than a modified sendto() */
#define EXIM_TFO_CONNECTX

/* End */
