|
FreeNOS
|
ARMv6 cache management implementation. More...
#include <ARMCacheV6.h>
Public Member Functions | |
| virtual Result | invalidate (Type type) |
| Invalidate the entire cache. More... | |
| virtual Result | cleanInvalidate (Type type) |
| Clean and invalidate entire cache. More... | |
| virtual Result | cleanInvalidateAddress (Type type, Address addr) |
| Clean and invalidate one memory page. More... | |
| virtual Result | cleanAddress (Type type, Address addr) |
| Clean one memory page. More... | |
| virtual Result | invalidateAddress (Type type, Address addr) |
| Invalidate one memory page. More... | |
Public Member Functions inherited from Cache | |
| virtual Result | cleanData (Address addr) |
| Clean one data page. More... | |
| virtual Result | cleanData (void *ptr) |
| Clean one data page. More... | |
Private Attributes | |
| ARMControl | m_control |
| ARM system control processor object. More... | |
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... | |
ARMv6 cache management implementation.
Definition at line 42 of file ARMCacheV6.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 96 of file ARMCacheV6.cpp.
References Cache::Data, Cache::Instruction, mcr, Cache::Success, type, and Cache::Unified.
|
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 41 of file ARMCacheV6.cpp.
References Cache::Data, dsb(), flushBranchPrediction(), flushPrefetchBuffer(), Cache::Instruction, mcr, Cache::Success, type, and Cache::Unified.
Referenced by ARMPaging::activate(), invalidate(), and VMCtlHandler().
|
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 78 of file ARMCacheV6.cpp.
References Cache::Data, Cache::Instruction, mcr, Cache::Success, type, and Cache::Unified.
Referenced by ARMPaging::unmap().
|
virtual |
Invalidate the entire cache.
| type | Cache type to invalidate. |
Implements Cache.
Definition at line 21 of file ARMCacheV6.cpp.
References cleanInvalidate(), Cache::Data, dsb(), Cache::Instruction, mcr, Cache::Success, type, and Cache::Unified.
Referenced by kernel_main().
|
virtual |
Invalidate one memory page.
| type | Cache type to invalidate |
| addr | Virtual memory address of the page to invalidate |
Implements Cache.
Definition at line 113 of file ARMCacheV6.cpp.
References Cache::NotSupported.
Referenced by VMCtlHandler().
|
private |
ARM system control processor object.
Definition at line 100 of file ARMCacheV6.h.
1.8.17