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

  man pages->HP-UX 11i man pages -> mlock (2)              
Title
Content
Arch
Section
 

Contents


 mlock(2)                                                           mlock(2)




 NAME    [Toc]    [Back]
      mlock() - lock a segment of the process virtual address space in
      memory

 SYNOPSIS    [Toc]    [Back]
      #include <sys/mman.h>

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

 DESCRIPTION    [Toc]    [Back]
      The mlock() system call allows the calling process to lock a segment
      of the process virtual address space into memory.  Any addressable
      segment of the process' address space may be locked.  Locked segments
      are immune to all routine swapping.

      addr must be a valid address in the process virtual address space.
      addr + len must also be a valid address in the process virtual address
      space.

      Locks are applied at page boundaries that encompass the range from
      addr to addr + len. If any address within the range is not valid, an
      error is returned and no locks are applied.

      munlock() or munlockall() can be used to unlock memory segments (or
      all memory segments) locked with mlock().

      Regardless of how many times a process locks a page, a single
      munlock() or munlockall() will unlock it.  An munlock() of a page
      within a range specified in an mlock() call results in only the range
      specified in the munlock() being unlocked.

      When memory is shared by multiple processes and mlocks are applied to
      the same physical page by multiple processes, a page remains locked
      until the last lock is removed from that page.

      Locks applied with mlock() are not inherited by a child process.

      The effective user ID of the calling process must be a superuser or
      the user must be a member of a group that has the MLOCK privilege (see
      getprivgrp(2) and setprivgrp(1M))

      Although plock() and the mlock() family of functions may be used
      together in an application, each may affect the other in unexpected
      ways.  This practice is not recommended.

 RETURN VALUE    [Toc]    [Back]
      mlock() returns the following values:

            0   Successful completion.
           -1   Failure.  The requested operation is not performed.  errno
                is set to indicate the error.



 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003






 mlock(2)                                                           mlock(2)




 ERRORS    [Toc]    [Back]
      If mlock() fails, errno is set to one of the following values:

           [ENOMEM]       One or more addresses in the specified range is
                          not valid within the process address space.

           [EAGAIN]       There is not enough lockable memory in the system
                          to satisfy the locking request.

           [EINVAL]       The len parameter was zero.

           [EPERM]        The effective user ID of the calling process is
                          not a superuser and the user does not belong to a
                          group that has the MLOCK privilege.

 EXAMPLES    [Toc]    [Back]
      The following call to mlock() locks the first 10 pages of the calling
      process in memory:

           mlock(sbrk(0), 40960);

 SEE ALSO    [Toc]    [Back]
      setprivgrp(1M), getprivgrp(2), mlockall(2), munlock(2), munlockall(2),
      plock(2)

 STANDARDS CONFORMANCE    [Toc]    [Back]
      mlock(): POSIX Realtime Extensions, IEEE Std 1003.1b


 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003
[ Back ]
      
      
 Similar pages
Name OS Title
mlockall HP-UX lock a process virtual address space in memory
munlock HP-UX unlock a segment of the process virtual address space
vm_map FreeBSD virtual address space portion of virtual memory subsystem
munlockall NetBSD lock (unlock) the address space of a process
munlockall OpenBSD lock (unlock) the address space of a process
munlockall FreeBSD lock (unlock) the address space of a process
mlockall NetBSD lock (unlock) the address space of a process
mlockall OpenBSD lock (unlock) the address space of a process
mlockall FreeBSD lock (unlock) the address space of a process
munlockall HP-UX unlock the entire virtual address space of a process
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service