Provided by: freebsd-manpages_10.1~RC1-1_all bug

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  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 kernel.

       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_mlock() 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()  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), 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>.

Debian                                            June 3, 2013                                      AIO_MLOCK(2)