]> git.saurik.com Git - apple/xnu.git/blame - osfmk/man/thread_get_exception_ports.html
xnu-2422.1.72.tar.gz
[apple/xnu.git] / osfmk / man / thread_get_exception_ports.html
CommitLineData
13fec989
A
1<h2>thread_get_exception_ports</h2>
2<hr>
3<p>
4<strong>Function</strong> - Return a send right to an exception port.
5<h3>SYNOPSIS</h3>
6<pre>
7<strong>kern_return_t thread_get_exception_ports</strong>
8 <strong>(thread_act_t</strong> <var>thread</var>,
9 <strong>exception_mask_t</strong> <var>exception_types</var>,
10 <strong>exception_mask_array_t</strong> <var>old_exception_masks</var>,
11 <strong>old_exception_masks</strong> <var>old_exception_count</var>,
12 <strong>exception_port_array_t</strong> <var>old_exception_ports</var>,
13 <strong>exception_behavior_array_t</strong> <var>old_behaviors</var>,
14 <strong>exception_flavor_array_t</strong> <var>old_flavors</var><strong>);</strong>
15</pre>
16<h3>PARAMETERS</h3>
17<dl>
18<p>
19<dt> <var>thread</var>
20<dd>
21[in thread send right]
22The thread for which to return the exception
23ports.
24<p>
25<dt> <var>exception_types</var>
26<dd>
27[in scalar]
28A flag word indicating the types of exceptions for which the
29exception ports are desired:
30<dl>
31<p>
32<dt> <strong>EXC_MASK_BAD_ACCESS</strong>
33<dd>
34Could not access memory.
35<p>
36<dt> <strong>EXC_MASK_BAD_INSTRUCTION</strong>
37<dd>
38Instruction failed. Illegal or undefined instruction or operand.
39<p>
40<dt> <strong>EXC_MASK_ARITHMETIC</strong>
41<dd>
42Arithmetic exception.
43<p>
44<dt> <strong>EXC_MASK_EMULATION</strong>
45<dd>
46Emulation instruction. Emulation support instruction
47encountered.
48<p>
49<dt> <strong>EXC_MASK_SOFTWARE</strong>
50<dd>
51Software generated exception.
52<p>
53<dt> <strong>EXC_MASK_BREAKPOINT</strong>
54<dd>
55Trace, breakpoint, etc.
56<p>
57<dt> <strong>EXC_MASK_SYSCALL</strong>
58<dd>
59System call requested.
60<p>
61<dt> <strong>EXC_MASK_MACH_SYSCALL</strong>
62<dd>
63System call with a number in the Mach call range requested.
64</dl>
65<p>
66<dt> <var>old_exception_masks</var>
67<dd>
68[out array of <var>exception_mask_t</var>]
69An array, each element being a mask
70specifying for which exception types the corresponding element of the
71other arrays apply.
72<p>
73<dt> <var>old_exception_count</var>
74<dd>
75[pointer to in/out scalar]
76On input, the maximum size of the array
77buffers; on output, the number of returned <exception type mask,
78exception port, behavior, flavor> sets returned.
79<p>
80<dt> <var>old_exception_ports</var>
81<dd>
82[out array of exception send rights]
83The returned exception ports.
84<p>
85<dt> <var>old_behaviors</var>
86<dd>
87[out array of <var>exception_behavior_t</var>]
88The type of exception message to
89be sent. Defined types are:
90<dl>
91<p>
92<dt> <strong>EXCEPTION_DEFAULT</strong>
93<dd>
94Send a <strong>catch_exception_raise</strong> message including the thread
95identity.
96<p>
97<dt> <strong>EXCEPTION_STATE</strong>
98<dd>
99Send a <strong>catch_exception_raise_state</strong> message including the
100thread state.
101<p>
102<dt> <strong>EXCEPTION_STATE_IDENTITY</strong>
103<dd>
104Send a <strong>catch_exception_raise_state_identity</strong> message
105including the thread identity and state.
106</dl>
107<p>
108<dt> <var>old_flavors</var>
109<dd>
110[out array of <var>thread_state_flavor_t</var>]
111The type of state to be sent with
112the exception message. These types are defined in \*L<mach/thread_states.h>\*O.
113</dl>
114<h3>DESCRIPTION</h3>
115<p>
116The <strong>thread_get_exception_ports</strong> function returns send
117rights for a specified
118set of exception ports belonging to <var>thread</var>. The call returns
119a set of quadruples
120<exception type mask, exception port, behavior, flavor> for each unique set of
121<exception port, behavior, flavor> in effect for the thread where
122the exception
123type mask indicates for which exception types the other values apply.
124<h3>RETURN VALUES</h3>
125<dl>
126<p>
127<dt> <strong>KERN_EXCEPTION_PROTECTED</strong>
128<dd>
129One of the requested exception ports is protected and cannot be returned.
130</dl>
131<h3>RELATED INFORMATION</h3>
132<p>
133Functions:
134<a href="mach_thread_self.html"><strong>mach_thread_self</strong></a>,
135<a href="task_get_exception_ports.html"><strong>task_get_exception_ports</strong></a>,
136<a href="task_set_exception_ports.html"><strong>task_set_exception_ports</strong></a>,
137<a href="task_swap_exception_ports.html"><strong>task_swap_exception_ports</strong></a>,
138<a href="thread_create.html"><strong>thread_create</strong></a>,
139<a href="thread_set_exception_ports.html"><strong>thread_set_exception_ports</strong></a>,
140<a href="TS_exception_ports.html"><strong>thread_swap_exception_ports</strong></a>,
141<a href="catch_exception_raise.html"><strong>catch_exception_raise</strong></a>.