MSYNC(2) NetBSD Programmer's Manual MSYNC(2)
NAME
msync - synchronize a mapped region
SYNOPSIS
#include <sys/mman.h> int msync(void *addr, size_t len, int flags);
DESCRIPTION
The msync() system call writes all pages with shared modifications in the specified region of the process's address space back to permanent stor- age, and, if requested, invalidates cached data mapped in the region. If len is 0, all modified pages within the region containing addr will be flushed; if len is non-zero, only modified pages containing addr and len succeeding locations will be flushed. Any required synchronization of memory caches will also take place at this time. Filesystem operations on a file that is mapped for shared modifications are unpredictable ex- cept after an msync(). The flags argument is formed by or'ing the following values MS_ASYNC Perform asynchronous writes. MS_SYNC Perform synchronous writes. MS_INVALIDATE Invalidate cached data after writing.
ERRORS
The following errors may be reported: [EBUSY] The MS_INVALIDATE flag was specified and a portion of the specified region was locked with mlock(2). [EINVAL] The specified flags argument was invalid. [EINVAL] The addr parameter was not page aligned. [EINVAL] The addr parameter did not specify an address part of a mapped region. [EINVAL] The len parameter was negative. [EIO] An I/O error occured while writing to the file system. [ENOMEM] Addresses in the specified region are outside the range al- lowed for the address space of the process, or specify one or more pages which are unmapped.
SEE ALSO
mlock(2), mmap(2), munlock(2)
BUGS
Writes are currently done synchronously even if the MS_ASYNC flag is specified.
HISTORY
The msync() function first appeared in 4.4BSD. It was modified to con- form to IEEE Std1003.1b-1993 (``POSIX'') in NetBSD 1.3. NetBSD 1.4 October 10, 1997 1
Powered by man-cgi (2024-08-26). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.