SYNOPSIS

DESCRIPTION

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
addr to the nearest preceding page boundary, and by rounding up addr+len to the next page boundary. The process context to use for this
operation is taken from the global variable curproc.

RETURNVALUES

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:
[EINVAL] The addr and len parameters specify a memory range
that wraps around the end of the machine address
space.
[ENOMEM] The size of the specified address range exceeds the
system limit on locked memory.
[ENOMEM] Locking the requested address range would cause the
process to exceed its per-process locked memory limit.
[EFAULT] Some portion of the indicated address range is not
allocated. There was an error faulting/mapping a
page.