|
Packit |
7cfc04 |
'\" et
|
|
Packit |
7cfc04 |
.TH MLOCKALL "3P" 2013 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
|
Packit |
7cfc04 |
.SH PROLOG
|
|
Packit |
7cfc04 |
This manual page is part of the POSIX Programmer's Manual.
|
|
Packit |
7cfc04 |
The Linux implementation of this interface may differ (consult
|
|
Packit |
7cfc04 |
the corresponding Linux manual page for details of Linux behavior),
|
|
Packit |
7cfc04 |
or the interface may not be implemented on Linux.
|
|
Packit |
7cfc04 |
|
|
Packit |
7cfc04 |
.SH NAME
|
|
Packit |
7cfc04 |
mlockall,
|
|
Packit |
7cfc04 |
munlockall
|
|
Packit |
7cfc04 |
\(em lock/unlock the address space of a process
|
|
Packit |
7cfc04 |
(\fBREALTIME\fP)
|
|
Packit |
7cfc04 |
.SH SYNOPSIS
|
|
Packit |
7cfc04 |
.LP
|
|
Packit |
7cfc04 |
.nf
|
|
Packit |
7cfc04 |
#include <sys/mman.h>
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
int mlockall(int \fIflags\fP);
|
|
Packit |
7cfc04 |
int munlockall(void);
|
|
Packit |
7cfc04 |
.fi
|
|
Packit |
7cfc04 |
.SH DESCRIPTION
|
|
Packit |
7cfc04 |
The
|
|
Packit |
7cfc04 |
\fImlockall\fR()
|
|
Packit |
7cfc04 |
function shall cause all of the pages mapped by the address space of a
|
|
Packit |
7cfc04 |
process to be memory-resident until unlocked or until the process exits
|
|
Packit |
7cfc04 |
or
|
|
Packit |
7cfc04 |
.IR exec s
|
|
Packit |
7cfc04 |
another process image. The
|
|
Packit |
7cfc04 |
.IR flags
|
|
Packit |
7cfc04 |
argument determines whether the pages to be locked are those currently
|
|
Packit |
7cfc04 |
mapped by the address space of the process, those that are mapped
|
|
Packit |
7cfc04 |
in the future, or both. The
|
|
Packit |
7cfc04 |
.IR flags
|
|
Packit |
7cfc04 |
argument is constructed from the bitwise-inclusive OR of one or more
|
|
Packit |
7cfc04 |
of the following symbolic constants, defined in
|
|
Packit |
7cfc04 |
.IR <sys/mman.h> :
|
|
Packit |
7cfc04 |
.IP MCL_CURRENT 12
|
|
Packit |
7cfc04 |
Lock all of the pages currently mapped into the address space of the
|
|
Packit |
7cfc04 |
process.
|
|
Packit |
7cfc04 |
.IP MCL_FUTURE 12
|
|
Packit |
7cfc04 |
Lock all of the pages that become mapped into the address space of the
|
|
Packit |
7cfc04 |
process in the future, when those mappings are established.
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
If MCL_FUTURE is specified, and the automatic locking of future
|
|
Packit |
7cfc04 |
mappings eventually causes the amount of locked memory to exceed the
|
|
Packit |
7cfc04 |
amount of available physical memory or any other
|
|
Packit |
7cfc04 |
implementation-defined limit, the behavior is
|
|
Packit |
7cfc04 |
implementation-defined. The manner in which the implementation
|
|
Packit |
7cfc04 |
informs the application of these situations is also
|
|
Packit |
7cfc04 |
implementation-defined.
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
The
|
|
Packit |
7cfc04 |
\fImunlockall\fR()
|
|
Packit |
7cfc04 |
function shall unlock all currently mapped pages of the address space
|
|
Packit |
7cfc04 |
of the process. Any pages that become mapped into the address space of
|
|
Packit |
7cfc04 |
the process after a call to
|
|
Packit |
7cfc04 |
\fImunlockall\fR()
|
|
Packit |
7cfc04 |
shall not be locked, unless there is an intervening call to
|
|
Packit |
7cfc04 |
\fImlockall\fR()
|
|
Packit |
7cfc04 |
specifying MCL_FUTURE or a subsequent call to
|
|
Packit |
7cfc04 |
\fImlockall\fR()
|
|
Packit |
7cfc04 |
specifying MCL_CURRENT. If pages mapped into the address space of the
|
|
Packit |
7cfc04 |
process are also mapped into the address spaces of other processes and
|
|
Packit |
7cfc04 |
are locked by those processes, the locks established by the other
|
|
Packit |
7cfc04 |
processes shall be unaffected by a call by this process to
|
|
Packit |
7cfc04 |
\fImunlockall\fR().
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
Upon successful return from the
|
|
Packit |
7cfc04 |
\fImlockall\fR()
|
|
Packit |
7cfc04 |
function that specifies MCL_CURRENT, all currently mapped pages of the
|
|
Packit |
7cfc04 |
address space of the process shall be memory-resident and locked.
|
|
Packit |
7cfc04 |
Upon return from the
|
|
Packit |
7cfc04 |
\fImunlockall\fR()
|
|
Packit |
7cfc04 |
function, all currently mapped pages of the address space of the process
|
|
Packit |
7cfc04 |
shall be unlocked with respect to the address space of the process.
|
|
Packit |
7cfc04 |
The memory residency of unlocked pages is unspecified.
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
Appropriate privileges are required to lock process memory with
|
|
Packit |
7cfc04 |
\fImlockall\fR().
|
|
Packit |
7cfc04 |
.SH "RETURN VALUE"
|
|
Packit |
7cfc04 |
Upon successful completion, the
|
|
Packit |
7cfc04 |
\fImlockall\fR()
|
|
Packit |
7cfc04 |
function shall return a value of zero. Otherwise, no additional memory
|
|
Packit |
7cfc04 |
shall be locked, and the function shall return a value of \(mi1 and set
|
|
Packit |
7cfc04 |
.IR errno
|
|
Packit |
7cfc04 |
to indicate the error. The effect of failure of
|
|
Packit |
7cfc04 |
\fImlockall\fR()
|
|
Packit |
7cfc04 |
on previously existing locks in the address space is unspecified.
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
If it is supported by the implementation, the
|
|
Packit |
7cfc04 |
\fImunlockall\fR()
|
|
Packit |
7cfc04 |
function shall always return a value of zero. Otherwise, the function
|
|
Packit |
7cfc04 |
shall return a value of \(mi1 and set
|
|
Packit |
7cfc04 |
.IR errno
|
|
Packit |
7cfc04 |
to indicate the error.
|
|
Packit |
7cfc04 |
.SH ERRORS
|
|
Packit |
7cfc04 |
The
|
|
Packit |
7cfc04 |
\fImlockall\fR()
|
|
Packit |
7cfc04 |
function shall fail if:
|
|
Packit |
7cfc04 |
.TP
|
|
Packit |
7cfc04 |
.BR EAGAIN
|
|
Packit |
7cfc04 |
Some or all of the memory identified by the operation could not be
|
|
Packit |
7cfc04 |
locked when the call was made.
|
|
Packit |
7cfc04 |
.TP
|
|
Packit |
7cfc04 |
.BR EINVAL
|
|
Packit |
7cfc04 |
The
|
|
Packit |
7cfc04 |
.IR flags
|
|
Packit |
7cfc04 |
argument is zero, or includes unimplemented flags.
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
The
|
|
Packit |
7cfc04 |
\fImlockall\fR()
|
|
Packit |
7cfc04 |
function may fail if:
|
|
Packit |
7cfc04 |
.TP
|
|
Packit |
7cfc04 |
.BR ENOMEM
|
|
Packit |
7cfc04 |
Locking all of the pages currently mapped into the address space of the
|
|
Packit |
7cfc04 |
process would exceed an implementation-defined limit on the amount of
|
|
Packit |
7cfc04 |
memory that the process may lock.
|
|
Packit |
7cfc04 |
.TP
|
|
Packit |
7cfc04 |
.BR EPERM
|
|
Packit |
7cfc04 |
The calling process does not have appropriate privileges to perform
|
|
Packit |
7cfc04 |
the requested operation.
|
|
Packit |
7cfc04 |
.LP
|
|
Packit |
7cfc04 |
.IR "The following sections are informative."
|
|
Packit |
7cfc04 |
.SH EXAMPLES
|
|
Packit |
7cfc04 |
None.
|
|
Packit |
7cfc04 |
.SH "APPLICATION USAGE"
|
|
Packit |
7cfc04 |
None.
|
|
Packit |
7cfc04 |
.SH RATIONALE
|
|
Packit |
7cfc04 |
None.
|
|
Packit |
7cfc04 |
.SH "FUTURE DIRECTIONS"
|
|
Packit |
7cfc04 |
None.
|
|
Packit |
7cfc04 |
.SH "SEE ALSO"
|
|
Packit |
7cfc04 |
.IR "\fIexec\fR\^",
|
|
Packit |
7cfc04 |
.IR "\fIexit\fR\^(\|)",
|
|
Packit |
7cfc04 |
.IR "\fIfork\fR\^(\|)",
|
|
Packit |
7cfc04 |
.IR "\fImlock\fR\^(\|)",
|
|
Packit |
7cfc04 |
.IR "\fImunmap\fR\^(\|)"
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
The Base Definitions volume of POSIX.1\(hy2008,
|
|
Packit |
7cfc04 |
.IR "\fB<sys_mman.h>\fP"
|
|
Packit |
7cfc04 |
.SH COPYRIGHT
|
|
Packit |
7cfc04 |
Portions of this text are reprinted and reproduced in electronic form
|
|
Packit |
7cfc04 |
from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology
|
|
Packit |
7cfc04 |
-- Portable Operating System Interface (POSIX), The Open Group Base
|
|
Packit |
7cfc04 |
Specifications Issue 7, Copyright (C) 2013 by the Institute of
|
|
Packit |
7cfc04 |
Electrical and Electronics Engineers, Inc and The Open Group.
|
|
Packit |
7cfc04 |
(This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) In the
|
|
Packit |
7cfc04 |
event of any discrepancy between this version and the original IEEE and
|
|
Packit |
7cfc04 |
The Open Group Standard, the original IEEE and The Open Group Standard
|
|
Packit |
7cfc04 |
is the referee document. The original Standard can be obtained online at
|
|
Packit |
7cfc04 |
http://www.unix.org/online.html .
|
|
Packit |
7cfc04 |
|
|
Packit |
7cfc04 |
Any typographical or formatting errors that appear
|
|
Packit |
7cfc04 |
in this page are most likely
|
|
Packit |
7cfc04 |
to have been introduced during the conversion of the source files to
|
|
Packit |
7cfc04 |
man page format. To report such errors, see
|
|
Packit |
7cfc04 |
https://www.kernel.org/doc/man-pages/reporting_bugs.html .
|