diff options
Diffstat (limited to 'lib/libc')
| -rw-r--r-- | lib/libc/sys/minherit.2 | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/libc/sys/minherit.2 b/lib/libc/sys/minherit.2 index 037723019031..fb7576f94ba6 100644 --- a/lib/libc/sys/minherit.2 +++ b/lib/libc/sys/minherit.2 @@ -55,6 +55,41 @@ changes the specified pages to have the inheritance characteristic 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. +.Fx +is capable of adjusting inheritance characteristics on a page basis. +Inheritance only effects children created by +.Fn fork . +It has no effect on +.Fn exec . +exec'd processes replace their address space entirely. This function also +has no effect on the parent's address space (other then to potentially +share the address space with its children). +.Pp +Inheritance is a rather esoteric feature largely superceeded by the +MAP_SHARED feature of +.Fn mmap . +However, it is possible to use +.Fn minherit +to share a block of memory between parent and child that has been mapped +MAP_PRIVATE. That is, modifications made by parent or child are shared but +the original underlying file is left untouched. +.Bl -tag -width MAP_HASSEMAPHORE +.It Dv INHERIT_SHARE +This option causes the address space in question to be shared between +parent and child. It has no effect on how the original underlying backing +store was mapped. +.It Dv INHERIT_NONE +This option prevents the address space in question from being inherited +at all. The address space will be unmapped in the child. +.It Dv INHERIT_COPY +This option causes the child to inherit the address space as copy-on-write. +This option also has an unfortunate side effect of causing the parent +address space to become copy-on-write when the parent forks. If the +original mapping was MAP_SHARED, it will no longer be shared in the parent +after the parent forks and there is no way to get the previous +shared-backing-store mapping without unmapping and remapping the address +space in the parent. +.El .Sh RETURN VALUES .Rv -std minherit .Sh ERRORS |
