Showing changes from revision #7 to #8:
Added | Removed | Changed
Entry | |
---|---|
R0 | Pointer to address to call |
R1 | Value of R12 to be called with |
Exit | |
---|---|
R0 | Preserved |
R1 | Preserved |
The purpose of this call is to add a transient CallBack to the list.
This call places a transient callback to the list of functions which want to be called as soon asRISC OS is not busy. It is usually used by an interrupt routine that needs to do complex processing that would take too long in an interrupt, or that needs to call a non-re-entrant SWI.
OS_AddCallBack tells RISC OS that the interrupt routine wishes to be ‘called back’. This can happen when RISC OS is being threaded out of – that is, when it enters User mode with interrupts enabled (either after a SWI is called, or after an interrupt). It can also happen when RO is idling, for example, while it is waiting in OS_ReadC. Note that, unlike non-transient callbacks, there is no requirement for the SVC stack to be empty for a transient callback to be triggered.
Transient CallBacks can safely be used by many clients.
A routine called by this mechanism is called in SVC mode with interrupts enabled, must preserve ALL registers and return by MOV PC,R14
.