datalock(3C) datalock(3C)
NAME
datalock() - lock process into memory after allocating data and stack
space
SYNOPSIS
#include <<<<sys/lock.h>>>>
int datalock(size_t datsiz, size_t stsiz);
DESCRIPTION
datalock() allocates at least datsiz bytes of data space and stsiz
bytes of stack space, then locks the program in memory. The data
space is allocated by malloc() (see malloc(3C)). After the program is
locked, this space is released by free() (see malloc(3C)), making it
available for use. This allows the calling program to use that much
space dynamically without receiving the SIGSEGV signal.
The effective user ID of the calling process must be super-user or be
a member of or have an effective group ID of a group having PRIV_MLOCK
access to use this call (see setprivgrp(2)).
EXAMPLES
The following call to datalock() allocates 4096 bytes of data space
and 2048 bytes of stack space, then locks the process in memory:
datalock (4096, 2048);
APPLICATION USAGE
datalock() is thread-safe. It is not async-cancel-safe.
RETURN VALUE
datalock() returns -1 if malloc() cannot allocate enough memory or if
plock() returned an error (see plock(2)).
WARNINGS
Multiple datalocks cannot be the same as one big one.
Methods for calculating the required size are not yet well developed.
AUTHOR
datalock() was developed by HP.
SEE ALSO
getprivgrp(2), plock(2).
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
|