Showing changes from revision #3 to #4:
Added | Removed | Changed
Entry | |
---|---|
R1 | 71 (&47) |
Exit | |
---|---|
R1 | 0 to claim service, else preserved to pass on |
This service is issued by a module running as a background task (i.e. IRQ) that wants to claim the FIQ hardware vector, or a foreground task that wants to poll availability of the vector.
Unlike Service_ClaimFIQ, the current owner of the FIQ vector is not required to release the vector when he receives this call. Code wanting to claim the vector from the background must pay attention to whether the service call was claimed in order to determine whether the vector was released or not. If the service call was claimed (R1=0) then the FIQ vector was released and the caller is now the new owner. If the service call was not claimed (R1<>0) then the current claimant is retaining ownership.
If you are the current owner of the FIQ vector and you receive this call, and you wish to relinquish the vector, then you should do so and signal this by claiming this service. Because this call may be made from the background, you should only claim the call if you can release the vector without blocking.