Showing changes from revision #3 to #4:
Added | Removed | Changed
Entry | |
---|---|
R0 | Poll Mask |
R1 | Pointer to 256 byte block |
R2 | Earliest |
R3 | Pointer to pollword in RMA (if R0 bit22 is set) |
Exit | |
---|---|
R0 | Reason Code |
R1 | Pointer to block of data |
R2 | Senders task handle |
The purpose of this call is poll the Wimp to check for any system wide events that the application may need to respond to, but will return control to this task as soon as possible after the time stated in R2.
Control This is call returned effectively back carries to out the task same when function it as receives a Null_Reason Wimp_Poll , code except from that Wimp_PollIdle. anyNull reason codes that occur prior to the time given in R2 will not be delivered to the task. Delivery of other events is not affected.
This call provides effectively tasks carries which out want exactly to perform actions at scheduled times an efficient way to sleep until the same next function action as is due to occur (at which point the Wimp will ‘wake up’ the task by delivering the null poll event). Note however that there is no guarantee that your task will regain control at precisely the time you specify. E.g. the system could be busy servicing another task, or a single-tasking program could have started.Wimp_Poll, with the added functionality of returning control back to the task as soon as possible after the time in R2.
Control If upon calling Wimp_PollIdle an escape condition is detected, the Wimp will not cancel be returned back to the task condition until and the disable time future stated escape in conditions. R2, unless some specific action has to be performed.
After the task has regained control upon return of Wimp_PollIdle, the value in R2 should be incremented, and call Wimp_PollIdle again.
If upon calling Wimp_PollIdle an escape condition is detected, the Wimp will cancel and disable future escape conditions.
Any errors that occur inside Wimp_PollIdle are reported by the Wimp itself and not passed back to the applications. The only exception to this rule is when an error was caused due to bad parameter usage.