FreeNOS
Public Member Functions | Private Attributes
ARMCacheV6 Class Reference

ARMv6 cache management implementation. More...

#include <ARMCacheV6.h>

Inheritance diagram for ARMCacheV6:
Cache

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...
 

Detailed Description

ARMv6 cache management implementation.

See also
ARM Architecture Reference Manual, page xxx

Definition at line 42 of file ARMCacheV6.h.

Member Function Documentation

◆ cleanAddress()

ARMCacheV6::Result ARMCacheV6::cleanAddress ( ARMCacheV6::Type  type,
Address  addr 
)
virtual

Clean one memory page.

Parameters
typeCache type to clean
addrVirtual memory address of the page to clean and invalidate
Returns
Result code

Implements Cache.

Definition at line 96 of file ARMCacheV6.cpp.

References Cache::Data, Cache::Instruction, mcr, Cache::Success, type, and Cache::Unified.

◆ cleanInvalidate()

ARMCacheV6::Result ARMCacheV6::cleanInvalidate ( ARMCacheV6::Type  type)
virtual

Clean and invalidate entire cache.

This operation will clean and invalidate the entire given cache.

Parameters
typeCache type to clean and invalidate.
Returns
Result code

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().

◆ cleanInvalidateAddress()

ARMCacheV6::Result ARMCacheV6::cleanInvalidateAddress ( Type  type,
Address  addr 
)
virtual

Clean and invalidate one memory page.

Parameters
typeCache type to clean and invalidate.
addrVirtual memory address of the page to clean and invalidate
Returns
Result code

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().

◆ invalidate()

ARMCacheV6::Result ARMCacheV6::invalidate ( ARMCacheV6::Type  type)
virtual

Invalidate the entire cache.

Parameters
typeCache type to invalidate.
Returns
Result code

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().

◆ invalidateAddress()

ARMCacheV6::Result ARMCacheV6::invalidateAddress ( ARMCacheV6::Type  type,
Address  addr 
)
virtual

Invalidate one memory page.

Parameters
typeCache type to invalidate
addrVirtual memory address of the page to invalidate
Returns
Result code

Implements Cache.

Definition at line 113 of file ARMCacheV6.cpp.

References Cache::NotSupported.

Referenced by VMCtlHandler().

Field Documentation

◆ m_control

ARMControl ARMCacheV6::m_control
private

ARM system control processor object.

Definition at line 100 of file ARMCacheV6.h.


The documentation for this class was generated from the following files: