$NetBSD: vslock.9,v 1.1 1996/06/15 20:47:29 pk Exp $ Copyright (c) 1996 The NetBSD Foundation, Inc. All rights reserved. This code is derived from software contributed to The NetBSD Foundation by Paul Kranenburg. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaime...
NAMEvslock vsunlock - lock/unlock user space addresses in memory
SYNOPSISIn sys/param.h In sys/proc.h In vm/vm.h In vm/vm_extern.h Ft int Fn vslock void *addr size_t len Ft void Fn vsunlock void *addr size_t len
DESCRIPTIONThe Fn vslock and Fn 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 VALUESThe Fn vslock function will return 0 on success, otherwise it will return one of the errors listed below.
ERRORSThe Fn 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 EFAULT
- Some portion of the indicated address range is not allocated. There was an error faulting/mapping a page.