spe_mfcio_putb

NAME

spe_mfcio_putb - Place a put DMA command with a barrier on the proxy command queue of the SPE context.

SYNOPSIS

#include <libspe2.h>

int spe_mfcio_putb (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 in which the put command is to be placed.
lsa Specifies the starting local store source address.
ea Specifies the starting effective address destination 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.

DESCRIPTION

Place a put DMA command with a barrier on the proxy command queue of the SPE context specified by spe.

The spe_mfcio_putb function is identical to spe_mfcio_put except that it places a putb (put with barrier) DMA command on the proxy command queue. The barrier form ensures that this command and all sequential 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 alignment and transfer size is in accordance with the limitation and restrictions of the Cell Broadband Engine Architecture.

RETURN VALUE

On success, 0 (zero) is returned.

EXIT STATUS

On error, -1 is returned and errno is set to indicate the error.

Possible errors include:

ESRCH The specified SPE context is invalid.