plock(2)							System Calls Manual							  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  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 physi-
       cal memory.  A deadlock can result.

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

																	  plock(2)