Merge pull request #297 from katlapinka/cache-mode-traits
Add cache mode traits
This commit is contained in:
@@ -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
|
||||||
|
Submodule test/functional/test-framework updated: 2f911d1117...8e0855c067
Reference in New Issue
Block a user