MINHERIT(2)               NetBSD System Calls Manual               MINHERIT(2)

NAME
     minherit -- control the inheritance of pages

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <sys/mman.h>

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

DESCRIPTION
     The minherit() system call changes the specified range of virtual
     addresses to have the inheritance characteristic inherit, which deter-
     mines how fork(2) will map the region in the child process.  The sup-
     ported inheritance characteristics are:

         MAP_INHERIT_COPY     The child is given a private copy of the region:
                              writes from parent or child are not seen by the
                              other.

         MAP_INHERIT_NONE     The region is unmapped in the child.

         MAP_INHERIT_SHARE    The child is shares the region with the parent:
                              writes from parent and child are seen by both.

         MAP_INHERIT_ZERO     The region is mapped in the child to anonymous
                              pages filled with zeros.

     Normally, the parent's virtual address space is copied for the child as
     if with MAP_INHERIT_COPY, for which the alias MAP_INHERIT_DEFAULT is pro-
     vided.  Regions in the parent mapped using mmap(2) with the MAP_SHARED
     flag are by default shared with the child as if with MAP_INHERIT_SHARED.

     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.

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

ERRORS
     minherit() will fail if:

     [EINVAL]           An invalid region or invalid parameters were speci-
                        fied.

SEE ALSO
     fork(2), madvise(2), mincore(2), mmap(2), mprotect(2), msync(2),
     munmap(2)

HISTORY
     The minherit() function first appeared in OpenBSD.

BUGS
     If a particular port does not support page-granularity inheritance,
     there's no way to figure out how large a region is actually affected by
     minherit().

NetBSD 8.0                      August 5, 2014                      NetBSD 8.0

You can also request any man page by name and (optionally) by section:

Command: 
Section: 
Architecture: 
Collection: 
 

Use the DEFAULT collection to view manual pages for third-party software.


©1994 Man-cgi 1.15, Panagiotis Christias
©1996-2017 Modified for NetBSD by Kimmo Suominen