base: Exclude the end of ChannelAddrRange
Since [1] has changed the end of AddrRange to be excluded from the range, we need to do the same for ChannelAddrRange. [1] Idd1e75d5771d198c4b8142b28de0f3a6e9007a52 Change-Id: I901a03409f2204a502133a1d763d8112b1d08f8f Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/41653 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
committed by
Giacomo Travaglini
parent
2334689b57
commit
6b23ef320a
@@ -154,6 +154,7 @@ class ChannelAddr
|
||||
/**
|
||||
* The ChanneelAddrRange class describes a contiguous range of
|
||||
* addresses in a contiguous channel-local address space.
|
||||
* The start is inclusive, the end is not.
|
||||
*/
|
||||
class ChannelAddrRange
|
||||
{
|
||||
@@ -173,15 +174,15 @@ class ChannelAddrRange
|
||||
|
||||
constexpr ChannelAddrRange(const ChannelAddrRange &) = default;
|
||||
|
||||
constexpr ChannelAddr size() const { return _end - _start + 1; }
|
||||
constexpr ChannelAddr size() const { return _end - _start; }
|
||||
|
||||
constexpr bool valid() const { return _start <= _end; }
|
||||
constexpr bool valid() const { return _start < _end; }
|
||||
|
||||
constexpr ChannelAddr start() const { return _start; }
|
||||
constexpr ChannelAddr end() const { return _end; }
|
||||
|
||||
constexpr bool contains(ChannelAddr a) const {
|
||||
return a >= _start && a <= _end;
|
||||
return a >= _start && a < _end;
|
||||
}
|
||||
|
||||
/** @} */ // end of api_channel_addr
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2019 ARM Limited
|
||||
* Copyright (c) 2019, 2021 ARM Limited
|
||||
* All rights reserved
|
||||
*
|
||||
* The license below extends only to copyright in the software and shall
|
||||
@@ -50,7 +50,7 @@ TEST(ChannelAddrRange, DefaultInvalid)
|
||||
/* Ensure that range bounds are inclusive */
|
||||
TEST(ChannelAddrRange, Range)
|
||||
{
|
||||
ChannelAddrRange range(ChannelAddr(1), ChannelAddr(3));
|
||||
ChannelAddrRange range(ChannelAddr(1), ChannelAddr(4));
|
||||
|
||||
EXPECT_FALSE(range.contains(ChannelAddr(0)));
|
||||
EXPECT_TRUE(range.contains(ChannelAddr(1)));
|
||||
@@ -59,6 +59,6 @@ TEST(ChannelAddrRange, Range)
|
||||
EXPECT_FALSE(range.contains(ChannelAddr(4)));
|
||||
|
||||
EXPECT_EQ(range.start(), ChannelAddr(1));
|
||||
EXPECT_EQ(range.end(), ChannelAddr(3));
|
||||
EXPECT_EQ(range.end(), ChannelAddr(4));
|
||||
EXPECT_EQ(range.size(), ChannelAddr(3));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user