summaryrefslogtreecommitdiff
path: root/src/mem/packet.hh
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2007-07-26 17:04:17 -0700
committerSteve Reinhardt <stever@eecs.umich.edu>2007-07-26 17:04:17 -0700
commitc3bf59dcb9dddd64d5ad603f7af6589b87e7afad (patch)
treeae51979714aa372d996d64c1841892e20a68fd9c /src/mem/packet.hh
parentf1b5c8fb57ee656df3a1b9d021de723279f66b2f (diff)
downloadgem5-c3bf59dcb9dddd64d5ad603f7af6589b87e7afad.tar.xz
Add downward express snoops for invalidations.
--HG-- extra : convert_revision : 4916fa9721d727d8416ad8c07df3a8171d02b2b4
Diffstat (limited to 'src/mem/packet.hh')
-rw-r--r--src/mem/packet.hh8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mem/packet.hh b/src/mem/packet.hh
index 036bd3fd7..c6534d6c9 100644
--- a/src/mem/packet.hh
+++ b/src/mem/packet.hh
@@ -256,7 +256,11 @@ class Packet : public FastAlloc
MemInhibit,
Shared,
// Special control flags
+ /// Special timing-mode atomic snoop for multi-level coherence.
ExpressSnoop,
+ /// Does supplier have exclusive copy?
+ /// Useful for multi-level coherence.
+ SupplyExclusive,
NUM_PACKET_FLAGS
};
@@ -315,13 +319,15 @@ class Packet : public FastAlloc
// Snoop flags
void assertMemInhibit() { flags[MemInhibit] = true; }
- void assertShared() { flags[Shared] = true; }
bool memInhibitAsserted() { return flags[MemInhibit]; }
+ void assertShared() { flags[Shared] = true; }
bool sharedAsserted() { return flags[Shared]; }
// Special control flags
void setExpressSnoop() { flags[ExpressSnoop] = true; }
bool isExpressSnoop() { return flags[ExpressSnoop]; }
+ void setSupplyExclusive() { flags[SupplyExclusive] = true; }
+ bool isSupplyExclusive() { return flags[SupplyExclusive]; }
// Network error conditions... encapsulate them as methods since
// their encoding keeps changing (from result field to command