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)
in
getprivgrp(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:
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.