RISC OS Open
Safeguarding the past, present and future of RISC OS for everyone
ROOL
Home | News | Downloads | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

DMA_TerminateTransfer (changes)

Showing changes from revision #1 to #2: Added | Removed | Changed

DMAManager
» SWI Calls
» DMA_TerminateTransfer

DMA_TerminateTransfer

(SWI &46143)
Entry
R0 Pointer to an error block
R1 DMA tag
Exit
- All registers preserved

Use

This SWI is used to terminate a DMA transfer originally queued by DMA_QueueTransfer.

Notes

Before a transfer is terminated, the following steps are followed:

  • If the transfer to be terminated is currently active: active;
    • remove DMAManager will stop the transfer from within queue theDMA controller
    • The DMA disable callback will be called (to allow the device to de-assert its DMA request line)
  • If The transfer is will currently be active; removed from the queue associated with the logical channel, allowing the transfer behind it to start as necessary.
    • stop If the transfer was blocking the logical channel (i.e. the transfer had previously been suspended byDMA_SuspendTransfer with bit 0 of R0 clear) then the channel will be un-blocked and will resume processing its transfer queue
    • the DMAManager calls the disable DMA control routine
  • The DMA completed callback will be called, with V set and R0 containing a pointer to the supplied error block

The DMAManager then calls the completed control routine with V set and R0 pointing to the supplied error block.

If the terminated DMA transfer request was blocking a logical channel, then the logical channel is unblocked and its queued transfers are started again.

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).

See also

  • DMA_QueueTransfer
  • DMA_SuspendTransfer
Revised on September 14, 2017 13:48:00 by Jeffrey Lee (213) (62.252.28.250)
Edit | Back in time (1 revision) | Hide changes | History | Views: Print | Source | Linked from: HALDeviceAudio_AudC, DMAManager SWI Calls, DMA_SuspendTransfer, DMA_QueueTransfer

Search the Wiki

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
Site design © RISC OS Open Limited 2018 except where indicated
The RISC OS Open Instiki theme is based on Insitki's default layout

Valid XHTML 1.0  |  Valid CSS

Instiki 0.19.1(MML+)
This site runs on Rails

Hosted by Arachsys