Various functions for cache consistency.
More...
Various functions for cache consistency.
These functions shall be used to ensure that
- all blocks (e.g. CPU cores, devices, DMA engines) are guaranteed to see the same copy of a memory location (Point of Coherency – PoC),
- instruction and data caches of a core are guaranteed to see the same copy of a memory location (Point of Unification – PoU).
Certain functions are NOPs on certain architectures, for example on Intel it's not necessary to explicitly make caches coherent to PoU.
◆ l4_cache_clean_data()
| L4_BEGIN_DECLS int l4_cache_clean_data |
( |
unsigned long |
start, |
|
|
unsigned long |
end |
|
) |
| |
|
inline |
Cache clean a range in D-cache; writes back to PoC.
- Parameters
-
| start | Start of range (inclusive) |
| end | End of range (exclusive) |
- Return values
-
| 0 | on success |
| -EFAULT | in the case of an unresolved page fault in the given area |
Writes back any dirty cache lines in the range but leaves them in the cache and marks the cached copies clean.
- Examples
- examples/libs/l4re/c++/shared_ds/ds_clnt.cc.
Definition at line 70 of file cache.h.
◆ l4_cache_coherent()
| int l4_cache_coherent |
( |
unsigned long |
start, |
|
|
unsigned long |
end |
|
) |
| |
|
inline |
Make memory coherent between I-cache and D-cache; writes back to PoU.
- Parameters
-
| start | Start of range (inclusive) |
| end | End of range (exclusive) |
- Return values
-
| 0 | on success |
| -EFAULT | in the case of an unresolved page fault in the given area |
Definition at line 94 of file cache.h.
◆ l4_cache_dma_coherent()
| int l4_cache_dma_coherent |
( |
unsigned long |
start, |
|
|
unsigned long |
end |
|
) |
| |
|
inline |
Make memory coherent for use with external memory; writes back to PoC.
- Parameters
-
| start | Start of range (inclusive) |
| end | End of range (exclusive) |
- Return values
-
| 0 | on success |
| -EFAULT | in the case of an unresolved page fault in the given area |
Definition at line 102 of file cache.h.
◆ l4_cache_flush_data()
| int l4_cache_flush_data |
( |
unsigned long |
start, |
|
|
unsigned long |
end |
|
) |
| |
|
inline |
Cache flush a range; writes back to PoC.
- Parameters
-
| start | Start of range (inclusive) |
| end | End of range (exclusive) |
- Return values
-
| 0 | on success |
| -EFAULT | in the case of an unresolved page fault in the given area |
Writes back any dirty cache lines and invalidates all cache entries in the range.
Definition at line 78 of file cache.h.
◆ l4_cache_inv_data()
| int l4_cache_inv_data |
( |
unsigned long |
start, |
|
|
unsigned long |
end |
|
) |
| |
|
inline |
Cache invalidate a range; might write back to PoC.
- Parameters
-
| start | Start of range (inclusive) |
| end | End of range (exclusive) |
- Return values
-
| 0 | on success |
| -EFAULT | in the case of an unresolved page fault in the given area |
Invalidates all cache entries in the range but does not necessarily write back dirty cache lines.
- Note
- Implementations may choose to write back dirty lines nonetheless if this is more efficient.
Definition at line 86 of file cache.h.