mem: add request types for acquire and release
authorDavid Hashe <david.hashe@amd.com>
Mon, 20 Jul 2015 14:15:18 +0000 (09:15 -0500)
committerDavid Hashe <david.hashe@amd.com>
Mon, 20 Jul 2015 14:15:18 +0000 (09:15 -0500)
Add support for acquire and release requests.  These synchronization operations
are commonly supported by several modern instruction sets.

src/mem/request.hh

index 287a823ad1967924d2086ddaa5ff3725f6237700..ef58686d6cd5376d0fe288f35c24c76b54f8dc0e 100644 (file)
@@ -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__