]> git.saurik.com Git - apple/xnu.git/blame - osfmk/man/mach_rpc_trap.html
xnu-792.6.70.tar.gz
[apple/xnu.git] / osfmk / man / mach_rpc_trap.html
CommitLineData
9bccf70c 1<h2>mach_rpc_trap</h2>\r<hr>\r<p>\r<strong>System Trap</strong> - Real-Time RPC trap.\r<h3>SYNOPSIS</h3>\r<pre>\r<strong>#include&ltmach/rpc.h&gt</strong>\r\r<strong>mach_rpc_return_t mach_rpc_trap</strong>\r <strong>(mach_port_t</strong> <var>dest_port</var>,\r <strong>mach_rpc_id_t</strong> <var>routine_num</var>,\r <strong>mach_rpc_signature_t</strong> <var>signature_ptr</var>,\r <strong>mach_rpc_size_t</strong> <var>signature_size</var><strong>);</strong>\r</pre>\r<h3>PARAMETERS</h3>\r<dl>\r<p>\r<dt> <var>dest_port</var>\r<dd>\r[in send right] The port representing the destination of the RPC\r (usually a registered subsystem established by a call to\r <strong>mach_port_allocate_subsystem</strong>).\r<p>\r<dt> <var>routine_num</var>\r<dd>\r[in scalar] Identifier of the server work function.\r<p>\r<dt> <var>signature_ptr</var>\r<dd>\r[in pointer] Pointer to the call's <strong>mach_rpc_signature</strong> structure.\r<p>\r<dt> <var>signature_size</var>\r<dd>\r[in scalar] Size, in bytes, of the call's <strong>mach_rpc_signature</strong> structure.\r</dl>\r<h3>DESCRIPTION</h3>\r<p>\rThe <strong>mach_rpc_trap</strong> system trap is the entry point for the\rinvoke side of the Mach RPC service used to transfer control to an RPC server.\rThe trap is accessed via the MIG generated\r<strong>MACH_RPC</strong> macro\rwhich is invoked transparently when the <strong>mach_rpc</strong> feature is enabled.\rThis function is not designed for use directly by the user. It is\rautomatically generated by MIG to handle a function call.\r<p>\rFor a\rcomplete description of this functionality, refer to: Burke, Edward,\rMichael Condict, David Mitchell, Franklin Reynolds, Peter Watkins,\rWilliam Willcox, "RPC Design for Real-Time Mach," OSF Research\rInstitute, Cambridge, MA.\r<h3>NOTES</h3>\r<p>\rThis interface is experimental and therefore subject to change.\r<h3>RETURN VALUES</h3>\r<dl>\r<p>\r<dt> <strong>KERN_FAILURE</strong>\r<dd>\rEither the argument copyin failed, there were too many arguments, or\rthe argument copyout failed.\r<p>\r<dt> <strong>KERN_INVALID_ARGUMENT</strong>\r<dd>\rThe dest_port, signature_ptr, and/or the subsystem associated with the\rdest_port is invalid; the siganture_size is less than, or equal to, zero.\r<p>\r<dt> <strong>KERN_NO_ACCESS</strong>\r<dd>\rThe kernel port associated with the dest_port name is a norma proxy\rport.\r<p>\r<dt> <strong>KERN_RESOURCE_SHORTAGE</strong>\r<dd>\rThe kernel could not allocate storage for an internal rpc state\rstructure.\r</dl>\r<h3>RELATED INFORMATION</h3>\r<p>\rFunctions:\r<a href="mach_rpc_return_trap.html"><strong>mach_rpc_return_trap</strong></a>,\r<a href="thread_activation_create.html"><strong>thread_activation_create</strong></a>,\r<a href="MP_allocate_subsystem.html"><strong>mach_port_allocate_subsystem</strong></a>,\r<a href="mach_subsystem_create.html"><strong>mach_subsystem_create</strong></a>.\r