L4Re - L4 Runtime Environment
Cache Consistency

Various functions for cache consistency. More...

+ Collaboration diagram for Cache Consistency:

Functions

int l4_cache_clean_data (unsigned long start, unsigned long end) L4_NOTHROW
 Cache clean a range in D-cache. More...
 
int l4_cache_flush_data (unsigned long start, unsigned long end) L4_NOTHROW
 Cache flush a range. More...
 
int l4_cache_inv_data (unsigned long start, unsigned long end) L4_NOTHROW
 Cache invalidate a range. More...
 
int l4_cache_coherent (unsigned long start, unsigned long end) L4_NOTHROW
 Make memory coherent between I-cache and D-cache. More...
 
int l4_cache_dma_coherent (unsigned long start, unsigned long end) L4_NOTHROW
 Make memory coherent for use with external memory. More...
 
int l4_cache_dma_coherent_full (void) L4_NOTHROW
 Make memory coherent for use with external memory.
 

Detailed Description

Various functions for cache consistency.

Include File
#include <l4/sys/cache.h>

Function Documentation

◆ l4_cache_clean_data()

int l4_cache_clean_data ( unsigned long  start,
unsigned long  end 
)
inline

Cache clean a range in D-cache.

Parameters
startStart of range (inclusive)
endEnd of range (exclusive)
Return values
0on success
-EFAULTin 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.

Examples:
examples/libs/l4re/c++/shared_ds/ds_clnt.cc.

Definition at line 84 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.

Parameters
startStart of range (inclusive)
endEnd of range (exclusive)
Return values
0on success
-EFAULTin the case of an unresolved page fault in the given area

Definition at line 108 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.

Parameters
startStart of range (inclusive)
endEnd of range (exclusive)
Return values
0on success
-EFAULTin the case of an unresolved page fault in the given area

Definition at line 116 of file cache.h.

◆ l4_cache_flush_data()

int l4_cache_flush_data ( unsigned long  start,
unsigned long  end 
)
inline

Cache flush a range.

Parameters
startStart of range (inclusive)
endEnd of range (exclusive)
Return values
0on success
-EFAULTin 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 92 of file cache.h.

◆ l4_cache_inv_data()

int l4_cache_inv_data ( unsigned long  start,
unsigned long  end 
)
inline

Cache invalidate a range.

Parameters
startStart of range (inclusive)
endEnd of range (exclusive)
Return values
0on success
-EFAULTin 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 100 of file cache.h.