HP-UX Reference (11i v3 07/02) - 2 System Calls (vol 5)
p
plock(2) plock(2)
NAME
plock() - lock process, text, data, stack, or shared library in memory
SYNOPSIS
#include <sys/lock.h>
int plock(int
op);
DESCRIPTION
The plock() system call allows the calling process to lock the text segment of the process (text lock), its
data segment (data lock), or both its text and data segment (process lock) into memory. Stack segments
are also locked when data segments are locked. Shared library text and shared library data segments
(shlib lock) can also be locked. Locked segments are immune to all routine swapping.
plock() also
allows these segments to be unlocked.
The effective user ID of the calling process must be a user with the
MLOCK privilege.
op must be one of 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
SHLIBLOCK Lock shared library text and shared library data segments (shared library lock)
PROCSHLIBLOCK Lock text, data and shared library text and shared library data segments into
memory (process and shared library lock)
TXTSHLIBLOCK Lock text, shared library text and shared library data segments into memory
(text and shared library lock)
DATSHLIBLOCK Lock data, shared library text and shared library data segments into memory
(data and shared library lock)
Although plock() and the mlock() family of functions may be used together in an application,
each may affect the other in unexpected ways. This practice is not recommended.
Security Restrictions
Some or all of the actions associated with this system call require the MLOCK privilege. Processes owned
by the superuser have this privilege. Processes owned by other users may have this privilege, depending on
system configuration. See privileges (5) for more information about privileged access on systems that sup-
port fine-grained privileges.
RETURN VALUE
plock() returns the following values:
0 Successful completion.
-1 Failure. The requested operation is not performed. errno
is set to indicate the error.
ERRORS
If
plock() fails, errno is set to one of the following values.
[EINVAL] op is equal to PROCLOCK and a process lock, a text lock, or a data lock already exists
on the calling process.
[EINVAL] op is equal to TXTLOCK and a text lock or process lock already exists on the calling
process.
[EINVAL] op is equal to DATLOCK and a data lock, or process lock already exists on the calling
process.
[EINVAL] op is equal to UNLOCK and no type of lock exists on the calling process.
[EINVAL] op is equal to SHLIBLOCK and there are no unlocked shared library segments in the
calling process.
[EINVAL] op is equal to PROCSHLIBLOCK and a process lock, a text lock, or a data lock
already exists on the calling process.
HP-UX 11i Version 3: February 2007 − 1 − Hewlett-Packard Company 265