The prototypes for mmap, etc. were recently changed from using caddr_t to void *, as called for by SUSV3, but MAP_FAILED wasn't changed. SUSV3 doesn't specifically say anything about how MAP_FAILED should be defined, but other platforms I've seen have a (void *) cast.
--- include/sys/mman.h.orig 2003-09-20 13:32:09.000000000 -0700 +++ include/sys/mman.h 2003-10-09 01:30:46.735724800 -0700 @@ -31,7 +31,7 @@ #define MAP_ANONYMOUS 0x20 #define MAP_ANON MAP_ANONYMOUS -#define MAP_FAILED ((caddr_t)-1) +#define MAP_FAILED ((void *)-1) /* * Flags for msync.
