unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Page:
Section:
Apropos / Subsearch:
optional field



 munlock(2)							  munlock(2)




 NAME
      munlock() - unlock a segment of the process virtual address space

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

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

 DESCRIPTION
      The munlock() system call allows the calling process to unlock a
      segment of the process virtual address space that may have been
      previously locked with mlock() or mlockall().  Upon successful
      completion of the munlock(), pages within the specified segment are
      subject to routine paging and/or 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.

      Pages are unlocked at page boundaries that encompass the range from
      addr to addr + len. If any address within the range is not a valid
      part of the process virtual address space, an error is returned and no
      unlocks are performed.  However, no error is reported for valid pages
      within the range that are not already locked, since their state at the
      completion of the munlock() call is as desired.

      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.

      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
      munlock() 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 Release 11i: November 2000






 munlock(2)							  munlock(2)




 ERRORS
      If munlock() 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.

	   [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
      The following call to munlock() unlocks the first 10 pages of the
      calling process address space:

	   munlock(sbrk(0), 40960);

 SEE ALSO
      setprivgrp(1M), getprivgrp(2), mlock(2), mlockall(2), munlockall(2),
      plock(2).

 STANDARDS CONFORMANCE
      munlock(): POSIX Realtime Extensions, IEEE Std 1003.1b






























 Hewlett-Packard Company	    - 2 -   HP-UX Release 11i: November 2000