Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
AIO_MLOCK(2)		       System Calls Manual		    AIO_MLOCK(2)

NAME
     aio_mlock -- asynchronous mlock(2) operation

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <aio.h>

     int
     aio_mlock(struct aiocb *iocb);

DESCRIPTION
     The  aio_mlock() system call allows the calling process to lock into memory
     the physical pages associated with the virtual address  range  starting  at
     iocb->aio_buf for iocb->aio_nbytes bytes.	The call returns immediately af-
     ter  the  locking	request  has been enqueued; the operation may or may not
     have completed at the time the call returns.

     The iocb pointer may be subsequently used as an  argument	to  aio_return()
     and  aio_error()  in  order to determine return or error status for the en-
     queued operation while it is in progress.

     If the request could not be enqueued (generally due to aio(4) limits), then
     the call returns without having enqueued the request.

     The iocb->aio_sigevent structure can be used to request notification of the
     operation's completion as described in aio(4).

RESTRICTIONS
     The Asynchronous I/O Control Block structure pointed to  by  iocb	and  the
     buffer  that the iocb->aio_buf member of that structure references must re-
     main valid until the operation has completed.

     The asynchronous I/O control  buffer  iocb  should  be  zeroed  before  the
     aio_mlock() call to avoid passing bogus context information to the kernel.

     Modifications of the Asynchronous I/O Control Block structure or the memory
     mapping  described  by  the virtual address range are not allowed while the
     request is queued.

RETURN VALUES
     The aio_mlock() function returns the value 0 if successful;  otherwise  the
     value  -1	is returned and the global variable errno is set to indicate the
     error.

ERRORS
     The aio_mlock() system call will fail if:

     [EAGAIN]		The request was not queued because  of	system	resource
			limitations.

     [EINVAL]		The	 asynchronous	  notification	   method     in
			iocb->aio_sigevent.sigev_notify is invalid or  not  sup-
			ported.

     If  the  request is successfully enqueued, but subsequently cancelled or an
     error occurs, the value returned by the aio_return() system call is per the
     mlock(2) system call, and the value returned by the aio_error() system call
     is one of the error returns from the mlock(2) system call, or ECANCELED  if
     the request was explicitly cancelled via a call to aio_cancel().

SEE ALSO
     aio_cancel(2), aio_error(2), aio_return(2), mlock(2), sigevent(3), aio(4)

PORTABILITY
     The  aio_mlock() system call is a FreeBSD extension, and should not be used
     in portable code.

HISTORY
     The aio_mlock() system call first appeared in FreeBSD 10.0.

AUTHORS
     The system call was introduced by Gleb Smirnoff <glebius@FreeBSD.org>.

FreeBSD ports 15.quarterly	 August 19, 2016		    AIO_MLOCK(2)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=aio_mlock&sektion=2&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help