Ruby: Add support for functional accesses
[gem5.git] / src / mem / protocol / RubySlicc_Exports.sm
index 0ef3df29b76440b794fc2a88388811f7aa118385..2e4a167840299f8379f85b5c74d1ed7f78960461 100644 (file)
@@ -57,6 +57,13 @@ enumeration(AccessPermission, desc="...", default="AccessPermission_NotPresent")
   Read_Only,  desc="block is Read Only (modulo functional writes)";
   Read_Write, desc="block is Read/Write";
 
+  // Possibly Invalid data
+  // The maybe stale permission indicates that accordingly to the protocol, 
+  // there is no guarantee the block contains valid data.  However, functional
+  // writes should update the block because a dataless PUT request may
+  // revalidate the block's data.
+  Maybe_Stale, desc="block can be stale or revalidated by a dataless PUT";
+
   // Invalid data
   Invalid,    desc="block is in an Invalid base state";
   NotPresent, desc="block is NotPresent";
@@ -119,6 +126,7 @@ enumeration(RubyRequestType, desc="...", default="RubyRequestType_NULL") {
   Locked_RMW_Write,  desc="";
   COMMIT,            desc="Commit version";
   NULL,              desc="Invalid request type";
+  FLUSH,             desc="Flush request type";
 }
 
 enumeration(SequencerRequestType, desc="...", default="SequencerRequestType_NULL") {
@@ -322,3 +330,9 @@ enumeration(RequestStatus, desc="...", default="RequestStatus_NULL")  {
   Aliased, desc="This request aliased with a currently outstanding request";
   NULL, desc="";
 }
+
+// LinkDirection
+enumeration(LinkDirection, desc="...") {
+  In, desc="Inward link direction";
+  Out, desc="Outward link direction";
+}