base: add an accessor and operators ==,!= to address ranges
authorCurtis Dunham <Curtis.Dunham@arm.com>
Tue, 3 Feb 2015 19:25:58 +0000 (14:25 -0500)
committerCurtis Dunham <Curtis.Dunham@arm.com>
Tue, 3 Feb 2015 19:25:58 +0000 (14:25 -0500)
src/base/addr_range.hh

index 57db8db71adabdc73d92f6c45da44ac48e583b34..2a20863b4ec00e3c2a8d1e478a4e0451c8146f59 100644 (file)
@@ -226,6 +226,11 @@ class AddrRange
      */
     Addr start() const { return _start; }
 
+    /**
+     * Get the end address of the range.
+     */
+    Addr end() const { return _end; }
+
     /**
      * Get a string representation of the range. This could
      * alternatively be implemented as a operator<<, but at the moment
@@ -363,6 +368,22 @@ class AddrRange
             return intlvMatch < r.intlvMatch;
     }
 
+    bool operator==(const AddrRange& r) const
+    {
+        if (_start    != r._start)    return false;
+        if (_end      != r._end)      return false;
+        if (intlvBits != r.intlvBits) return false;
+        if (intlvBits != 0) {
+            if (intlvHighBit != r.intlvHighBit) return false;
+            if (intlvMatch   != r.intlvMatch)   return false;
+        }
+        return true;
+    }
+
+    bool operator!=(const AddrRange& r) const
+    {
+        return !(*this == r);
+    }
 #endif // SWIG
 };