/* $Cambridge: exim/exim-src/OS/os.h-SunOS4,v 1.1 2004/10/06 15:07:39 ph10 Exp $ */

/* Exim: OS-specific C header file for SunOS4 */

#define LOAD_AVG_NEEDS_ROOT
#define HAVE_DEV_KMEM
#define LOAD_AVG_TYPE   long
#define LOAD_AVG_SYMBOL "_avenrun"
#define KERNEL_PATH     "/vmunix"

#define HAVE_MMAP
#define HAVE_SYS_VFS_H

#define F_FREESP     O_TRUNC
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
typedef struct flock flock_t;

#define STRERROR_FROM_ERRLIST
#define memmove(a, b, c) bcopy(b, a, c)
#define strtoul(str, ptr, base) ((unsigned int)strtol((str),(ptr),(base)))

extern char *strerror(int);
extern int   sys_nerr;
extern char *sys_errlist[];

/* In ANSI C strtod() is defined in stdlib.h, but in SunOS4 it is defined in
floatingpoint.h which is called from math.h, which Exim doesn't include. */

extern double strtod(const char *, char **);

/* SunOS4 seems to define getc, ungetc, feof and ferror as macros only, not
as functions. We need to have them as assignable functions. Setting this
flag causes this to get done in exim.h. */

#define FUDGE_GETC_AND_FRIENDS

/* End */
