MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


SunOS/BSD Compatibility Library Functions              mctl(3UCB)



NAME
     mctl - memory management control

SYNOPSIS
     /usr/ucb/cc [ flag ... ] file ...
     #include 
     #include 

     int mctl(addr, len, function, arg)
     caddrt addr;
     sizet len;
     int function;
     int arg;


DESCRIPTION
     mctl() applies a variety of  control  functions  over  pages
     identified by the mappings established for the address range
     [addr, addr ] len). The function to be performed is  identi-
     fied  by  the argument function. Valid functions are defined
     in  mman.h as follows:

     MCLOCK        Lock the pages in the range in memory.   This
                    function  is  used  to  support  mlock(). See
                    mlock(3C) for semantics  and  usage.  arg  is
                    ignored.


     MCLOCKAS      Lock  the  pages  in  the  address  space  in
                    memory.   This  function  is  used to support
                    mlockall(). See  mlockall(3C)  for  semantics
                    and  usage.  addr and len are ignored. arg is
                    an integer built from the flags:

                    MCLCURENT    Lock current mappings


                    MCLFUTURE     Lock future mappings



     MCSYNC        Synchronize the pages in the range with their
                    backing  storage. Optionally invalidate cache
                    copies. This  function  is  used  to  support
                    msync().  See  msync(3C)  for  semantics  and
                    usage. arg is used  to  represent  the  flags
                    argument  to  msync(). It is constructed from
                    an OR of the following values:

                    MSYNC          Synchronized write





SunOS 5.11          Last change: 30 Oct 2007                    1






SunOS/BSD Compatibility Library Functions              mctl(3UCB)



                    MSASYNC         Return immediately


                    MSINVALIDATE    Invalidate mappings

                    MSASYNC returns after all I/O operations are
                    scheduled.  MSYNC does not return until all
                    I/O operations are complete. Specify  exactly
                    one  of  MSASYNC  or  MSYNC. MSINVALIDATE
                    invalidates all cached copies  of  data  from
                    memory, requiring them to be re-obtained from
                    the object's permanent storage location  upon
                    the next reference.


     MCUNLOCK      Unlock the pages in the range. This  function
                    is used to support munlock(). arg is ignored.


     MCUNLOCKAS    Remove address space memory lock,  and  locks
                    on  all  current  mappings.  This function is
                    used to support  munlockall(). addr  and  len
                    must have the value 0. arg is ignored.


RETURN VALUES
     mctl() returns 0 on success, -1 on failure.

ERORS
     mctl() fails if:

     EAGAIN    Some or all of the memory identified by the opera-
               tion  could not be locked due to insufficient sys-
               tem resources.


     EBUSY     MSINVALIDATE was specified and one or more of the
               pages is locked in memory.


     EINVAL    addr is  not  a  multiple  of  the  page  size  as
               returned by getpagesize().


     EINVAL    addr and/or len do  not  have  the  value  0  when
               MCLOCKAS or MCUNLOCKAS are specified.


     EINVAL    arg is not valid for the function specified.






SunOS 5.11          Last change: 30 Oct 2007                    2






SunOS/BSD Compatibility Library Functions              mctl(3UCB)



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


     ENOMEM    Addresses in the range  [addr,  addr  ]  len)  are
               invalid  for  the  address  space of a process, or
               specify one or more pages which are not mapped.


     EPERM     The process's effective user ID is  not  superuser
               and   one  of  MCLOCK  MCLOCKAS,  MCUNLOCK,  or
               MCUNLOCKAS was specified.


SEE ALSO
     cc(1B),  mmap(2),  memcntl(2),  getpagesize(3C),  mlock(3C),
     mlockall(3C), msync(3C)

NOTES
     Use of these interfaces should be restricted to only  appli-
     cations  written  on BSD platforms.  Use of these interfaces
     with any of the system libraries or in multi-thread applica-
     tions is unsupported.
































SunOS 5.11          Last change: 30 Oct 2007                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™