ruby: drop NetworkMessage class
[gem5.git] / src / mem / ruby / common / Address.hh
index 7ab3d12515e76833180a7e1b1ef6805d1cf2e9ce..d47ff9ac5d9e69f503a0a7b1ac9e3a46733c978f 100644 (file)
 
 #include <cassert>
 #include <iomanip>
+#include <iostream>
 
 #include "base/hashmap.hh"
 #include "mem/ruby/common/TypeDefines.hh"
 
-const int ADDRESS_WIDTH = 64; // address width in bytes
+const uint32_t ADDRESS_WIDTH = 64; // address width in bytes
 
 class Address;
 typedef Address PhysAddress;
@@ -59,21 +60,18 @@ class Address
     void setAddress(physical_address_t address) { m_address = address; }
     physical_address_t getAddress() const {return m_address;}
     // selects bits inclusive
-    physical_address_t bitSelect(int small, int big) const;
-    physical_address_t bitRemove(int small, int big) const;
-    physical_address_t maskLowOrderBits(int number) const;
-    physical_address_t maskHighOrderBits(int number) const;
-    physical_address_t shiftLowOrderBits(int number) const;
+    physical_address_t bitSelect(unsigned int small, unsigned int big) const;
+    physical_address_t bitRemove(unsigned int small, unsigned int big) const;
+    physical_address_t maskLowOrderBits(unsigned int number) const;
+    physical_address_t maskHighOrderBits(unsigned int number) const;
+    physical_address_t shiftLowOrderBits(unsigned int number) const;
 
     physical_address_t getLineAddress() const;
     physical_address_t getOffset() const;
     void makeLineAddress();
     void makeNextStrideAddress(int stride);
 
-    int getBankSetNum() const;
-    int getBankSetDist() const;
-
-    Index memoryModuleIndex() const;
+    int64 memoryModuleIndex() const;
 
     void print(std::ostream& out) const;
     void output(std::ostream& out) const;
@@ -127,10 +125,10 @@ operator!=(const Address& obj1, const Address& obj2)
 
 // rips bits inclusive
 inline physical_address_t
-Address::bitSelect(int small, int big) const
+Address::bitSelect(unsigned int small, unsigned int big) const
 {
     physical_address_t mask;
-    assert((unsigned)big >= (unsigned)small);
+    assert(big >= small);
 
     if (big >= ADDRESS_WIDTH - 1) {
         return (m_address >> small);
@@ -144,10 +142,10 @@ Address::bitSelect(int small, int big) const
 
 // removes bits inclusive
 inline physical_address_t
-Address::bitRemove(int small, int big) const
+Address::bitRemove(unsigned int small, unsigned int big) const
 {
     physical_address_t mask;
-    assert((unsigned)big >= (unsigned)small);
+    assert(big >= small);
 
     if (small >= ADDRESS_WIDTH - 1) {
         return m_address;
@@ -170,7 +168,7 @@ Address::bitRemove(int small, int big) const
 }
 
 inline physical_address_t
-Address::maskLowOrderBits(int number) const
+Address::maskLowOrderBits(unsigned int number) const
 {
   physical_address_t mask;
 
@@ -183,7 +181,7 @@ Address::maskLowOrderBits(int number) const
 }
 
 inline physical_address_t
-Address::maskHighOrderBits(int number) const
+Address::maskHighOrderBits(unsigned int number) const
 {
     physical_address_t mask;
 
@@ -196,13 +194,14 @@ Address::maskHighOrderBits(int number) const
 }
 
 inline physical_address_t
-Address::shiftLowOrderBits(int number) const
+Address::shiftLowOrderBits(unsigned int number) const
 {
     return (m_address >> number);
 }
 
-class Address;
-namespace __hash_namespace {
+Address next_stride_address(const Address& addr, int stride);
+
+__hash_namespace_begin
 template <> struct hash<Address>
 {
     size_t
@@ -211,7 +210,7 @@ template <> struct hash<Address>
         return (size_t)s.getAddress();
     }
 };
-} // namespace __hash_namespace
+__hash_namespace_end
 
 namespace std {
 template <> struct equal_to<Address>