1*0f4c859eSApple OSS Distributions<h2>memory_object_init</h2> 2*0f4c859eSApple OSS Distributions<hr> 3*0f4c859eSApple OSS Distributions<p> 4*0f4c859eSApple OSS Distributions<strong>Server Interface</strong> - Initializes a memory object. 5*0f4c859eSApple OSS Distributions<h3>SYNOPSIS</h3> 6*0f4c859eSApple OSS Distributions<pre> 7*0f4c859eSApple OSS Distributions<strong>kern_return_t memory_object_init</strong> 8*0f4c859eSApple OSS Distributions <strong>(memory_object_t</strong> <var>memory_object</var>, 9*0f4c859eSApple OSS Distributions <strong>memory_object_control_t </strong><var>memory_control</var>, 10*0f4c859eSApple OSS Distributions <strong>vm_size_t</strong> <var>memory_object_page_size</var><strong>);</strong> 11*0f4c859eSApple OSS Distributions 12*0f4c859eSApple OSS Distributions 13*0f4c859eSApple OSS Distributions<strong>kern_return_t seqnos_memory_object_init</strong> 14*0f4c859eSApple OSS Distributions <strong>(memory_object_t</strong> <var>memory_object</var>, 15*0f4c859eSApple OSS Distributions <strong>mach_port_seqno_t</strong> <var>seqno</var>, 16*0f4c859eSApple OSS Distributions <strong>memory_object_control_t</strong> <var>memory_control</var>, 17*0f4c859eSApple OSS Distributions <strong>vm_size_t</strong> <var>memory_object_page_size</var><strong>);</strong> 18*0f4c859eSApple OSS Distributions</pre> 19*0f4c859eSApple OSS Distributions<h3>PARAMETERS</h3> 20*0f4c859eSApple OSS Distributions<dl> 21*0f4c859eSApple OSS Distributions<dt> <var>memory_object</var> 22*0f4c859eSApple OSS Distributions<dd> 23*0f4c859eSApple OSS Distributions[in abstract-memory-object port] The abstract memory object port that represents the memory object data, as supplied to the kernel in a vm_map call. 24*0f4c859eSApple OSS Distributions<p> 25*0f4c859eSApple OSS Distributions<dt> <var>seqno</var> 26*0f4c859eSApple OSS Distributions<dd> 27*0f4c859eSApple OSS Distributions[in scalar] The sequence number of this message relative to the abstract memory object port. 28*0f4c859eSApple OSS Distributions<p> 29*0f4c859eSApple OSS Distributions<dt> <var>memory_control</var> 30*0f4c859eSApple OSS Distributions<dd> 31*0f4c859eSApple OSS Distributions[in memory-cache-control port] The memory cache control port to be used by the memory manager. If the memory object has been supplied to more than one kernel, this parameter identifies the kernel that is making the call. 32*0f4c859eSApple OSS Distributions<p> 33*0f4c859eSApple OSS Distributions<dt> <var>memory_object_page_size</var> 34*0f4c859eSApple OSS Distributions<dd> 35*0f4c859eSApple OSS Distributions[in scalar] The page size used by the kernel. All calls involving this kernel must use data sizes that are integral multiples of this page size. 36*0f4c859eSApple OSS Distributions</dl> 37*0f4c859eSApple OSS Distributions<h3>DESCRIPTION</h3> 38*0f4c859eSApple OSS Distributions<p> 39*0f4c859eSApple OSS DistributionsA <strong>memory_object_init</strong> function is called as the result 40*0f4c859eSApple OSS Distributionsof a kernel message notifying a memory manager that the kernel has 41*0f4c859eSApple OSS Distributionsbeen asked to map the specified memory object into a task's virtual 42*0f4c859eSApple OSS Distributionsaddress space. When asked to map a memory object for the first time, 43*0f4c859eSApple OSS Distributionsthe kernel responds by making a <strong>memory_object_init</strong> 44*0f4c859eSApple OSS Distributionscall on the abstract memory object. This call is provided as a 45*0f4c859eSApple OSS Distributionsconvenience to the memory manager, to allow it to initialize data 46*0f4c859eSApple OSS Distributionsstructures and prepare to receive other requests. 47*0f4c859eSApple OSS Distributions<p> 48*0f4c859eSApple OSS DistributionsIn addition to the 49*0f4c859eSApple OSS Distributionsabstract memory object port itself, the call provides 50*0f4c859eSApple OSS Distributionsa memory cache control port that the memory manager can use to 51*0f4c859eSApple OSS Distributionscontrol use of its data by the kernel. The memory manager gets send 52*0f4c859eSApple OSS Distributionsrights for this port. 53*0f4c859eSApple OSS Distributions<p> 54*0f4c859eSApple OSS DistributionsThe kernel holds send rights for the abstract memory object port, and 55*0f4c859eSApple OSS Distributionsboth send and receive rights for the memory cache control port. 56*0f4c859eSApple OSS DistributionsThe call also supplies the virtual page size to be used for 57*0f4c859eSApple OSS Distributionsthe memory mapping. The memory manager can use this size to detect 58*0f4c859eSApple OSS Distributionsmappings that use different data structures at initialization time, or 59*0f4c859eSApple OSS Distributionsto allocate buffers for use in reading data. 60*0f4c859eSApple OSS Distributions<p> 61*0f4c859eSApple OSS DistributionsIf a memory object is 62*0f4c859eSApple OSS Distributionsmapped into the address space of more than one task on different hosts 63*0f4c859eSApple OSS Distributions(with independent kernels), the memory manager will receive a 64*0f4c859eSApple OSS Distributions<strong>memory_object_init</strong> call from each kernel, containing 65*0f4c859eSApple OSS Distributionsa unique set of control and name ports. Note that each kernel may also 66*0f4c859eSApple OSS Distributionsuse a different page size. 67*0f4c859eSApple OSS Distributions<h3>RETURN VALUES</h3> 68*0f4c859eSApple OSS Distributions<p> 69*0f4c859eSApple OSS Distributions 70*0f4c859eSApple OSS DistributionsAny return value other than <strong>KERN_SUCCESS</strong> 71*0f4c859eSApple OSS Distributionsor <strong>MIG_NO_REPLY</strong>will cause 72*0f4c859eSApple OSS Distributions<strong>mach_msg_server</strong> to remove the memory cache control reference. 73*0f4c859eSApple OSS Distributions<h3>RELATED INFORMATION</h3> 74*0f4c859eSApple OSS Distributions<p> 75*0f4c859eSApple OSS DistributionsFunctions: 76*0f4c859eSApple OSS Distributions<a href="memory_object_terminate.html"><strong>memory_object_terminate</strong></a>. 77