spe_mfcio_getf - Place a get with fence DMA command on the proxy command queue of the SPE context .
include <libspe2.h>
int spe_mfcio_getf (spe_context_ptr_t spe, unsigned int lsa, void *ea, unsigned int size, unsigned int tag, unsigned int tid, unsigned int rid)
Parameters | |
spe | Specifies the SPE context of the proxy command queue into which the get command is to be placed. |
lsa | Specifies the starting local store destination address. |
ea | Specifies the starting effective address source address. |
size | Specifies the size, in bytes, to be transferred. |
tag | Specifies the tag ID used to identify the DMA command.
The range for valid tag IDs is 0:31. Based on the needs of the underlying
operating system implementations of this API can restrict the range. Note: (Linux) In
the Linux implementation of libspe2, the range for the valid tags is 0:15.
See Cell Broadband Engine Architecture, MFC Command Tag Register. |
tid | Specifies the transfer class identifier of the DMA command. |
rid | Specifies the replacement class identifier of the DMA command. |
Places a get with fence DMA command on the proxy command queue of the SPE context specified by spe
The spe_mfcio_getf command transfers size bytes of data starting at the effective address specified by ea to the local store address specified by lsa. The DMA is identified by the tag id specified by tag and performed according transfer class and replacement class specified by tid and rid respectively.
The spe_mfcio_getf function is identical to spe_mfcio_get except that it places a getf (get with fence) DMA command on the proxy command queue. The barrier form ensures that this command and all sequence commands with the same tag identifier as this command are locally ordered with respect to all previously issued commands with the same tag group and command queue.
The caller of this function must ensure that the address alignments and transfer size is in accordance with the limitation and restrictions of the Cell Broadband Engine Architecture.
On success, 0 (zero) is returned.
On error, -1 is returned and errno is set to indicate the error.
Possible errors include:
ESRCH | The specified SPE context is invalid. |