Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

execve(2)

exit(2)

fork(2)

shmctl(2)

plock(2)

Name

plock − lock or unlock process, text, or data in memory

Syntax

#include <sys/lock.h>

int plock (op)
int op;

Description

The plock 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 plock call also unlocks these segments.

The op argument specifies the following:

PROCLOCKLock text and data segments into memory (process lock)

TXTLOCKLock text segment into memory (text lock)

DATLOCKLock data segment into memory (data lock)

UNLOCKRemove 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 plock 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 Also

execve(2), exit(2), fork(2), shmctl(2)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026