Loading...
sys/msync.c Libc-498 Libc-391.5.22
--- Libc/Libc-498/sys/msync.c
+++ Libc/Libc-391.5.22/sys/msync.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
@@ -23,17 +23,21 @@
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/mman.h>
-
-int __msync_nocancel(void *, size_t, int);
+#include <sys/syscall.h>
 
 /*
- * Stub function for legacy version
+ * Stub function to account for the differences in standard compliance
+ * while maintaining binary backward compatibility.
  */
 int
 msync(void *addr, size_t len, int flags)
 {
+#if __DARWIN_UNIX03
+	return syscall(SYS_msync, addr, len, flags);
+#else	/* !__DARWIN_UNIX03 */
 	int	page_mask;
 	size_t	offset;
+	int	rv;
 
 	/*
 	 * Page-align "addr" since the system now requires it
@@ -44,5 +48,7 @@
 	offset = ((uintptr_t) addr) & page_mask;
 	addr = (void *) (((uintptr_t) addr) & ~page_mask);
 	len += offset;
-	return __msync_nocancel(addr, len, flags);
+	rv = syscall(SYS_msync, addr, len, flags);
+	return rv;
+#endif	/* !__DARWIN_UNIX03 */
 }