summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Hashe <david.hashe@amd.com>2015-07-20 09:15:18 -0500
committerDavid Hashe <david.hashe@amd.com>2015-07-20 09:15:18 -0500
commitf5f04c312096e56f09ea27e84d3d2d2a97be97f9 (patch)
tree088cade08ea0761bb357ecd6ef7cebe2e01b2d98
parent4935f0d5ff5bf5cae97021387362ab9c567a9262 (diff)
downloadgem5-f5f04c312096e56f09ea27e84d3d2d2a97be97f9.tar.xz
mem: add request types for acquire and release
Add support for acquire and release requests. These synchronization operations are commonly supported by several modern instruction sets.
-rw-r--r--src/mem/request.hh6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mem/request.hh b/src/mem/request.hh
index 287a823ad..ef58686d6 100644
--- a/src/mem/request.hh
+++ b/src/mem/request.hh
@@ -155,6 +155,10 @@ class Request
PF_EXCLUSIVE = 0x02000000,
/** The request should be marked as LRU. */
EVICT_NEXT = 0x04000000,
+ /** The request should be marked with ACQUIRE. */
+ ACQUIRE = 0x00020000,
+ /** The request should be marked with RELEASE. */
+ RELEASE = 0x00040000,
/**
* The request should be handled by the generic IPR code (only
@@ -696,6 +700,8 @@ class Request
bool isMmappedIpr() const { return _flags.isSet(MMAPPED_IPR); }
bool isSecure() const { return _flags.isSet(SECURE); }
bool isPTWalk() const { return _flags.isSet(PT_WALK); }
+ bool isAcquire() const { return _flags.isSet(ACQUIRE); }
+ bool isRelease() const { return _flags.isSet(RELEASE); }
};
#endif // __MEM_REQUEST_HH__