Updated: October 28, 2024 |
Lock a range of process address space in physical memory
#include <sys/mman.h> int mlock(const void * addr, size_t len);
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The mlock() function causes the whole pages containing any part of the address space of the process starting at address addr and continuing for len bytes to be memory-resident until unlocked or until the process exits or execs another process image. The addr must be a multiple of PAGESIZE, which depends on the target platform.
Memory-resident is a term used to indicate that the addresses always reside in physical memory. For more information, see Locking memory in the Process Manager chapter of the System Architecture guide.
Memory that's mapped from a typed-memory file descriptor is implicitly locked. Shared memory objects that are populated with shm_ctl() are implicitly locked, unless you use the SHMCTL_LAZY flag.
If you use MAP_LAZY, there may not be an immediate effect on the mappings.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |