gem5 v24.0.0.0
|
Typedefs | |
typedef std::list< AddrRange > | gem5::AddrRangeList |
Convenience typedef for a collection of address ranges. | |
Functions | |
gem5::AddrRange::AddrRange () | |
gem5::AddrRange::AddrRange (Addr _start, Addr _end, const std::vector< Addr > &_masks, uint8_t _intlv_match) | |
Construct an address range. | |
gem5::AddrRange::AddrRange (Addr _start, Addr _end, uint8_t _intlv_high_bit, uint8_t _xor_high_bit, uint8_t _intlv_bits, uint8_t _intlv_match) | |
Legacy constructor of AddrRange. | |
gem5::AddrRange::AddrRange (std::vector< AddrRange > ranges) | |
Create an address range by merging a collection of interleaved ranges. | |
bool | gem5::AddrRange::interleaved () const |
Determine if the range is interleaved or not. | |
uint64_t | gem5::AddrRange::granularity () const |
Determing the interleaving granularity of the range. | |
uint32_t | gem5::AddrRange::stripes () const |
Determine the number of interleaved address stripes this range is part of. | |
Addr | gem5::AddrRange::size () const |
Get the size of the address range. | |
bool | gem5::AddrRange::valid () const |
Determine if the range is valid. | |
Addr | gem5::AddrRange::start () const |
Get the start address of the range. | |
Addr | gem5::AddrRange::end () const |
Get the end address of the range. | |
std::string | gem5::AddrRange::to_string () const |
Get a string representation of the range. | |
bool | gem5::AddrRange::mergesWith (const AddrRange &r) const |
Determine if another range merges with the current one, i.e. | |
bool | gem5::AddrRange::intersects (const AddrRange &r) const |
Determine if another range intersects this one, i.e. | |
bool | gem5::AddrRange::isSubset (const AddrRange &r) const |
Determine if this range is a subset of another range, i.e. | |
bool | gem5::AddrRange::contains (const Addr &a) const |
Determine if the range contains an address. | |
Addr | gem5::AddrRange::removeIntlvBits (Addr a) const |
Remove the interleaving bits from an input address. | |
Addr | gem5::AddrRange::addIntlvBits (Addr a) const |
This method adds the interleaving bits removed by removeIntlvBits. | |
Addr | gem5::AddrRange::getOffset (const Addr &a) const |
Determine the offset of an address within the range. | |
AddrRangeList | gem5::AddrRange::exclude (const AddrRangeList &exclude_ranges) const |
Subtract a list of intervals from the range and return the resulting collection of ranges, so that the union of the two lists cover the original range. | |
bool | gem5::AddrRange::operator< (const AddrRange &r) const |
Less-than operator used to turn an STL map into a binary search tree of non-overlapping address ranges. | |
bool | gem5::AddrRange::operator== (const AddrRange &r) const |
bool | gem5::AddrRange::operator!= (const AddrRange &r) const |
AddrRange | gem5::AddrRange::operator& (const AddrRange &r) const |
AddrRange | gem5::RangeEx (Addr start, Addr end) |
AddrRange | gem5::RangeIn (Addr start, Addr end) |
AddrRange | gem5::RangeSize (Addr start, Addr size) |
iterator | gem5::AddrRangeMap< V, max_cache_size >::insert (const AddrRange &r, const V &d) |
void | gem5::AddrRangeMap< V, max_cache_size >::erase (iterator p) |
void | gem5::AddrRangeMap< V, max_cache_size >::erase (iterator p, iterator q) |
void | gem5::AddrRangeMap< V, max_cache_size >::clear () |
const_iterator | gem5::AddrRangeMap< V, max_cache_size >::begin () const |
iterator | gem5::AddrRangeMap< V, max_cache_size >::begin () |
const_iterator | gem5::AddrRangeMap< V, max_cache_size >::end () const |
iterator | gem5::AddrRangeMap< V, max_cache_size >::end () |
std::size_t | gem5::AddrRangeMap< V, max_cache_size >::size () const |
bool | gem5::AddrRangeMap< V, max_cache_size >::empty () const |
typedef RangeMap::iterator | gem5::AddrRangeMap< V, max_cache_size >::iterator |
typedef RangeMap::const_iterator | gem5::AddrRangeMap< V, max_cache_size >::const_iterator |
const_iterator | gem5::AddrRangeMap< V, max_cache_size >::contains (const AddrRange &r) const |
Find entry that contains the given address range. | |
iterator | gem5::AddrRangeMap< V, max_cache_size >::contains (const AddrRange &r) |
const_iterator | gem5::AddrRangeMap< V, max_cache_size >::contains (Addr r) const |
Find entry that contains the given address. | |
iterator | gem5::AddrRangeMap< V, max_cache_size >::contains (Addr r) |
const_iterator | gem5::AddrRangeMap< V, max_cache_size >::intersects (const AddrRange &r) const |
Find entry that intersects with the given address range. | |
iterator | gem5::AddrRangeMap< V, max_cache_size >::intersects (const AddrRange &r) |
These methods relate to the AddrRange and AddrRangeMap interfaces.
typedef std::list<AddrRange> gem5::AddrRangeList |
Convenience typedef for a collection of address ranges.
Definition at line 64 of file addr_range.hh.
typedef RangeMap::const_iterator gem5::AddrRangeMap< V, max_cache_size >::const_iterator |
Definition at line 73 of file addr_range_map.hh.
typedef RangeMap::iterator gem5::AddrRangeMap< V, max_cache_size >::iterator |
Definition at line 72 of file addr_range_map.hh.
This method adds the interleaving bits removed by removeIntlvBits.
Definition at line 574 of file addr_range.hh.
References gem5::ArmISA::a, gem5::bits(), gem5::ctz64(), gem5::ArmISA::i, gem5::insertBits(), gem5::AddrRange::interleaved(), gem5::AddrRange::intlvMatch, gem5::AddrRange::masks, and gem5::popCount().
Referenced by gem5::ChannelAddr::getPA().
|
inline |
Definition at line 149 of file addr_range.hh.
Referenced by gem5::AddrRange::exclude(), and gem5::AddrRange::operator&().
|
inline |
Construct an address range.
If the user provides a non empty vector of masks then the address range is interleaved. Each mask determines a set of bits that are xored to determine one bit of the sel value, starting from the least significant bit (i.e., masks[0] determines the least significant bit of sel, ...). If sel matches the provided _intlv_match then the address a is in the range.
For example if the input mask is _masks = { 1 << 8 | 1 << 11 | 1 << 13, 1 << 15 | 1 << 17 | 1 << 19}
Then a belongs to the address range if _start <= a < _end and sel == _intlv_match where sel[0] = a[8] ^ a[11] ^ a[13] sel[1] = a[15] ^ a[17] ^ a[19]
_start | The start address of this range |
_end | The end address of this range (not included in the range) |
_masks | The input vector of masks |
intlv_match | The matching value of the xor operations |
Definition at line 183 of file addr_range.hh.
References fatal_if, and gem5::AddrRange::masks.
|
inline |
Legacy constructor of AddrRange.
If the user provides a non-zero value in _intlv_high_bit the address range is interleaved.
An address a belongs to the address range if _start <= a < _end and sel == _intlv_match where sel = sel1 ^ sel2 sel1 = a[_intlv_low_bit:_intlv_high_bit] sel2 = a[_xor_low_bit:_xor_high_bit] _intlv_low_bit = _intlv_high_bit - intv_bits _xor_low_bit = _xor_high_bit - intv_bits
_start | The start address of this range |
_end | The end address of this range (not included in the range) |
_intlv_high_bit | The MSB of the intlv bits (disabled if 0) |
_xor_high_bit | The MSB of the xor bit (disabled if 0) |
_intlv_bits | the size, in bits, of the intlv and xor bits |
intlv_match | The matching value of the xor operations |
Definition at line 220 of file addr_range.hh.
References fatal, fatal_if, gem5::ArmISA::i, gem5::ArmISA::mask, and gem5::AddrRange::masks.
|
inline |
Create an address range by merging a collection of interleaved ranges.
ranges | Interleaved ranges to be merged |
Definition at line 270 of file addr_range.hh.
|
inline |
Definition at line 208 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::tree.
|
inline |
Definition at line 199 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::tree.
Referenced by gem5::AddrRangeMap< V, max_cache_size >::find(), and gem5::BaseXBar::recvRangeChange().
|
inline |
Definition at line 189 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::cache, and gem5::AddrRangeMap< V, max_cache_size >::tree.
|
inline |
Determine if the range contains an address.
a | Address to compare with |
Definition at line 489 of file addr_range.hh.
References gem5::AddrRange::_end, gem5::AddrRange::_start, gem5::ArmISA::a, gem5::ArmISA::i, gem5::AddrRange::intlvMatch, gem5::AddrRange::masks, gem5::popCount(), and gem5::ArmISA::sel.
Referenced by gem5::memory::MemCtrl::accessAndRespond(), gem5::memory::HeteroMemCtrl::burstAlign(), gem5::VMA::contains(), gem5::ArmISA::MMU::finalizePhysical(), gem5::X86ISA::TLB::finalizePhysical(), gem5::Gicv3::getRedistributorByAddr(), gem5::memory::AbstractMemory::initState(), gem5::AddrRange::intersects(), gem5::AMDGPUDevice::isROM(), gem5::RiscvISA::PMP::pmpCheck(), gem5::GenericTimerFrame::read(), gem5::GenericTimerMem::read(), gem5::GenericWatchdog::read(), gem5::GicV2::read(), gem5::Gicv3::read(), gem5::Gicv3Distributor::read(), gem5::Gicv3Its::read(), gem5::Gicv3Redistributor::read(), gem5::GicV2::readDistributor(), gem5::trace::TarmacParserRecord::readMemNoEffect(), gem5::memory::HBMCtrl::recvAtomic(), gem5::memory::HeteroMemCtrl::recvAtomic(), gem5::memory::MemCtrl::recvAtomic(), gem5::SMMUControlPort::recvAtomic(), gem5::memory::HBMCtrl::recvAtomicBackdoor(), gem5::memory::MemCtrl::recvFunctionalLogic(), gem5::memory::MemCtrl::recvMemBackdoorReq(), gem5::memory::HeteroMemCtrl::recvTimingReq(), gem5::memory::MemCtrl::recvTimingReq(), TEST(), gem5::GenericTimerFrame::write(), gem5::GenericTimerMem::write(), gem5::GenericWatchdog::write(), gem5::GicV2::write(), gem5::Gicv3::write(), gem5::Gicv3Distributor::write(), gem5::Gicv3Its::write(), gem5::Gicv3Redistributor::write(), and gem5::GicV2::writeDistributor().
|
inline |
Definition at line 120 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::contains(), gem5::MipsISA::r, and gem5::RangeSize().
|
inline |
Find entry that contains the given address.
Searches through the ranges in the address map and returns an iterator to the entry which range is a superset of the input address. Returns end() if none found.
r | An input address |
Definition at line 115 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::contains(), gem5::MipsISA::r, and gem5::RangeSize().
|
inline |
Definition at line 95 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::find(), and gem5::MipsISA::r.
|
inline |
Find entry that contains the given address range.
Searches through the ranges in the address map and returns an iterator to the entry which range is a superset of the input address range. Returns end() if none found.
r | An input address range |
Definition at line 90 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::find(), and gem5::MipsISA::r.
Referenced by gem5::AddrRangeMap< V, max_cache_size >::contains(), gem5::AddrRangeMap< V, max_cache_size >::contains(), gem5::BaseXBar::findPort(), and gem5::RiscvISA::PMAChecker::misalignedSupport().
|
inline |
Definition at line 244 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::tree.
Referenced by gem5::RiscvISA::PMAChecker::hasMisaligned().
|
inline |
Get the end address of the range.
Definition at line 350 of file addr_range.hh.
References gem5::AddrRange::_end.
Referenced by gem5::GPUComputeDriver::allocateGpuVma(), gem5::VMA::end(), gem5::AddrRange::exclude(), gem5::init_range(), sc_gem5::TlmToGem5Bridge< BITWIDTH >::invalidateDmi(), gem5::VMA::isStrictSuperset(), gem5::AddrRange::operator&(), gem5::AddrMapper::recvMemBackdoorReq(), gem5::VMA::remap(), gem5::VMA::sanityCheck(), gem5::GPUComputeDriver::setMtype(), gem5::VMA::sliceRegionLeft(), and gem5::VMA::sliceRegionRight().
|
inline |
Definition at line 226 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::tree.
|
inline |
Definition at line 217 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::tree.
Referenced by gem5::AddrRangeMap< V, max_cache_size >::find(), gem5::BaseXBar::findPort(), gem5::AddrRangeMap< V, max_cache_size >::insert(), gem5::RiscvISA::PMAChecker::misalignedSupport(), and gem5::BaseXBar::recvRangeChange().
|
inline |
Definition at line 167 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::cache, gem5::MipsISA::p, and gem5::AddrRangeMap< V, max_cache_size >::tree.
Referenced by gem5::BaseXBar::recvRangeChange().
|
inline |
Definition at line 177 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::cache, gem5::MipsISA::p, gem5::ArmISA::q, and gem5::AddrRangeMap< V, max_cache_size >::tree.
|
inline |
Subtract a list of intervals from the range and return the resulting collection of ranges, so that the union of the two lists cover the original range.
The exclusion list can contain overlapping ranges Interleaving ranges are not supported and will fail the assertion.
the | input exclusion list |
Definition at line 657 of file addr_range.hh.
References gem5::AddrRange::AddrRange(), gem5::ArmISA::e, gem5::AddrRange::end(), gem5::AddrRange::interleaved(), gem5::AddrRange::intersects(), and gem5::AddrRange::start().
Referenced by gem5::AddrRange::exclude(), gem5::init_range(), gem5::operator-(), and gem5::operator-().
Determine the offset of an address within the range.
This function returns the offset of the given address from the starting address discarding any bits that are used for interleaving. This way we can convert the input address to a new unique address in a continuous range that starts from 0.
the | input address |
Definition at line 629 of file addr_range.hh.
References gem5::AddrRange::_end, gem5::AddrRange::_start, gem5::ArmISA::a, gem5::AddrRange::interleaved(), gem5::MaxAddr, and gem5::AddrRange::removeIntlvBits().
Referenced by gem5::memory::MemInterface::getCtrlAddr().
|
inline |
Determing the interleaving granularity of the range.
Definition at line 294 of file addr_range.hh.
References gem5::ctz64(), gem5::AddrRange::interleaved(), gem5::ArmISA::mask, gem5::AddrRange::masks, and gem5::AddrRange::size().
Referenced by gem5::memory::DRAMInterface::init(), and gem5::init_range().
|
inline |
Definition at line 155 of file addr_range_map.hh.
References gem5::ArmISA::d, gem5::AddrRangeMap< V, max_cache_size >::end(), gem5::AddrRangeMap< V, max_cache_size >::intersects(), gem5::MipsISA::r, and gem5::AddrRangeMap< V, max_cache_size >::tree.
Referenced by gem5::RiscvISA::PMAChecker::PMAChecker(), gem5::BaseXBar::recvRangeChange(), TEST(), TEST(), and TEST().
|
inline |
Determine if the range is interleaved or not.
Definition at line 284 of file addr_range.hh.
References gem5::AddrRange::masks.
Referenced by gem5::AddrRange::addIntlvBits(), gem5::ChannelAddrRange::ChannelAddrRange(), gem5::memory::PhysicalMemory::createBackingStore(), gem5::AddrRange::exclude(), gem5::AddrRange::getOffset(), gem5::AddrRange::granularity(), gem5::memory::DRAMInterface::init(), gem5::init_range(), gem5::AddrRange::intersects(), gem5::AddrRange::isSubset(), gem5::AddrRange::operator&(), gem5::AddrRange::operator<(), gem5::AddrRange::removeIntlvBits(), gem5::memory::AbstractMemory::setBackingStore(), and gem5::AddrRange::to_string().
|
inline |
Determine if another range intersects this one, i.e.
if there is an address that is both in this range and the other range. No check is made to ensure either range is valid.
r | Range to intersect with |
Definition at line 408 of file addr_range.hh.
References gem5::AddrRange::_end, gem5::AddrRange::_start, gem5::AddrRange::contains(), gem5::AddrRange::interleaved(), gem5::AddrRange::intlvMatch, gem5::AddrRange::mergesWith(), panic, gem5::MipsISA::r, and gem5::AddrRange::to_string().
Referenced by gem5::AddrRange::exclude(), gem5::init_range(), gem5::VMA::intersects(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().
|
inline |
Definition at line 145 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::find(), and gem5::MipsISA::r.
|
inline |
Find entry that intersects with the given address range.
Searches through the ranges in the address map and returns an iterator to the first entry which range intersects with the input address.
r | An input address |
Definition at line 140 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::find(), and gem5::MipsISA::r.
Referenced by gem5::AddrRangeMap< V, max_cache_size >::insert(), and gem5::BaseXBar::recvRangeChange().
|
inline |
Determine if this range is a subset of another range, i.e.
if every address in this range is also in the other range. No check is made to ensure either range is valid.
r | Range to compare with |
Definition at line 445 of file addr_range.hh.
References gem5::AddrRange::_end, gem5::AddrRange::_start, gem5::AddrRange::interleaved(), panic, gem5::MipsISA::r, gem5::AddrRange::size(), and gem5::AddrRange::to_string().
Referenced by gem5::memory::AbstractMemory::access(), gem5::BaseXBar::findPort(), gem5::memory::AbstractMemory::functionalAccess(), gem5::System::getDeviceMemory(), gem5::init_range(), gem5::memory::AbstractMemory::initState(), gem5::VMA::isSubset(), gem5::RiscvISA::PMAChecker::isUncacheable(), gem5::memory::HBMCtrl::recvMemBackdoorReq(), gem5::BaseXBar::recvRangeChange(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().
|
inline |
Determine if another range merges with the current one, i.e.
if they are part of the same contigous range and have the same interleaving bits.
r | Range to evaluate merging with |
Definition at line 391 of file addr_range.hh.
References gem5::AddrRange::_end, gem5::AddrRange::_start, gem5::AddrRange::masks, and gem5::MipsISA::r.
Referenced by gem5::AddrRange::AddrRange(), gem5::init_range(), gem5::AddrRange::intersects(), gem5::VMA::mergesWith(), TEST(), TEST(), TEST(), and TEST().
|
inline |
Definition at line 749 of file addr_range.hh.
References gem5::MipsISA::r.
Definition at line 758 of file addr_range.hh.
References gem5::AddrRange::AddrRange(), gem5::AddrRange::end(), gem5::AddrRange::interleaved(), panic_if, gem5::MipsISA::r, and gem5::AddrRange::start().
|
inline |
Less-than operator used to turn an STL map into a binary search tree of non-overlapping address ranges.
r | Range to compare with |
Definition at line 713 of file addr_range.hh.
References gem5::AddrRange::_start, gem5::AddrRange::interleaved(), gem5::AddrRange::intlvMatch, and gem5::MipsISA::r.
|
inline |
Definition at line 735 of file addr_range.hh.
References gem5::AddrRange::_end, gem5::AddrRange::_start, gem5::AddrRange::intlvMatch, gem5::AddrRange::masks, and gem5::MipsISA::r.
Definition at line 831 of file addr_range.hh.
Referenced by gem5::X86ISA::Interrupts::getIntAddrRange(), gem5::init_range(), and TEST().
Definition at line 840 of file addr_range.hh.
Referenced by gem5::init_range(), TEST(), and TEST().
Definition at line 849 of file addr_range.hh.
Referenced by gem5::AMDGPUDevice::AMDGPUDevice(), gem5::RiscvISA::PMAChecker::checkPAddrAlignment(), gem5::AddrRangeMap< V, max_cache_size >::contains(), gem5::AddrRangeMap< V, max_cache_size >::contains(), gem5::Packet::getAddrRange(), gem5::BasicPioDevice::getAddrRanges(), gem5::GenericPciHost::getAddrRanges(), gem5::Gicv2m::getAddrRanges(), gem5::Gicv3Its::getAddrRanges(), gem5::HSAPacketProcessor::getAddrRanges(), gem5::Iob::getAddrRanges(), gem5::LupioBLK::getAddrRanges(), gem5::MHU::getAddrRanges(), gem5::NoMaliGpu::getAddrRanges(), gem5::Pl111::getAddrRanges(), gem5::TesterDma::getAddrRanges(), gem5::Uart8250::getAddrRanges(), gem5::UFSHostDevice::getAddrRanges(), gem5::VGic::getAddrRanges(), gem5::X86ISA::I8042::getAddrRanges(), gem5::X86ISA::I8259::getAddrRanges(), gem5::X86ISA::Interrupts::getAddrRanges(), gem5::Gicv3::init(), gem5::init_range(), gem5::GPUComputeDriver::setMtype(), TEST(), TEST(), and TEST().
Remove the interleaving bits from an input address.
This function returns a new address in a continous range [ start, start + size / intlv_bits). We can achieve this by discarding the LSB in each mask.
where x0 is the LSB set in masks[0] and x1 is the LSB set in masks[1]
a | the input address |
Definition at line 535 of file addr_range.hh.
References gem5::ArmISA::a, gem5::ctz64(), gem5::ArmISA::i, gem5::insertBits(), gem5::AddrRange::interleaved(), and gem5::AddrRange::masks.
Referenced by gem5::AddrRange::getOffset().
|
inline |
Get the size of the address range.
For a case where interleaving is used we make the simplifying assumption that the size is a divisible by the size of the interleaving slice.
Definition at line 326 of file addr_range.hh.
References gem5::AddrRange::_end, gem5::AddrRange::_start, and gem5::AddrRange::masks.
Referenced by gem5::memory::AbstractMemory::AbstractMemory(), gem5::KvmVM::coalesceMMIO(), gem5::Gicv3Redistributor::copy(), gem5::memory::PhysicalMemory::createBackingStore(), gem5::BackdoorManager::createRevertedBackdoor(), gem5::BackdoorManager::findBackdoor(), gem5::AddrRange::granularity(), gem5::init_range(), gem5::AddrRange::isSubset(), sc_gem5::Gem5ToTlmBridge< BITWIDTH >::recvMemBackdoorReq(), gem5::VMA::remap(), gem5::GPUDynInst::resolveFlatSegment(), gem5::memory::PhysicalMemory::serializeStore(), gem5::memory::AbstractMemory::size(), gem5::VMA::size(), and gem5::memory::PhysicalMemory::unserializeStore().
|
inline |
Definition at line 235 of file addr_range_map.hh.
References gem5::AddrRangeMap< V, max_cache_size >::tree.
|
inline |
Get the start address of the range.
Definition at line 343 of file addr_range.hh.
References gem5::AddrRange::_start.
Referenced by gem5::GPUComputeDriver::allocateGpuVma(), gem5::memory::DRAMSysWrapper::b_transport(), gem5::KvmVM::coalesceMMIO(), gem5::Gicv3Distributor::copy(), gem5::Gicv3Redistributor::copy(), gem5::GicV2::copyGicState(), gem5::BackdoorManager::createRevertedBackdoor(), gem5::AddrRange::exclude(), gem5::VMA::fillMemPages(), gem5::ArmISA::MMU::finalizePhysical(), gem5::X86ISA::TLB::finalizePhysical(), gem5::BackdoorManager::findBackdoor(), gem5::Gicv3::getRedistributorByAddr(), gem5::init_range(), gem5::memory::AbstractMemory::initState(), sc_gem5::TlmToGem5Bridge< BITWIDTH >::invalidateDmi(), gem5::VMA::isStrictSuperset(), gem5::memory::DRAMSysWrapper::nb_transport_fw(), gem5::AddrRange::operator&(), gem5::memory::SharedMemoryServer::ClientSocketEvent::process(), gem5::GenericTimerFrame::read(), gem5::GenericTimerMem::read(), gem5::Gicv3::read(), gem5::Gicv3Distributor::read(), gem5::Gicv3Its::read(), gem5::Gicv3Redistributor::read(), gem5::GenericWatchdog::readControl(), gem5::SMMUv3::readControl(), gem5::GicV2::readCpu(), gem5::GicV2::readDistributor(), gem5::scmi::AgentChannel::readLength(), gem5::scmi::AgentChannel::readMessage(), gem5::AMDGPUDevice::readMMIO(), gem5::GenericWatchdog::readRefresh(), gem5::scmi::AgentChannel::readStatus(), gem5::AddrMapper::recvMemBackdoorReq(), gem5::memory::MemCtrl::recvMemBackdoorReq(), sc_gem5::Gem5ToTlmBridge< BITWIDTH >::recvMemBackdoorReq(), gem5::VMA::remap(), gem5::VMA::sanityCheck(), gem5::GPUComputeDriver::setMtype(), gem5::VMA::sliceRegionLeft(), gem5::VMA::sliceRegionRight(), gem5::memory::AbstractMemory::start(), gem5::VMA::start(), gem5::memory::AbstractMemory::toHostAddr(), gem5::memory::DRAMSysWrapper::transport_dbg(), gem5::GenericTimerMem::validateFrameRange(), gem5::GenericTimerFrame::write(), gem5::GenericTimerMem::write(), gem5::Gicv3::write(), gem5::Gicv3Distributor::write(), gem5::Gicv3Its::write(), gem5::Gicv3Redistributor::write(), gem5::scmi::PlatformChannel::writeBackMessage(), gem5::GenericWatchdog::writeControl(), gem5::SMMUv3::writeControl(), gem5::GicV2::writeCpu(), gem5::GicV2::writeDistributor(), gem5::AMDGPUDevice::writeMMIO(), gem5::GenericWatchdog::writeRefresh(), and gem5::AMDGPUDevice::writeROM().
|
inline |
Determine the number of interleaved address stripes this range is part of.
Definition at line 316 of file addr_range.hh.
References gem5::AddrRange::masks.
Referenced by gem5::init_range().
|
inline |
Get a string representation of the range.
This could alternatively be implemented as a operator<<, but at the moment that seems like overkill.
Definition at line 360 of file addr_range.hh.
References gem5::AddrRange::_end, gem5::AddrRange::_start, gem5::bits(), gem5::csprintf(), gem5::ctz64(), gem5::ArmISA::i, gem5::AddrRange::interleaved(), gem5::AddrRange::intlvMatch, gem5::ArmISA::mask, and gem5::AddrRange::masks.
Referenced by gem5::memory::AbstractMemory::AbstractMemory(), gem5::RegisterBank< BankByteOrder >::addRegistersAt(), gem5::AddrRange::AddrRange(), gem5::AtomicSimpleCPU::amoMem(), gem5::TimingSimpleCPU::completeDataAccess(), gem5::TimingSimpleCPU::completeIfetch(), gem5::memory::PhysicalMemory::createBackingStore(), gem5::GUPSGen::createNextReq(), gem5::AtomicSimpleCPU::fetchInstMem(), gem5::BaseXBar::findPort(), gem5::GUPSGen::handleResponse(), gem5::init_range(), gem5::memory::AbstractMemory::initState(), gem5::AddrRange::intersects(), gem5::AddrRange::isSubset(), gem5::memory::SharedMemoryServer::ClientSocketEvent::process(), gem5::AtomicSimpleCPU::readMem(), gem5::memory::MemCtrl::recvMemBackdoorReq(), gem5::BaseXBar::recvRangeChange(), gem5::GUPSGen::sendNextReq(), and gem5::AtomicSimpleCPU::writeMem().
|
inline |
Determine if the range is valid.
Definition at line 336 of file addr_range.hh.
References gem5::AddrRange::_end, and gem5::AddrRange::_start.
Referenced by gem5::memory::AbstractMemory::AbstractMemory(), gem5::ChannelAddrRange::ChannelAddrRange(), gem5::GenericTimerFrame::hasEl0View(), and gem5::init_range().