.\" $OpenBSD: vm_map_inherit.9,v 1.6 2001/11/06 21:54:41 miod Exp $ .\" .\" Mach Operating System .\" Copyright (c) 1991,1990 Carnegie Mellon University .\" All Rights Reserved. .\" .\" Permission to use, copy, modify and distribute this software and its .\" documentation is hereby granted, provided that both the copyright .\" notice and this permission notice appear in all copies of the .\" software, derivative works or modified versions, and any portions .\" thereof, and that both notices appear in supporting documentation. .\" .\" CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" .\" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR .\" ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. .\" .\" Carnegie Mellon requests users of this software to return to .\" .\" Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU .\" School of Computer Science .\" Carnegie Mellon University .\" Pittsburgh PA 15213-3890 .\" .\" any improvements or extensions that they make and grant Carnegie Mellon .\" the rights to redistribute these changes. .\" .TH vm_map_inherit 9 9/19/93 .CM 4 .SH NAME .nf vm_map_inherit \- specifies inheritance of address space .SH SYNOPSIS .nf .ft B #include .nf .ft B int vm_inherit(map, start, end, new_inheritance) vm_map_t map; vm_offset_t start, end; vm_inherit_t new_inheritance; .fi .ft P .SH ARGUMENTS .TP 15 .B map Virtual memory map to be affected. .TP 15 .B start Starting address (will be rounded down to a page boundary). .TP 15 .B end Ending address (will be rounded down to a page boundary). .TP 15 .B new_inheritance How this memory is to be inherited in child maps. Inheritance is specified by using one of these following three values: .TP 15 .B VM_INHERIT_SHARE Child maps will share this memory with this map. .TP 15 .B VM_INHERIT_COPY Child maps will receive a copy of this region. .TP 15 .B VM_INHERIT_NONE This region will be absent from child maps. .SH DESCRIPTION .B vm_map_inherit specifies how a region of a virtual address space is to be passed to child maps at the time of map creation. Inheritance is an attribute of virtual pages; thus the addresses and size of memory to be set will be rounded out to refer to whole pages. Setting .B vm_map_inherit to .B VM_INHERIT_SHARE and forking a child map is the only way two .B tasks can share physical memory. Remember that all the .B theads of a given task share all the same memory. .SH DIAGNOSTICS .TP 25 KERN_SUCCESS Memory protected. .TP 25 KERN_INVALID_ADDRESS Illegal address specified. .SH SEE ALSO .B vm_map_fork