The data communication services transfer data from one process to another.
To accommodate transfers across systems with different data representation
formats (endian-ness), the services provide an option for byte swapping. The
types of byte swapping supported are:
- DACS_BYTE_SWAP_DISABLE
- no byte-swapping .
- DACS_BYTE_SWAP_HALF_WORD
- byte-swapping for halfwords (2 bytes).
- DACS_BYTE_SWAP_WORD
- byte-swapping for words (4 bytes).
- DACS_BYTE_SWAP_DOUBLE_WORD
- byte-swapping for double words (8 bytes).
Different platforms and implementations may also have different
alignment restrictions for the data being transferred. The data communication
services will return the
DACS_ERR_NOT_ALIGNED error code
when those alignment restrictions are not met.
Note: On DaCS for Cell BE the services support data transfers of
any size other than zero. DaCS enforces no size limit, so the size of transfer
that can actually be performed is only restricted by the inherent system limitations.
Data transfers that are smaller than 16 bytes must be aligned according to
the size of the transfer, rounded down to the nearest power of two at or below
the size. Data transfers that are 16 bytes or larger must be 16 byte aligned.
For DMA list operations, however, the transfer size for each element must
be a multiple of 16.
The data communication services require that the caller specify either
the source or destination DE and PID, as appropriate. As a convenience to
the programmer, the special values
DACS_DE_PARENT and
DACS_PID_PARENT are
defined, which can be used to refer to the parent DE and PID respectively.
The special values DACS_DE_SELF and DACS_PID_SELF are
also provided for those interfaces where the caller is the target of the operation.Note: In SDK 3.0 direct communication is only
allowed between a parent and its children. Attempts to communicate to a process
which is not the parent or child of the initiator will result in an error
of DACS_ERR_INVALID_TARGET.
Three different data communication models are supported: remote direct
memory access (rDMA), message passing, and mailboxes.