diff options
author | Steve Reinhardt <stever@eecs.umich.edu> | 2007-07-26 17:04:17 -0700 |
---|---|---|
committer | Steve Reinhardt <stever@eecs.umich.edu> | 2007-07-26 17:04:17 -0700 |
commit | c3bf59dcb9dddd64d5ad603f7af6589b87e7afad (patch) | |
tree | ae51979714aa372d996d64c1841892e20a68fd9c /src/mem/packet.hh | |
parent | f1b5c8fb57ee656df3a1b9d021de723279f66b2f (diff) | |
download | gem5-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.hh | 8 |
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 |