The SEND_PACKET component of the user-provided MPCI layer is called when RTEMS needs to send a packet containing a message to another node. This component should be adhere to the following prototype:
rtems_mpci_entry user_mpci_send_packet( uint32_t node, rtems_packet_prefix **packet );
where node is the node number of the destination and packet is the address of a packet which containing a message. If the packet cannot be successfully sent, the fatal error manager should be invoked.
If node is set to zero, the packet is to be broadcasted to all other nodes in the system. Although some MPCI layers will be built upon hardware which support a broadcast mechanism, others may be required to generate a copy of the packet for each node in the system.
Many MPCI layers use the packet_length
field of the
rtems_packet_prefix
portion
of the packet to avoid sending unnecessary data. This is especially
useful if the media connecting the nodes is relatively slow.
The to_convert field of the MP_packet_prefix portion of the packet indicates
how much of the packet (in uint32_t
's) may require
conversion in a heterogeneous system.
Copyright © 1988-2008 OAR Corporation