Removed the last level cache support and MOESI_hammer's dependency on it.
Replaces the LLC support with the more generic MachineType count.
       out_msg.Requestor := machineID;
       out_msg.Destination.add(map_Address_to_Directory(address));
       out_msg.MessageSize := MessageSizeType:Request_Control;
-      TBEs[address].NumPendingMsgs := getNumberOfLastLevelCaches(); // One from each other cache (n-1) plus the memory (+1)
+      TBEs[address].NumPendingMsgs := machineCount(MachineType:L1Cache); // One from each other cache (n-1) plus the memory (+1)
     }
   }
 
       out_msg.Requestor := machineID;
       out_msg.Destination.add(map_Address_to_Directory(address));
       out_msg.MessageSize := MessageSizeType:Request_Control;
-      TBEs[address].NumPendingMsgs := getNumberOfLastLevelCaches(); // One from each other cache (n-1) plus the memory (+1)
+      TBEs[address].NumPendingMsgs := machineCount(MachineType:L1Cache); // One from each other cache (n-1) plus the memory (+1)
     }
   }
 
 
       //
       // One ack for each last-level cache
       //
-      TBEs[address].NumPendingMsgs := getNumberOfLastLevelCaches();
+      TBEs[address].NumPendingMsgs := machineCount(MachineType:L1Cache);
       //
       // Assume initially that the caches store a clean copy and that memory
       // will provide the data
   }
 
   action(f_forwardRequest, "f", desc="Forward requests") {
-    if (getNumberOfLastLevelCaches() > 1) {
+    if (machineCount(MachineType:L1Cache) > 1) {
       peek(requestQueue_in, RequestMsg) {
         enqueue(forwardNetwork_out, RequestMsg, latency=memory_controller_latency) {
           out_msg.Address := address;
 
 
 // Mapping functions
 
-int getNumberOfLastLevelCaches();
+int machineCount(MachineType machType);
 
 // NodeID map_address_to_node(Address addr);
 MachineID mapAddressToRange(Address addr, MachineType type, int low, int high);
 
 #include "mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh"
 #include "mem/ruby/system/CacheMemory.hh"
 
-int getNumberOfLastLevelCaches()
-{
-  return CacheMemory::numberOfLastLevelCaches();
-}
 
 
 #include "mem/ruby/common/NetDest.hh"
 #include "mem/protocol/GenericMachineType.hh"
 #include "mem/ruby/system/DirectoryMemory.hh"
+#include "mem/protocol/MachineType.hh"
 
 #ifdef MACHINETYPE_L1Cache
 #define MACHINETYPE_L1CACHE_ENUM MachineType_L1Cache
 #define MACHINETYPE_DMA_ENUM MachineType_NUM
 #endif
 
-// used to determine the number of acks to wait for
-int getNumberOfLastLevelCaches();
-
 // used to determine the home directory
 // returns a value between 0 and total_directories_within_the_system
 inline
   }
 }
 
+extern inline int machineCount(MachineType machType) {
+    return MachineType_base_count(machType);
+}
 
 #endif  // COMPONENTMAPPINGFNS_H
 
 
 #include "mem/ruby/system/CacheMemory.hh"
 
-int CacheMemory::m_num_last_level_caches = 0;
-MachineType CacheMemory::m_last_level_machine_type = MachineType_FIRST;
-
 // ******************* Definitions *******************
 
 // Output operator definition
     else
       assert(false);
 
-  m_num_last_level_caches = 
-    MachineType_base_count(MachineType_FIRST);
-#if 0
-  for (uint32 i=0; i<argv.size(); i+=2) {
-      if (m_last_level_machine_type < m_controller->getMachineType()) {
-        m_num_last_level_caches = 
-          MachineType_base_count(m_controller->getMachineType());
-        m_last_level_machine_type = 
-          m_controller->getMachineType();
-      } 
-  }
-#endif
-
   m_cache.setSize(m_cache_num_sets);
   m_locked.setSize(m_cache_num_sets);
   for (int i = 0; i < m_cache_num_sets; i++) {
   }
 }
 
-int
-CacheMemory::numberOfLastLevelCaches()
-{ 
-  return m_num_last_level_caches; 
-}
-
-
 void CacheMemory::printConfig(ostream& out)
 {
   out << "Cache config: " << m_cache_name << endl;
 
   AccessPermission getPermission(const Address& address) const;
   void changePermission(const Address& address, AccessPermission new_perm);
 
-  static int numberOfLastLevelCaches();
-
   int getLatency() const { return m_latency; }
 
   // Hook for checkpointing the contents of the cache
   int m_cache_num_sets;
   int m_cache_num_set_bits;
   int m_cache_assoc;
-
-  static Vector< CacheMemory* > m_all_caches;
-  
-  static int m_num_last_level_caches;
-  static MachineType m_last_level_machine_type;
-
 };
 
 #endif //CACHEMEMORY_H