msync(3C) DG/UX R4.11MU05 msync(3C)
NAME
msync - synchronize memory with physical storage
SYNOPSIS
#include <sys/types.h>
#include <sys/mman.h>
int msync(void * addr, size_t len, int flags);
DESCRIPTION
The function msync writes all modified copies of pages over the range
[addr, addr + len) to their backing storage locations. msync
optionally invalidates any copies so that further references to the
pages will be obtained by the system from their backing storage
locations. The backing storage for a modified MAP_SHARED mapping is
the file the page is mapped to; the backing storage for a modified
MAP_PRIVATE mapping is its swap area.
flags is a bit pattern built from the following values:
MS_ASYNC perform asynchronous writes
MS_SYNC perform synchronous writes
MS_INVALIDATE invalidate mappings
If MS_ASYNC is set, msync returns immediately once all write
operations are scheduled; if MS_SYNC is set, msync does not return
until all write operations are completed.
MS_INVALIDATE invalidates all cached copies of data in memory, so
that further references to the pages will be obtained by the system
from their backing storage locations.
The effect of msync(addr, len, flags) is equivalent to:
memcntl(addr, len, MC_SYNC, flags, 0, 0)
Considerations for Threads Programming
+---------+-----------------------------+
| | async- |
|function | reentrant cancel cancel |
| | point safe |
+---------+-----------------------------+
|msync | Y Y N |
+---------+-----------------------------+
SEE ALSO
memcntl(2), mmap(2), sysconf(2), reentrant(3).
RETURN VALUE
Upon successful completion, the function msync returns 0; otherwise,
it returns -1 and sets errno to indicate the error.
DIAGNOSTICS
Under the following conditions, the msync fails and sets errno to:
EINVAL if the addr parameter is not a page aligned address.
ENOMEM if the len parameter is 0.
ENOMEM if an address in the target region is not mapped in
the caller's address space.
EBUSY if the MS_INVALIDATE flag is set and one or more pages
in the target region is locked.
EIO if an I/O error occurred in writing a page.
NOTES
msync should be used by programs that require a memory object to be
in a known state, for example, in building transaction facilities.
Licensed material--property of copyright holder(s)