Add cache mode traits

This commit is contained in:
Katarzyna Lapinska 2020-01-23 11:36:14 +01:00
parent 15497c342c
commit 4c66fa8b1b
2 changed files with 25 additions and 3 deletions

View File

@ -3,8 +3,7 @@
# SPDX-License-Identifier: BSD-3-Clause-Clear # SPDX-License-Identifier: BSD-3-Clause-Clear
# #
from enum import IntEnum from aenum import Enum, IntFlag
from aenum import Enum
from test_utils.size import Size, Unit from test_utils.size import Size, Unit
from attotime import attotimedelta from attotime import attotimedelta
@ -27,11 +26,34 @@ class CacheMode(Enum):
WA = "Write-Around" WA = "Write-Around"
PT = "Pass-Through" PT = "Pass-Through"
WO = "Write-Only" WO = "Write-Only"
WI = "Write-Invalidate"
DEFAULT = WT DEFAULT = WT
def __str__(self): def __str__(self):
return self.value return self.value
@staticmethod
def get_traits(cache_mode):
if cache_mode == CacheMode.PT:
return 0
elif cache_mode == CacheMode.WT:
return CacheModeTrait.InsertRead | CacheModeTrait.InsertWrite
elif cache_mode == CacheMode.WB:
return CacheModeTrait.InsertRead | CacheModeTrait.InsertWrite | CacheModeTrait.LazyFlush
elif cache_mode == CacheMode.WO:
return CacheModeTrait.InsertWrite | CacheModeTrait.LazyFlush
elif cache_mode == CacheMode.WA:
return CacheModeTrait.InsertRead
elif cache_mode == CacheMode.WI:
return CacheModeTrait.InsertRead | CacheModeTrait.WriteInvalidate
class CacheModeTrait(IntFlag):
InsertWrite = 1
InsertRead = 2
LazyFlush = 4
WriteInvalidate = 8
class SeqCutOffPolicy(Enum): class SeqCutOffPolicy(Enum):
full = 0 full = 0

@ -1 +1 @@
Subproject commit 2f911d1117d2220d85c76bbd293a58bd291c63e1 Subproject commit 8e0855c0671e38cbf74f768e18f8b75d16752eb8