OpenBSD manual page server

Manual Page Search Parameters

MADVISE(2) System Calls Manual MADVISE(2)

madvise, posix_madvisegive advice about use of memory

#include <sys/mman.h>

int
madvise(void *addr, size_t len, int behav);

int
posix_madvise(void *addr, size_t len, int behav);

The () system call allows a process that has knowledge of its memory behavior to describe it to the system. The posix_madvise() interface has the same effect, but returns the error value instead of only setting errno.

The possible behaviors are:

No further special treatment needed.
Expect random page access patterns.
Expect sequential page references.
The pages will be referenced soon.
The pages will not be referenced soon.
Ensure that resources are reserved.
The pages don't contain any useful data and can be recycled.

Portable programs that call the () interface should use the aliases POSIX_MADV_NORMAL, POSIX_MADV_RANDOM, POSIX_MADV_SEQUENTIAL, POSIX_MADV_WILLNEED, and POSIX_MADV_DONTNEED rather than the flags described above.

The madvise() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

If successful, the posix_madvise() function will return zero. Otherwise an error number will be returned to indicate the error.

minherit(2), mprotect(2), msync(2), munmap(2)

The posix_madvise() system call conforms to IEEE Std 1003.1-2008 (“POSIX.1”).

The madvise() function first appeared in SunOS 4.0 and has been available since OpenBSD 2.7. The posix_madvise() function first appeared in OpenBSD 4.8.

The MADV_WILLNEED behavior is ignored. The MADV_SPACEAVAIL behavior is not implemented and will always fail.

December 26, 2019 OpenBSD-6.8