Visible to Intel only — GUID: iga1446069880595
Ixiasoft
Visible to Intel only — GUID: iga1446069880595
Ixiasoft
31.8.5. alt_msgdma_extended_descriptor_sync_transfer
Prototype: | int alt_msgdma_extended_descriptor_sync_transfer(alt_msgdma_dev *dev, alt_msgdma_extended_descriptor *desc) |
Include: | < modular_sgdma_dispatcher.h >, < altera_msgdma_csr_regs.h>, <altera_msgdma_descriptor_regs.h>, <sys/alt_errno.h>, <sys/alt_irq.h>, <io.h> |
Parameters: | *dev — a pointer to msgdma instance. *desc — a pointer to an extended descriptor structure |
Returns: | “0” for success, “error” indicates errors or conditions causing msgdma stop issuing commands to hosts, suggest checking the bit set in the error with CSR status register.”-EPERM” indicates operation not permitted due to descriptor type conflict. “-ETIME” indicates Time out and skipping the looping after 5 msec.
|
Description: | An extended descriptor needs to be constructed and passing as a parameter pointer to *desc when calling this function. This function will call helper function “alt_msgdma_descriptor_sync_transfer” to start-commencing a blocking transfer of one extended descriptor at a time. If the FIFO buffer for one of read or write is full at the time of this call, the routine will wait until free FIFO buffer available for continue processing or 5 msec time out. The function will return “error” if errors or conditions causing the dispatcher stop issuing the commands to both read and write hosts before both read and write command buffers are empty. It is the responsibility of the application developer to check errors and completion status. -ETIME will be returned if the time spending for waiting the FIFO buffer, writing descriptor to the dispatcher and any pending transfer to complete take longer than 5msec. |