plock(2)plock(2)Nameplock - lock or unlock process, text, or data in memory
Syntax
#include <sys/lock.h>
int plock (op)
int op;
Description
The call allows the calling process to lock its text segment (text
lock), its data segment (data lock), or both its text and data segments
(process lock) into memory. Locked segments are immune to page outs,
and the process is immune to swap outs. The call also unlocks these
segments.
The op argument specifies the following:
PROCLOCK Lock text and data segments into memory (process lock)
TXTLOCK Lock text segment into memory (text lock)
DATLOCK Lock data segment into memory (data lock)
UNLOCK Remove locks
Return Values
Upon successful completion, a value of 0 is returned to the calling
process. Otherwise, a value of -1 is returned, and errno is set to
indicate the error.
Diagnostics
The call fails under the following conditions:
[EPERM] The effective user ID of the calling process is not
superuser.
[EINVAL] The op argument is equal to PROCLOCK, and a process
lock, a text lock, or a data lock already exists on the
calling process.
[EINVAL] The op argument is equal to TXTLOCK, and a text lock or
a process lock already exists on the calling process.
[EINVAL] The op argument is equal to DATLOCK, and a data lock or
a process lock already exists on the calling process.
[EINVAL] The op argument is equal to UNLOCK, and no type of lock
exists on the calling process.
Restrictions
The effective user ID of the calling process must be superuser to use
this call.
Both PROCLOCK and TXTLOCK lock the text segment of a process, and a
locked text segment is locked for all sharing processes.
Because the effective user ID of the calling process is superuser, take
care not to lock more virtual pages than can be contained in physical
memory. A deadlock can result.
See Alsoexecve(2), exit(2), fork(2), shmctl(2)plock(2)