ruby: added broadcast mechanism
authorDerek Hower <drh5@cs.wisc.edu>
Wed, 16 Sep 2009 01:39:00 +0000 (20:39 -0500)
committerDerek Hower <drh5@cs.wisc.edu>
Wed, 16 Sep 2009 01:39:00 +0000 (20:39 -0500)
src/mem/protocol/RubySlicc_ComponentMapping.sm
src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh

index 559e54a8c876fcf71bf12bf07d027dbb6d7d980a..0da1a05e2336c7a69f0c04d81fb606a10f218c59 100644 (file)
@@ -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);
index 96405c8dd7bd3a5af11e95838623e16e0bb88293..159c338155784525e2831bf24ebad4d80dbc5ad4 100644 (file)
@@ -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)
 {