From f0a764edc6dd9c844a1514a005f0695a9149b58a Mon Sep 17 00:00:00 2001 From: Curtis Dunham Date: Tue, 3 Feb 2015 14:25:58 -0500 Subject: base: add an accessor and operators ==,!= to address ranges --- src/base/addr_range.hh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/base') diff --git a/src/base/addr_range.hh b/src/base/addr_range.hh index 57db8db71..2a20863b4 100644 --- a/src/base/addr_range.hh +++ b/src/base/addr_range.hh @@ -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 }; -- cgit v1.2.3