Showing changes from revision #4 to #5:
Added | Removed | Changed
Entry | |
---|---|
R1 | 12 (&0C) |
Exit | |
---|---|
All registers preserved to pass on, else | |
R1 | 0 (claim service) |
This service is issued by a module running as a foreground task (not IRQ), that wants to claim the FIQ hardware vector.
Under RISC OS the FIQ vector can only be used by one claimant at a time. Once the vector has been claimed, the claimant is required to write their FIQ handler code directly to the processor vectors. 228 bytes of space are available to store the code, starting at (vector base + &1C). The vector base can be determined by examining bit 20 of R0 returned by OS_PlatformFeatures 0, or by OS_PlatformFeatures 32. Once the handler code is installed the driver can safely enable FIQs in the device and the system interrupt controller.
If you are the current owner of the FIQ vector and you receive this service call, you must release the vector and claim the service call. Because this call is made in the foreground, it is permissible to block for a short period of time until it is safe for you to stop using the vector.