summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDerek Hower <drh5@cs.wisc.edu>2009-09-15 20:39:00 -0500
committerDerek Hower <drh5@cs.wisc.edu>2009-09-15 20:39:00 -0500
commit20da0f788cdc8bc454bc12dde113d346c93329ba (patch)
treee6a61bfa3850fa9a1c700cc4224e4f4097508e6c /src
parenta06cfa199fe0ba986ba4bf61a263235f7dbc29f9 (diff)
downloadgem5-20da0f788cdc8bc454bc12dde113d346c93329ba.tar.xz
ruby: added broadcast mechanism
Diffstat (limited to 'src')
-rw-r--r--src/mem/protocol/RubySlicc_ComponentMapping.sm1
-rw-r--r--src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh11
2 files changed, 12 insertions, 0 deletions
diff --git a/src/mem/protocol/RubySlicc_ComponentMapping.sm b/src/mem/protocol/RubySlicc_ComponentMapping.sm
index 559e54a8c..0da1a05e2 100644
--- a/src/mem/protocol/RubySlicc_ComponentMapping.sm
+++ b/src/mem/protocol/RubySlicc_ComponentMapping.sm
@@ -31,6 +31,7 @@
// NodeID map_address_to_node(Address addr);
MachineID mapAddressToRange(Address addr, MachineType type, int low, int high);
+NetDest broadcast(MachineType type);
MachineID map_Address_to_DMA(Address addr);
MachineID map_Address_to_Directory(Address addr);
NodeID map_Address_to_DirectoryNode(Address addr);
diff --git a/src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh b/src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh
index 96405c8dd..159c33815 100644
--- a/src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh
+++ b/src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh
@@ -85,6 +85,17 @@ MachineID map_Address_to_DMA(const Address & addr)
return dma;
}
+inline
+NetDest broadcast(MachineType type)
+{
+ NetDest dest;
+ for (int i=0; i<MachineType_base_count(type); i++) {
+ MachineID mach = {type, i};
+ dest.add(mach);
+ }
+ return dest;
+}
+
inline
MachineID mapAddressToRange(const Address & addr, MachineType type, int low_bit, int num_bits)
{