DACS_ERR_T dacs_put_list ( dacs_remote_mem_t dst_remote_mem, dacs_dma_list_t *dst_dma_list, uint32_t dst_list_size, void *src_addr, 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_remote_mem | The remote memory handle for the destination buffer. |
*dst_dma_list | A pointer to a list of entries describing the transfer locations in the destination buffer. |
dst_list_size | The number of elements in the destination DMA list. |
src_addr | The base address of the source memory buffer. |
*src_dma_list | A pointer to a list of entries describing the transfer locations in the source buffer. |
src_list_size | The number of elements in the source DMA list. |
wid | The communications 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_put_list service pushes data from the memory blocks specified in the src_dma_list to the remote memory area referenced by the dst_remote_mem handle using the specified dst_dma_list.The interface supports the specification of two DMA lists, one of which must contain a single element. This applies to both Scatter (src_list_size=1) and Gather to Remote (dst_list_size=1) operations.
The source address for each DMA operation is an effective address formed by the sum of src_addr and the offset specified in each DMA list element. The assumption is that all of the source data is in a contiguous buffer starting at src_addr. For cases where the source data may not be in a contiguous buffer with a known base address, a source address of zero may be specified. In this case the actual address of the data 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 on this DE you must make a call to dacs_wait() or dacs_test() with the same wait identifier. This ensures that the local buffers and transfer list parameter can be changed or reused.
The target remote memory region must have been previously accepted by the caller with a call to dacs_remote_mem_accept().
Put list to a remote memory region with src_list_size = 1