]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/man/man2/msync.2
xnu-3248.20.55.tar.gz
[apple/xnu.git] / bsd / man / man2 / msync.2
index 831b8af345a464fcf6d88944c8b578b7d75c0315..f61a3b813b362a14fbbf7b210a152d501ad948da 100644 (file)
 .Sh LIBRARY
 .Lb libc
 .Sh SYNOPSIS
-.Fd #include <sys/types.h>
 .Fd #include <sys/mman.h>
 .Ft int
-.Fn msync "void *addr" "size_t len" "int flags"
+.Fo msync
+.Fa "void *addr"
+.Fa "size_t len"
+.Fa "int flags"
+.Fc
 .Sh DESCRIPTION
 The
 .Fn msync
-system call
-writes any modified pages back to the filesystem and updates
-the file modification time.
-If
-.Fa len
-is 0, all modified pages within the region containing
-.Fa addr
-will be flushed;
-if
-.Fa len
-is non-zero, only those pages containing 
+system call writes modified whole pages back to the filesystem
+and updates the file modification time.
+Only those pages containing 
 .Fa addr
 and
 .Fa len-1
 succeeding locations will be examined.
+.Pp
 The
 .Fa flags
 argument may be specified as follows:
@@ -71,6 +67,10 @@ MS_ASYNC     Return immediately
 MS_SYNC                Perform synchronous writes
 MS_INVALIDATE  Invalidate all cached data
 .Ed
+.Pp
+The
+.Fa MS_ASYNC
+flag is not permitted to be combined with other flags.
 .Sh RETURN VALUES
 If any errors occur, -1 is returned and errno is set to indicate the
 error.
@@ -79,24 +79,45 @@ Otherwise, a 0 value is returned.
 .Fn msync
 will fail if:
 .Bl -tag -width Er
+.\" ===========
+.It Bq Er EBUSY
+Some of the specified addresses are locked
+and MS_INVALIDATE is specified.
+.\" ===========
 .It Bq Er EINVAL
 .Fa addr
 is not a multiple of the hardware page size.
+.\" ===========
 .It Bq Er EINVAL
 .Fa len
-is too large or negative.
+is too large, or less than 1.
+.\" ===========
 .It Bq Er EINVAL
 .Fa flags
-was both MS_ASYNC and MS_INVALIDATE.
-Only one of these flags is allowed.
+is invalid
+(e.g., it combines MS_ASYNC with another flag,
+which is not permitted).
+.\" ===========
 .It Bq Er EIO
-An I/O error occurred while writing to the file system.
+An I/O error occurs while writing to the file system.
+.\" ===========
+.It Bq Er ENOMEM
+The specified address range is outside of the address range
+of the process or includes an unmapped page.
 .El
+.Sh LEGACY SYNOPSIS
+.Fd #include <sys/types.h>
+.Fd #include <sys/mman.h>
+.Pp
+The include file
+.In sys/types.h
+is necessary.
 .Sh SEE ALSO
 .Xr madvise 2 ,
 .Xr mincore 2 ,
 .Xr mprotect 2 ,
-.Xr munmap 2
+.Xr munmap 2 ,
+.Xr compat 5
 .Sh HISTORY
 The
 .Fn msync