diff options
-rw-r--r-- | lib/libc/sys/minherit.2 | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/libc/sys/minherit.2 b/lib/libc/sys/minherit.2 index af9ad87..6af3c88 100644 --- a/lib/libc/sys/minherit.2 +++ b/lib/libc/sys/minherit.2 @@ -74,16 +74,21 @@ 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 MAP_SHARED +.It Dv VM_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 MAP_PRIVATE +.It Dv VM_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 MAP_COPY -This option has been deprecated. It had the same effect as MAP_PRIVATE, -which is not what one would expected for an option called MAP_COPY. +.It Dv VM_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 |