osfmk/man/memory_object_terminate.html
Server Interface - Relinquish access to a memory object.
**kern\_return\_t memory\_object\_terminate**** (memory\_object\_t **memory\_object,** memory\_object\_control\_t **memory\_control** ); ****kern\_return\_t seqnos\_memory\_object\_terminate**** (memory\_object\_t **memory\_object,** mach\_port\_seqno\_t **seqno,** memory\_object\_control\_t **memory\_control** );**
memory_object[in abstract-memory-object (receive) right] The abstract memory object port that represents the memory object data.
seqno[in scalar] The sequence number of this message relative to the abstract memory object port.
memory_control[in memory-cache-control receive right] The memory cache control port to be used for a response 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.
A memory_object_terminate function is called as the result of a kernel message notifying a memory manager that no mappings of the specified memory object remain. The kernel makes this call to allow the memory manager to clean up data structures associated with the deallocated mappings. The call provides receive rights to the memory cache control port so that the memory manager can retrieve any messages it sent into this port before knowing the memory object was being terminated and then destroy the port. The kernel also relinquishes its rights for all memory object ports.
The kernel terminates a memory object only after all address space mappings of the object have been deallocated, or upon explicit request by the memory manager.
Only generic errors apply.
Functions: memory_object_destroy, mach_port_deallocate, memory_object_server, seqnos_memory_object_server.