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  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 sta-
       tus 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.

       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
       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 indi-
       cate the	error.

ERRORS
       The aio_mlock() system call will	fail if:

       [EAGAIN]		  The request was not queued  because  of  system  re-
			  source limitations.

       [EINVAL]		  The	  asynchronous	  notification	  method    in
			  iocb-_aio_sigevent.sigev_notify is  invalid  or  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),  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.2			August 19, 2016			  AIO_MLOCK(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://man.freebsd.org/cgi/man.cgi?query=aio_mlock&sektion=2&manpath=FreeBSD+14.0-RELEASE+and+Ports>

home | help