unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

MSYNC(2)                      System Calls Manual                     MSYNC(2)



NAME
       msync - synchronize memory with physical storage

SYNOPSIS
       #include <&lt;sys/mman.h>&gt;

       int msync(addr, len, flags)
       caddr_t addr;
       int len, flags;

DESCRIPTION
       msync()  writes all modified copies of pages over the range [addr, addr
       + len) to their permanent storage locations.  msync() optionally inval-
       idates  any  copies  so  that  further  references to the pages will be
       obtained by the system from their permanent storage locations.

       Values for flags are defined in <&lt;sys/mman.h>&gt; as:

              #define MS_ASYNC         0x1       /* Return immediately */
              #define MS_INVALIDATE    0x2       /* Invalidate mappings */

       and are used to control the behavior of msync().  One or more flags may
       be specified in a single call.

       MS_ASYNC returns msync() immediately once all I/O operations are sched-
       uled; normally, msync() will not return until all  I/O  operations  are
       complete.   MS_INVALIDATE  invalidates  all  cached copies of data from
       memory objects, requiring them to be re-obtained from the object's per-
       manent storage location upon the next reference.

       msync()  should be used by programs which require a memory object to be
       in a known state, for example in building transaction facilities.

RETURN VALUES
       msync() returns:

       0      on success.

       -1     on failure and sets errno to indicate the error.

ERRORS
       EINVAL         addr is not a multiple of the current page size.

                      len is negative.

                      One of the flags MS_ASYNC or MS_INVALID is invalid.

       EIO            An I/O error occurred while reading from or  writing  to
                      the file system.

       ENOMEM         Addresses  in  the  range [addr, addr + len) are outside
                      the valid range for the address space of a process.



                                21 January 1990                       MSYNC(2)