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

FreeBSD Manual Pages

  
 
  

home | help
AIO_MLOCK(2)		  FreeBSD 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 mem-
     ory the physical pages associated with the	virtual	address	range starting
     at	iocb-_aio_buf for iocb-_aio_nbytes bytes.  The call returns immedi-
     ately after 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
     enqueued 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.

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
     remain valid until	the operation has completed.  For this reason, use of
     auto (stack) variables for	these objects is discouraged.

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

     Modifications of the Asynchronous I/O Control Block structure or the
     buffer contents after the request has been	enqueued, but before the
     request has completed, are	not allowed.

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_read() system call	will fail if:

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

     [ENOSYS]		The aio_mlock()	system call is not supported.

     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() sys-
     tem 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), 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	11.2			 June 3, 2013			  FreeBSD 11.2

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RESTRICTIONS | RETURN VALUES | ERRORS | SEE ALSO | PORTABILITY | HISTORY | AUTHORS

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

home | help