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 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
     remain 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	ker-
     nel.

     Modifications of the Asynchronous I/O Control Block structure or the mem-
     ory 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() 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), 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	13.0			August 19, 2016			  FreeBSD 13.0

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+12.1-RELEASE+and+Ports>

home | help