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.