OpenBSD manual page server

Manual Page Search Parameters

MINHERIT(2) System Calls Manual MINHERIT(2)

minheritcontrol the inheritance of pages

#include <sys/mman.h>

int
minherit(void *addr, size_t len, int inherit);

The () system call changes the specified pages to have the inheritance characteristic inherit. A page's inheritance characteristic controls how it will be mapped in child processes as created by fork(2).

The possible inheritance characteristics are:

Pages are not mapped in the child process.
Private copy of pages are mapped in the child process.
Mapped pages are shared between the parent and child processes.
New anonymous pages (initialized to all zero bytes) are mapped in the child process.

Not all implementations will guarantee that the inheritance characteristic can be set on a page basis; the granularity of changes may be as large as an entire region.

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

The minherit() system call will fail if:

[]
The virtual address range specified by the addr and len arguments is not valid.
[]
The inherit argument is invalid.

madvise(2), mprotect(2), msync(2), munmap(2)

The minherit() function first appeared in OpenBSD 2.0.

January 11, 2019 OpenBSD-7.3