The
vslock ();
and
vsunlock ();
functions respectively lock and unlock a range of
addresses belonging to the currently running process into memory.
The actual amount of memory locked is a multiple of the machine's page size.
The starting page number is computed by truncating
Fa addr
to the nearest preceding page boundary, and by rounding up
Fa addr +
Fa len
to the next page boundary.
The process context to use for this operation is taken from the
global variable
curproc
RETURN VALUES
The
vslock ();
function will return 0 on success, otherwise it will return
one of the errors listed below.
ERRORS
The
vslock ();
function will fail if:
Bq Er EINVAL
The
Fa addr
and
Fa len
parameters specify a memory range that wraps around the end of the
machine address space.
Bq Er ENOMEM
The size of the specified address range exceeds the system
limit on locked memory.
Bq Er ENOMEM
Locking the requested address range would cause the process to exceed
its per-process locked memory limit.
Bq Er EFAULT
Some portion of the indicated address range is not allocated.
There was an error faulting/mapping a page.