|
FreeNOS
|
ARMv7 cache management implementation. More...
#include <ARM64Cache.h>
Public Member Functions | |
| virtual Result | invalidate (Type type) |
| Invalidate the entire cache. | |
| virtual Result | cleanInvalidate (Type type) |
| Clean and invalidate entire cache. | |
| virtual Result | cleanInvalidateAddress (Type type, Address addr) |
| Clean and invalidate one memory page. | |
| virtual Result | cleanAddress (Type type, Address addr) |
| Clean one memory page. | |
| virtual Result | invalidateAddress (Type type, Address addr) |
| Invalidate one memory page. | |
Public Member Functions inherited from Cache | |
| virtual Result | cleanData (Address addr) |
| Clean one data page. | |
| virtual Result | cleanData (void *ptr) |
| Clean one data page. | |
Private Types | |
| enum | CacheLevelType { CacheLevelInstruction = 1 , CacheLevelData = 2 , CacheLevelInstructionData = 3 , CacheLevelUnified = 4 } |
| Defines the cache level type bits. More... | |
Private Member Functions | |
| Result | dataFlush (bool clean) |
| Flush the entire data cache. | |
| u32 | getCacheLevelId () const |
| Get cache level identifier. | |
| u32 | getCacheLineSize () const |
| Get cache line size in bytes. | |
| u32 | readCacheSize (u32 level, u32 type) const |
| Get cache size. | |
| Result | flushLevel (u32 level, bool clean) |
| Clean and Invalidate by cache level. | |
Additional Inherited Members | |
Public Types inherited from Cache | |
| enum | Result { Success , InvalidArgument , IOError , NotSupported } |
| Result codes. More... | |
| enum | Type { Instruction , Data , Unified } |
| Cache types. More... | |
ARMv7 cache management implementation.
Definition at line 43 of file ARM64Cache.h.
|
private |
Defines the cache level type bits.
| Enumerator | |
|---|---|
| CacheLevelInstruction | |
| CacheLevelData | |
| CacheLevelInstructionData | |
| CacheLevelUnified | |
Definition at line 50 of file ARM64Cache.h.
|
virtual |
Clean one memory page.
| type | Cache type to clean |
| addr | Virtual memory address of the page to clean and invalidate |
Implements Cache.
Definition at line 55 of file ARM64Cache.cpp.
References Cache::Success.
|
virtual |
Clean and invalidate entire cache.
This operation will clean and invalidate the entire given cache.
| type | Cache type to clean and invalidate. |
Implements Cache.
Definition at line 45 of file ARM64Cache.cpp.
References Cache::Success.
Referenced by invalidate().
|
virtual |
Clean and invalidate one memory page.
| type | Cache type to clean and invalidate. |
| addr | Virtual memory address of the page to clean and invalidate |
Implements Cache.
Definition at line 50 of file ARM64Cache.cpp.
References Cache::Success.
|
private |
Flush the entire data cache.
| clean | True to clean cache before invalidation. |
Definition at line 102 of file ARM64Cache.cpp.
References Cache::Success.
Referenced by invalidate().
|
private |
Clean and Invalidate by cache level.
| level | Cache level |
| clean | True to clean cache before invalidation. |
Definition at line 97 of file ARM64Cache.cpp.
References Cache::Success.
|
private |
Get cache level identifier.
Definition at line 65 of file ARM64Cache.cpp.
|
private |
Get cache line size in bytes.
Definition at line 70 of file ARM64Cache.cpp.
|
virtual |
Invalidate the entire cache.
| type | Cache type to invalidate. |
Implements Cache.
Definition at line 27 of file ARM64Cache.cpp.
References cleanInvalidate(), Cache::Data, dataFlush(), Cache::Instruction, invalidate(), Cache::Success, type, and Cache::Unified.
Referenced by invalidate().
|
virtual |
Invalidate one memory page.
| type | Cache type to invalidate |
| addr | Virtual memory address of the page to invalidate |
Implements Cache.
Definition at line 60 of file ARM64Cache.cpp.
References Cache::Success.