vslock(9)
NAME
- vslock, vsunlock - lock/unlock user space addresses in memo
- ry
SYNOPSIS
#include <sys/param.h> #include <sys/proc.h> #include <vm/vm.h> #include <vm/vm_extern.h> int vslock(void *addr, size_t len); void vsunlock(void *addr, size_t len);
DESCRIPTION
- The vslock() and vsunlock() functions respectively lock and
- unlock a
range of addresses belonging to the currently running pro - cess into memory. The actual amount of memory locked is a multiple of
- the machine's
page size. The starting page number is computed by truncat - ing 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 op - eration 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:
- [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 fault
- ing/mapping a
page. - BSD August 10, 2004