1<h2>mach_msg_descriptor</h2>
2<hr>
3<p>
4<strong>Structure</strong> - Specifies operations that must be performed on a given IPC message element.
5<h3>SYNOPSIS</h3>
6<pre>
7<strong>typedef struct</strong>
8<strong>{</strong>
9       <strong>void*</strong>                             <var>pad1</var><strong>;</strong>
10       <strong>mach_msg_size_t</strong>                   <var>pad2</var><strong>;</strong>
11       <strong>unsigned int</strong>                      <var>pad3</var><strong> : 24;</strong>
12       <strong>mach_msg_descriptor_type_t</strong>        <var>type</var><strong> : 8;</strong>
13<strong>} mach_msg_type_descriptor_t;</strong>
14
15<strong>typedef struct</strong>
16<strong>{</strong>
17       <strong>mach_port_t</strong>                       <var>name</var><strong>;</strong>
18       <strong>mach_msg_size_t</strong>                   <var>pad1</var><strong>;</strong>
19       <strong>unsigned int</strong>                      <var>pad2</var><strong> : 16;</strong>
20       <strong>mach_msg_type_name_t</strong>       <var>disposition</var><strong> : 8;</strong>
21       <strong>mach_msg_descriptor_type_t</strong>        <var>type</var><strong> : 8;</strong>
22<strong>} mach_msg_port_descriptor_t;</strong>
23
24<strong>typedef struct</strong>
25<strong>{</strong>
26       <strong>void*</strong>                          <var>address</var><strong>;</strong>
27       <strong>mach_msg_size_t</strong>                   <var>size</var><strong>;</strong>
28       <strong>boolean_t</strong>                   <var>deallocate</var><strong> : 8;</strong>
29       <strong>mach_msg_copy_options_t</strong>           <var>copy</var><strong> : 8;</strong>
30       <strong>unsigned int</strong>                      <var>pad1</var><strong> : 8;</strong>
31       <strong>mach_msg_descriptor_type_t</strong>        <var>type</var><strong> : 8;</strong>
32<strong>} mach_msg_ool_descriptor_t;</strong>
33
34<strong>typedef struct</strong>
35<strong>{</strong>
36       <strong>void*</strong>                           <var>address</var><strong>;</strong>
37       <strong>mach_msg_size_t</strong>                   <var>count</var><strong>;</strong>
38       <strong>boolean_t</strong>                    <var>deallocate</var><strong> : 8;</strong>
39       <strong>mach_msg_copy_options_t</strong>            <var>copy</var><strong> : 8;</strong>
40       <strong>mach_msg_type_name_t</strong>        <var>disposition</var><strong> : 8;</strong>
41       <strong>mach_msg_descriptor_type_t</strong>         <var>type</var><strong> : 8;</strong>
42<strong>} mach_msg_ool_ports_descriptor_t;</strong>
43
44<strong>typedef union</strong>
45<strong>{</strong>
46       <strong>mach_msg_port_descriptor_t</strong>             <var>port</var><strong>;</strong>
47       <strong>mach_msg_ool_descriptor_t</strong>       <var>out_of_line</var><strong>;</strong>
48       <strong>mach_msg_ool_ports_descriptor_t</strong>   <var>ool_ports</var><strong>;</strong>
49       <strong>mach_msg_type_descriptor_t</strong>             <var>type</var><strong>;</strong>
50<strong>} mach_msg_descriptor_t;</strong>
51</pre>
52<h3>FIELDS</h3>
53<dl>
54<dt> <var>name</var>
55<dd>
56For single port descriptors, the name of the port whose right is being 
57sent.
58     <p>
59<dt> <var>disposition</var>
60<dd>
61For single port or out-of-line port array descriptors, the IPC processing 
62to be done for the rights for the named ports.
63     <p>
64<dt> <var>address</var>
65<dd>
66For out-of-line data or port array descriptors, the address of the 
67out-of-line data or port (name) array.
68     <p>
69<dt> <var>size</var>
70<dd>
71For out-of-line data descriptors, the size of the out-of-line region, in 
72bytes.
73     <p>
74<dt> <var>deallocate</var>
75<dd>
76For out-of-line data descriptors, true if the set of pages containing the 
77array should be de-allocated when the message is sent.
78     <p>
79<dt> <var>copy</var>
80<dd>
81For out-of-line descriptors, a description of the method by which the 
82data should be copied.
83     <p>
84<dt> <var>count</var>
85<dd>
86For out-of-line port array descriptors, the number of port names in the 
87array.
88     <p>
89<dt> <var>type</var>
90<dd>
91For any type of descriptor, the type of descriptor.
92     <p>
93<dt> <var>port</var>
94<dd>
95A descriptor that describes a single port right.
96     <p>
97<dt> <var>out_of_line</var>
98<dd>
99A descriptor that describes an out-of-line data array.
100     <p>
101<dt> <var>ool_ports</var>
102<dd>
103A descriptor that describes an out-of-line port array.
104</dl>
105<h3>DESCRIPTION</h3>
106<p>
107A <strong>mach_msg_descriptor</strong> structure describes the processing
108to be performed 
109for an element of kernel-processed data in a Mach message.
110<h3>RELATED INFORMATION</h3>
111<p>
112Functions:
113<a href="mach_msg.html"><strong>mach_msg</strong></a>.
114<p>
115Data Structures:
116<a href="mach_msg_header.html"><strong>mach_msg_header</strong></a>.
117