table of contents
| VSLOCK(9) | Kernel Developer's Manual | VSLOCK(9) |
NAME¶
vslock, vsunlock —
lock/unlock user space addresses in memory
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¶
Thevslock() 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.
RETURN VALUES¶
Thevslock() function will return 0 on success,
otherwise it will return one of the errors listed below.
ERRORS¶
Thevslock() 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.
- [
EFAULT] - Some portion of the indicated address range is not allocated. There was an error faulting/mapping a page.
| August 29, 2012 | Linux 4.9.0-9-amd64 |