Showing changes from revision #0 to #1:
Added | Removed | Changed
Entry | |
---|---|
R0 | Flags: |
Bit 0: 1 => Sync based on response mask/value pair | |
Bit 1: 1 => Sync based on callback R0 | |
Bit 2: 1 => Sync based on callback R12 | |
Bit 3: 1 => Sync based on callback pointer | |
Other bits reserved, should be zero | |
R1 | Response mask |
R2 | Response value |
R3 | Response callback R0 |
R4 | Response callback R12 |
R5 | Response callback function pointer |
Exit | |
---|---|
All registers preserved |
This SWI can be used to block until all responses (of a given type) have been received. This can be used, e.g. during your modules finalisation sequence to make sure that all pending responses have been received.
For each flag specified in R0, all the criteria must match for BCMSupport to consider the pending response to be one that it needs to block waiting for. Entries which have a null callback function pointer can still match on the R0 and R12 values, allowing them to be used as unique tokens by your code.
To block for receipt of all messages, you can set bit 0 of R0 and set both R1 and R2 to zero.
This SWI is only guaranteed to block for the receipt of messages which were sent prior to the SWI being called. New messages which are sent after the SWI has begun executing may not be waited for.
This SWI must not be used from within one of the message callback functions.