|VSLOCK(9)||FreeBSD Kernel Developer's Manual||VSLOCK(9)|
NAMEvslock, 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>
vslock( void *addr, size_t len);
vsunlock( void *addr, size_t len);
DESCRIPTIONThe 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.
RETURN VALUESThe vslock() function will return 0 on success, otherwise it will return one of the errors listed below.
ERRORSThe 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.
- [ EFAULT]
- Some portion of the indicated address range is not allocated. There was an error faulting/mapping a page.
|August 29, 2012||FreeBSD|