1*a325d9c4SApple OSS Distributions<h2>device_open</h2> 2*a325d9c4SApple OSS Distributions<hr> 3*a325d9c4SApple OSS Distributions<p> 4*a325d9c4SApple OSS Distributions<strong>Function</strong> - Establish a connection to a device. 5*a325d9c4SApple OSS Distributions<h3>SYNOPSIS</h3> 6*a325d9c4SApple OSS Distributions<pre> 7*a325d9c4SApple OSS Distributions<strong>#include<device/device.h></strong> 8*a325d9c4SApple OSS Distributions 9*a325d9c4SApple OSS Distributions<strong>kern_return_t device_open</strong> 10*a325d9c4SApple OSS Distributions <strong>(mach_port_t</strong> <var>master_port</var>, 11*a325d9c4SApple OSS Distributions <strong>mach_port_t</strong> <var>ledger</var>, 12*a325d9c4SApple OSS Distributions <strong>dev_mode_t</strong> <var>mode</var>, 13*a325d9c4SApple OSS Distributions <strong>security_token_t</strong> <var>security_id</var>, 14*a325d9c4SApple OSS Distributions <strong>dev_name_t</strong> <var>name</var>, 15*a325d9c4SApple OSS Distributions <strong>mach_port_t</strong> <var>device</var><strong>);</strong> 16*a325d9c4SApple OSS Distributions 17*a325d9c4SApple OSS Distributions 18*a325d9c4SApple OSS Distributions<strong>#include<device/device_request.h></strong> 19*a325d9c4SApple OSS Distributions 20*a325d9c4SApple OSS Distributions<strong>kern_return_t device_open_request</strong> 21*a325d9c4SApple OSS Distributions <strong>(mach_port_t</strong> <var>master_port</var>, 22*a325d9c4SApple OSS Distributions <strong>mach_port_t</strong> <var>reply_port</var>, 23*a325d9c4SApple OSS Distributions <strong>mach_port_t</strong> <var>ledger</var>, 24*a325d9c4SApple OSS Distributions <strong>dev_mode_t</strong> <var>mode</var>, 25*a325d9c4SApple OSS Distributions <strong>security_token_t</strong> <var>security_id</var>, 26*a325d9c4SApple OSS Distributions <strong>dev_name_t</strong> <var>name</var><strong>);</strong> 27*a325d9c4SApple OSS Distributions 28*a325d9c4SApple OSS Distributions 29*a325d9c4SApple OSS Distributions<strong>kern_return_t ds_device_open_reply</strong> 30*a325d9c4SApple OSS Distributions <strong>(mach_port_t</strong> <var>reply_port</var>, 31*a325d9c4SApple OSS Distributions <strong>kern_return_t</strong> <var>return_code</var>, 32*a325d9c4SApple OSS Distributions <strong>mach_port_t</strong> <var>device</var><strong>);</strong> 33*a325d9c4SApple OSS Distributions</pre> 34*a325d9c4SApple OSS Distributions<h3>PARAMETERS</h3> 35*a325d9c4SApple OSS Distributions<dl> 36*a325d9c4SApple OSS Distributions<p> 37*a325d9c4SApple OSS Distributions<dt> <var>master_port</var> 38*a325d9c4SApple OSS Distributions<dd> 39*a325d9c4SApple OSS Distributions[in device-master send right] 40*a325d9c4SApple OSS DistributionsThe master device port. This port is 41*a325d9c4SApple OSS Distributionsprovided to the bootstrap task. 42*a325d9c4SApple OSS Distributions<p> 43*a325d9c4SApple OSS Distributions<dt> <var>reply_port</var> 44*a325d9c4SApple OSS Distributions<dd> 45*a325d9c4SApple OSS Distributions[in reply receive (to be converted to send-once) right] 46*a325d9c4SApple OSS DistributionsThe port to 47*a325d9c4SApple OSS Distributionswhich a reply is to be sent when the device is open. 48*a325d9c4SApple OSS Distributions<p> 49*a325d9c4SApple OSS Distributions<dt> <var>ledger</var> 50*a325d9c4SApple OSS Distributions<dd> 51*a325d9c4SApple OSS Distributions[pointer to a ledger send right] 52*a325d9c4SApple OSS DistributionsResource ledger from which the device will draw its resources. 53*a325d9c4SApple OSS Distributions<p> 54*a325d9c4SApple OSS Distributions<dt> <var>mode</var> 55*a325d9c4SApple OSS Distributions<dd> 56*a325d9c4SApple OSS Distributions[in scalar] 57*a325d9c4SApple OSS DistributionsOpening mode. This is the bit-wise <strong>OR</strong> of the following 58*a325d9c4SApple OSS Distributionsvalues: 59*a325d9c4SApple OSS Distributions<dl> 60*a325d9c4SApple OSS Distributions<p> 61*a325d9c4SApple OSS Distributions<dt> <strong>D_READ</strong> 62*a325d9c4SApple OSS Distributions<dd> 63*a325d9c4SApple OSS DistributionsRead access 64*a325d9c4SApple OSS Distributions<p> 65*a325d9c4SApple OSS Distributions<dt> <strong>D_WRITE</strong> 66*a325d9c4SApple OSS Distributions<dd> 67*a325d9c4SApple OSS DistributionsWrite access 68*a325d9c4SApple OSS Distributions<p> 69*a325d9c4SApple OSS Distributions<dt> <strong>D_NODELAY</strong> 70*a325d9c4SApple OSS Distributions<dd> 71*a325d9c4SApple OSS DistributionsDo not delay on open 72*a325d9c4SApple OSS Distributions</dl> 73*a325d9c4SApple OSS Distributions<p> 74*a325d9c4SApple OSS Distributions<dt> <var>security_id</var> 75*a325d9c4SApple OSS Distributions<dd> 76*a325d9c4SApple OSS Distributions[in scalar] 77*a325d9c4SApple OSS DistributionsThe security ID that tasks attempting to use this device port 78*a325d9c4SApple OSS Distributionsmust have. A zero value indicates all identities. 79*a325d9c4SApple OSS Distributions<p> 80*a325d9c4SApple OSS Distributions<dt> <var>name</var> 81*a325d9c4SApple OSS Distributions<dd> 82*a325d9c4SApple OSS Distributions[pointer to in array of <var>char</var>] 83*a325d9c4SApple OSS DistributionsName of the device to open. 84*a325d9c4SApple OSS Distributions<p> 85*a325d9c4SApple OSS Distributions<dt> <var>return_code</var> 86*a325d9c4SApple OSS Distributions<dd> 87*a325d9c4SApple OSS Distributions[in scalar] 88*a325d9c4SApple OSS DistributionsStatus of the open. 89*a325d9c4SApple OSS Distributions<p> 90*a325d9c4SApple OSS Distributions<dt> <var>device</var> 91*a325d9c4SApple OSS Distributions<dd> 92*a325d9c4SApple OSS Distributions[out device send right, in for asynchronous form] 93*a325d9c4SApple OSS DistributionsThe returned device 94*a325d9c4SApple OSS Distributionsport. 95*a325d9c4SApple OSS Distributions</dl> 96*a325d9c4SApple OSS Distributions<h3>DESCRIPTION</h3> 97*a325d9c4SApple OSS Distributions<p> 98*a325d9c4SApple OSS DistributionsThe <strong>device_open</strong> function opens a device object. The 99*a325d9c4SApple OSS Distributionsopen operation of the 100*a325d9c4SApple OSS Distributionsdevice is invoked, if the device is not already open. The open 101*a325d9c4SApple OSS Distributionscount for the device 102*a325d9c4SApple OSS Distributionsis incremented. Each open for a device returns a port, the allowed 103*a325d9c4SApple OSS Distributionsoperations upon which being governed by <var>mode</var>. The port is not 104*a325d9c4SApple OSS Distributionsdistinct. 105*a325d9c4SApple OSS Distributions<h3>RETURN VALUES</h3> 106*a325d9c4SApple OSS Distributions<p> 107*a325d9c4SApple OSS DistributionsOnly generic errors apply. 108*a325d9c4SApple OSS Distributions<h3>RELATED INFORMATION</h3> 109*a325d9c4SApple OSS Distributions<p> 110*a325d9c4SApple OSS DistributionsFunctions: 111*a325d9c4SApple OSS Distributions<a href="device_close.html"><strong>device_close</strong></a>, 112*a325d9c4SApple OSS Distributions<a href="device_reply_server.html"><strong>device_reply_server</strong></a>. 113