*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> mlockall (2)              
Title
Content
Arch
Section
 

MLOCKALL(2)

Contents


NAME    [Toc]    [Back]

     mlockall, munlockall - lock (unlock) the address space of  a
process

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>
     #include <sys/mman.h>

     int
     mlockall(int flags);

     int
     munlockall(void);

DESCRIPTION    [Toc]    [Back]

     The  mlockall  system  call  locks  into memory the physical
pages associated
     with the address space of a process until the address  space
is unlocked,
     the process exits, or execs another program image.

     The following flags affect the behavior of mlockall:

     MCL_CURRENT   Lock  all pages currently mapped into the process's address
                  space.

     MCL_FUTURE   Lock all pages mapped into  the  process's  address space in
                  the  future,  at the time the mapping is established.  Note
                  that this may cause future mappings to fail  if
those mappings
 cause resource limits to be exceeded.

     Since physical memory is a potentially scarce resource, processes are
     limited in how much they can lock down.   A  single  process
can lock the
     minimum  of a system-wide ``wired pages'' limit and the perprocess
     RLIMIT_MEMLOCK resource limit.

     The munlockall call unlocks any locked memory regions in the
process address
  space.   Any  regions mapped after an munlockall call
will not be
     locked.

RETURN VALUES    [Toc]    [Back]

     A return value of 0 indicates that the  call  succeeded  and
all pages in
     the  range  have  either  been locked or unlocked.  A return
value of -1 indicates
 an error occurred and the locked status of all pages
in the range
     remains  unchanged.  In this case, the global location errno
is set to indicate
 the error.

ERRORS    [Toc]    [Back]

     mlockall() will fail if:

     [EINVAL]      The flags argument is zero or  includes  unimplemented flags.

     [ENOMEM]       Locking  the indicated range would exceed either the system
                   or per-process limit for locked memory.

     [EAGAIN]      Some or all of the memory mapped into the process's address
                   space  could  not  be locked when the call was
made.

     [EPERM]       The calling process does not have  the  appropriate privileges
 to perform the requested operation.

SEE ALSO    [Toc]    [Back]

      
      
     mincore(2), mlock(2), mmap(2), munmap(2), setrlimit(2)

STANDARDS    [Toc]    [Back]

     The  mlockall()  and  munlockall() functions conform to IEEE
Std
     1003.1b-1993 (``POSIX'').

HISTORY    [Toc]    [Back]

     The mlockall() and munlockall() functions first appeared  in
OpenBSD 2.9.

BUGS    [Toc]    [Back]

     The  per-process  resource limit is a limit on the amount of
virtual memory
     locked, while the system-wide limit is  for  the  number  of
locked physical
     pages.  Hence a process with two distinct locked mappings of
the same
     physical page counts as 2 pages against the per-process limit and only as
     a single page in the system limit.

OpenBSD      3.6                           June      12,     1999
[ Back ]
 Similar pages
Name OS Title
mlockall IRIX lock or unlock address space
munlock HP-UX unlock a segment of the process virtual address space
munlockall HP-UX unlock the entire virtual address space of a process
mlockall HP-UX lock a process virtual address space in memory
mlock HP-UX lock a segment of the process virtual address space in memory
vslock FreeBSD lock/unlock user space addresses in memory
vsunlock FreeBSD lock/unlock user space addresses in memory
plock IRIX lock into memory or unlock process, text, or data
ldr_xattach Tru64 Attache to another process to permit loading/unloading of modules in that process' address space
copyoutstr Tru64 General: Copies a null-terminated string from a kernel address space to a user address space
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service