MINHERIT(2) BSD System Calls Manual MINHERIT(2)
minherit -- control the inheritance of pages
minherit(void *addr, size_t len, int inherit);
The minherit() system call changes the specified pages to have the inher-
itance characteristic inherit. A page's inheritance characteristic con-
trols how it will be mapped in child processes as created by fork(2).
The possible inheritance characteristics are:
MAP_INHERIT_NONE Pages are not mapped in the child process.
MAP_INHERIT_COPY Private copy of pages are mapped in the child
MAP_INHERIT_SHARE Mapped pages are shared between the parent and
MAP_INHERIT_ZERO New anonymous pages (initialized to all zero
bytes) are mapped in the child process.
Not all implementations will guarantee that the inheritance characteris-
tic 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
The minherit() system call will fail if:
[EINVAL] The virtual address range specified by the addr and
len arguments is not valid.
[EINVAL] The inherit argument is invalid.
madvise(2), mincore(2), mprotect(2), msync(2), munmap(2)
The minherit() function first appeared in OpenBSD 2.0.
BSD July 2, 2014 BSD