h6. [[DMAManager]] h6(. » [[DMAManager SWI Calls|SWI Calls]] h6((. » DMA_TerminateTransfer h2. DMA_TerminateTransfer h5. (SWI &46143) |_<^{width:4em}. Entry | | |<^. R0 |<^. Pointer to an error block | |<^. R1 |<^. DMA tag | |_<^{width:4em}. Exit | | |<^. - |<^. All registers preserved | h4. Use This SWI is used to terminate a DMA transfer originally queued by [[DMA_QueueTransfer]]. h4. Notes Before a transfer is terminated, the following steps are followed: * If the transfer is active: ** DMAManager will stop the transfer within the DMA controller ** The [[DMA disable callback]] will be called (to allow the device to de-assert its DMA request line) * The transfer will be removed from the queue associated with the logical channel, allowing the transfer behind it to start as necessary. ** If the transfer was blocking the logical channel (i.e. the transfer had previously been suspended by [[DMA_SuspendTransfer]] with bit 0 of R0 clear) then the channel will be un-blocked and will resume processing its transfer queue * The [[DMA completed callback]] will be called, with V set and R0 containing a pointer to the supplied error block An error block is returned if the DMA tag is invalid. This documentation only covers the RISC OS 5 version of the DMAManager SWIs. For other OS versions, consult the appropriate PRM volume (e.g. volume 5a). h4. See also * [[DMA_QueueTransfer]] * [[DMA_SuspendTransfer]]