Manual Page Result
0
Command: minherit | Section: 2 | Source: OpenBSD | File: minherit.2
MINHERIT(2) FreeBSD System Calls Manual MINHERIT(2)
NAME
minherit - control the inheritance of pages
SYNOPSIS
#include <sys/mman.h>
int
minherit(void *addr, size_t len, int inherit);
DESCRIPTION
The minherit() 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:
MAP_INHERIT_NONE Pages are not mapped in the child process.
MAP_INHERIT_COPY Private copy of pages are mapped in the child
process.
MAP_INHERIT_SHARE Mapped pages are shared between the parent and
child processes.
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
characteristic can be set on a page basis; the granularity of changes may
be as large as an entire region.
RETURN VALUES
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.
ERRORS
The minherit() system call will fail if:
[EPERM] The addr and len parameters specify a region that
contains at least one page which is immutable, or
MAP_INHERIT_ZERO is being requested on a page without
PROT_WRITE permission.
[EINVAL] The virtual address range specified by the addr and
len arguments is not valid.
[EINVAL] The inherit argument is invalid.
SEE ALSO
madvise(2), mimmutable(2), mprotect(2), msync(2), munmap(2)
HISTORY
The minherit() function first appeared in OpenBSD 2.0.
FreeBSD 14.1-RELEASE-p8 January 21, 2024 FreeBSD 14.1-RELEASE-p8