mlock man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

MLOCK(3C)							     MLOCK(3C)

       mlock, munlock - lock or unlock pages in memory

       #include <sys/mman.h>

       int mlock(caddr_t addr, size_t len);

       int munlock(caddr_t addr, size_t len);

   Standard conforming
       #include <sys/mman.h>

       int mlock(const void * addr, size_t len);

       int munlock(const void * addr, size_t len);

       The   mlock()  function	uses  the mappings established for the address
       range [addr, addr + len) to identify pages to be locked in  memory.  If
       the page identified by a mapping changes, such as occurs when a copy of
       a writable MAP_PRIVATE page is made upon the first store, the lock will
       be transferred to the newly copied private page.

       The munlock() function removes locks established with mlock().

       A  given	 page  may  be	locked	multiple times by executing an mlock()
       through different mappings. That is, if two  different  processes  lock
       the  same  page,	 then the page will remain locked until both processes
       remove their locks.  However, within a given mapping, page locks do not
       nest  −	multiple  mlock()  operations  on the same address in the same
       process will all be removed with a single munlock(). Of course, a  page
       locked  in one process and mapped in another (or visible through a dif‐
       ferent mapping in the locking process) is still locked in memory.  This
       fact can be used to create applications that do nothing other than lock
       important data in memory, thereby avoiding page I/O  faults  on	refer‐
       ences from other processes in the system.

       The  contents  of  the  locked pages will not be transferred to or from
       disk except when explicitly requested by one of the locking  processes.
       This  guarantee applies only to the mapped data, and not to any associ‐
       ated data structures (file descriptors and on-disk metadata, among oth‐

       If  the mapping through which an mlock() has been performed is removed,
       an munlock() is implicitly performed. An munlock()  is  also  performed
       implicitly when a page is deleted through file removal or truncation.

       Locks  established  with	 mlock()  are not inherited by a child process
       after a	fork() and are not nested.

       Attempts to mlock() more memory than a system-specific limit will fail.

       Upon successful	completion,  the   mlock()  and	  munlock()  functions
       return  0.   Otherwise, no changes are made to any locks in the address
       space of the process, the functions return −1 and set errno to indicate
       the error.

       The mlock() and	munlock() functions will fail if:

		 The  addr  argument  is  not  a  multiple of the page size as
		 returned by sysconf(3C).

		 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.

		 The system does not support this memory locking interface.

		 The {PRIV_PROC_LOCK_MEMORY} privilege is not asserted in  the
		 effective set of the calling process.

       The mlock() function will fail if:

		 Some or all of the memory identified by the range [addr, addr
		 + len) could not be locked  because  of  insufficient	system
		 resources or because of a limit or resource control on locked

       Because of the impact on system	resources,  the	 use  of  mlock()  and
       munlock() is restricted to users with the {PRIV_PROC_LOCK_MEMORY} priv‐

       See attributes(5) for descriptions of the following attributes:

       │Interface Stability │ Standard	      │
       │MT-Level	    │ MT-Safe	      │

       fork(2), memcntl(2),  mmap(2),  plock(3C),  mlockall(3C),  sysconf(3C),
       attributes(5), standards(5)

				 Apr 10, 2007			     MLOCK(3C)

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net