DACS_ERR_T dacs_get_list ( void *dst_addr, dacs_dma_list_t *dst_dma_list, uint32_t dst_list_size, dacs_remote_mem_t src_remote_mem, dacs_dma_list_t *src_dma_list, uint32_t src_list_size, dacs_wid_t wid, DACS_ORDER_ATTR_T order_attr, DACS_BYTE_SWAP_T swap )
Call parameters | |
*dst_addr | A pointer to the base address of the destination memory buffer. |
*dst_dma_list | A pointer to a list of entries describing transfer locations in the destination buffer. |
dst_list_size | The number of elements in the destination DMA list. |
src_remote_mem | A handle for the remote source memory buffer. |
*src_dma_list | A pointer to a list of entries describing transfer locations in the source buffer. |
src_list_size | The number of elements in the source DMA list. |
wid | The communication wait identifier associated with this transfer. |
order_attr | Ordering attribute. Possible values are:
|
swap | The little-endian or big-endian byte-swapping flag.Possible values are:
|
The dacs_get_list service gets data from the remote memory area referenced by the dst_remote_mem struct, using the specified dma_list, and places it in the buffers specified by dst_dma_list.The interface supports the specification of two DMA lists, one of which must contain a single element. This applies to both Gather (dst_list_size=1) and Scatter to local (src_list_size=1) operations.
The destination address for each DMA operation is an effective address formed by the sum of dst_addr and the offset specified in each DMA list element. The assumption is that the destination buffers for the data are all within a contiguous buffer starting at dst_addr. For cases where the destination buffers may not be in a contiguous buffer with a known base address, a destination address of zero may be specified. In this case the actual address of the destination buffer can be used as the offset in the DMA list element.
This is an asynchronous service in that the data transfers are only initiated (but not completed) when it returns. To ensure completion of the transfer you should make a call to dacs_wait() or dacs_test() passing the wait identifier.
The target remote memory region must have been previously accepted by the caller with a call to dacs_remote_mem_accept().
Get list from a remote memory region with source list size = 1