1<h2>i386_io_port_add</h2>
2<hr>
3<p>
4<strong>Function</strong> - Permit target thread to invoke operations on the specified device.
5<h3>SYNOPSIS</h3>
6<pre>
7<strong>kern_return_t   i386_io_port_add</strong>
8                <strong>(thread_act_t</strong>                        <var>target_act</var>,
9                 <strong>device_t</strong>                                <var>device</var><strong>);</strong>
10</pre>
11<h3>PARAMETERS</h3>
12<dl>
13<p>
14<dt> <var>target_act</var> 
15<dd>
16[in thread send right]
17Thread whose permission bitmap is to be set.
18<p>
19<dt> <var>device</var> 
20<dd>
21[in device send right]
22The device to which I/O instructions are to be
23permitted.
24</dl>
25<h3>DESCRIPTION</h3>
26<p>
27The <strong>i386_io_port_add</strong> function adds a device to the
28I/O permission bitmap for a 
29thread, thereby permitting the thread to execute I/O instructions against the
30device.
31<h3>NOTES</h3>
32<p>
33Normally, the thread must have called <strong>i386_io_port_add</strong> 
34for all devices to which it will execute I/O instructions.  However, possessing
35send rights to the <var>iopl</var> device port will cause the 
36<var>iopl</var> device to be automatically added to the 
37thread's I/O map upon first attempted access.  This is a backward
38compatibility feature for the DOS emulator.
39<h3>RETURN VALUES</h3>
40<p>
41Only generic errors apply.
42<h3>RELATED INFORMATION</h3>
43<p>
44Functions:
45<a href="i386_io_port_list.html"><strong>i386_io_port_list<strong></a>,
46<a href="i386_io_port_remove.html"><strong>i386_io_port_remove<strong></a>.
47