Showing changes from revision #0 to #1:
Added | Removed | Changed
Entry | |
---|---|
R0 | Pointer to word-aligned list of (start, end) address pairs |
R1 | Pointer to end of list (past last valid entry) |
R2 | Total amount of memory to be synchronised |
Exit | |
---|---|
R0 | Corrupt |
A variant of IMB_Range that accepts a list of address ranges.
If you have several areas to synchronise then using this call may result in significant performance gains, both from reducing the function call overhead and from optimisations in the algorithm itself (e.g. only flushing the instruction cache once for StrongARM).
As with IMB_Range, start & end addresses are inclusive-exclusive and must be cache line aligned. The list must contain at least one entry, and must not contain zero-length entries.
The total length given in R2 is used to decide whether a full IMB (IMB_Full) be performed instead.