## mach_msg_descriptor

Structure - Specifies operations that must be performed on a given IPC message element.

### SYNOPSIS

    typedef struct
    {
           void*                             pad1;
           mach_msg_size_t                   pad2;
           unsigned int                      pad3 : 24;
           mach_msg_descriptor_type_t        type : 8;
    } mach_msg_type_descriptor_t;

    typedef struct
    {
           mach_port_t                       name;
           mach_msg_size_t                   pad1;
           unsigned int                      pad2 : 16;
           mach_msg_type_name_t       disposition : 8;
           mach_msg_descriptor_type_t        type : 8;
    } mach_msg_port_descriptor_t;

    typedef struct
    {
           void*                          address;
           mach_msg_size_t                   size;
           boolean_t                   deallocate : 8;
           mach_msg_copy_options_t           copy : 8;
           unsigned int                      pad1 : 8;
           mach_msg_descriptor_type_t        type : 8;
    } mach_msg_ool_descriptor_t;

    typedef struct
    {
           void*                           address;
           mach_msg_size_t                   count;
           boolean_t                    deallocate : 8;
           mach_msg_copy_options_t            copy : 8;
           mach_msg_type_name_t        disposition : 8;
           mach_msg_descriptor_type_t         type : 8;
    } mach_msg_ool_ports_descriptor_t;

    typedef union
    {
           mach_msg_port_descriptor_t             port;
           mach_msg_ool_descriptor_t       out_of_line;
           mach_msg_ool_ports_descriptor_t   ool_ports;
           mach_msg_type_descriptor_t             type;
    } mach_msg_descriptor_t;

### FIELDS

name
  For single port descriptors, the name of the port whose right is being sent.

disposition
  For single port or out-of-line port array descriptors, the IPC processing to be done for the rights for the named ports.

address
  For out-of-line data or port array descriptors, the address of the out-of-line data or port (name) array.

size
  For out-of-line data descriptors, the size of the out-of-line region, in bytes.

deallocate
  For out-of-line data descriptors, true if the set of pages containing the array should be de-allocated when the message is sent.

copy
  For out-of-line descriptors, a description of the method by which the data should be copied.

count
  For out-of-line port array descriptors, the number of port names in the array.

type
  For any type of descriptor, the type of descriptor.

port
  A descriptor that describes a single port right.

out_of_line
  A descriptor that describes an out-of-line data array.

ool_ports
  A descriptor that describes an out-of-line port array.

### DESCRIPTION

A mach_msg_descriptor structure describes the processing to be performed for an element of kernel-processed data in a Mach message.

### RELATED INFORMATION

Functions: mach_msg.

Data Structures: mach_msg_header.