|
FreeNOS
|
Cache management interface. More...
#include <Cache.h>
Public Types | |
| enum | Result { Success , InvalidArgument , IOError , NotSupported } |
| Result codes. More... | |
| enum | Type { Instruction , Data , Unified } |
| Cache types. More... | |
Public Member Functions | |
| virtual Result | invalidate (Type type)=0 |
| Invalidate the entire cache. | |
| virtual Result | cleanInvalidate (Type type)=0 |
| Clean and invalidate entire cache. | |
| virtual Result | cleanInvalidateAddress (Type type, Address addr)=0 |
| Clean and invalidate one memory page. | |
| virtual Result | cleanAddress (Type type, Address addr)=0 |
| Clean one memory page. | |
| virtual Result | invalidateAddress (Type type, Address addr)=0 |
| Invalidate one memory page. | |
| virtual Result | cleanData (Address addr) |
| Clean one data page. | |
| virtual Result | cleanData (void *ptr) |
| Clean one data page. | |
| enum Cache::Result |
| enum Cache::Type |
Clean one memory page.
| type | Cache type to clean |
| addr | Virtual memory address of the page to clean and invalidate |
Implemented in ARMCacheV6, ARMCacheV7, ARM64Cache, and IntelCache.
Referenced by cleanData(), and cleanData().
|
virtual |
Clean one data page.
| addr | Virtual memory address to clean |
Definition at line 20 of file Cache.cpp.
References cleanAddress(), and Data.
Referenced by ProcessShares::createShare(), MemoryChannel::flushPage(), Process::initialize(), ARMFirstTable::map(), ARMSecondTable::map(), ARMFirstTable::mapLarge(), ARMSecondTable::unmap(), ARMFirstTable::unmap(), and VMCtlHandler().
|
virtual |
Clean one data page.
| ptr | Pointer with a virtual memory address to clean |
Definition at line 25 of file Cache.cpp.
References cleanAddress(), and Data.
Clean and invalidate entire cache.
This operation will clean and invalidate the entire given cache.
| type | Cache type to clean and invalidate. |
Implemented in ARMCacheV6, ARMCacheV7, ARM64Cache, and IntelCache.
Clean and invalidate one memory page.
| type | Cache type to clean and invalidate. |
| addr | Virtual memory address of the page to clean and invalidate |
Implemented in ARMCacheV6, ARMCacheV7, ARM64Cache, and IntelCache.
Invalidate the entire cache.
| type | Cache type to invalidate. |
Implemented in ARMCacheV6, ARMCacheV7, ARM64Cache, and IntelCache.
Invalidate one memory page.
| type | Cache type to invalidate |
| addr | Virtual memory address of the page to invalidate |
Implemented in ARMCacheV6, ARMCacheV7, ARM64Cache, and IntelCache.