gem5
v20.1.0.0
|
#include <cassert>
#include "debug/RubySlicc.hh"
#include "mem/packet.hh"
#include "mem/ruby/common/Address.hh"
#include "mem/ruby/common/BoolVec.hh"
#include "mem/ruby/common/DataBlock.hh"
#include "mem/ruby/common/TypeDefines.hh"
#include "mem/ruby/common/WriteMask.hh"
Go to the source code of this file.
Functions | |
Cycles | zero_time () |
NodeID | intToID (int nodenum) |
int | IDToInt (NodeID id) |
int | addressToInt (Addr addr) |
Addr | intToAddress (int addr) |
int | mod (int val, int mod) |
int | max_tokens () |
bool | isWriteRequest (RubyRequestType type) |
bool | isDataReadRequest (RubyRequestType type) |
bool | isReadRequest (RubyRequestType type) |
bool | isHtmCmdRequest (RubyRequestType type) |
RubyRequestType | htmCmdToRubyRequestType (const Packet *pkt) |
bool | testAndRead (Addr addr, DataBlock &blk, Packet *pkt) |
This function accepts an address, a data block and a packet. More... | |
bool | testAndReadMask (Addr addr, DataBlock &blk, WriteMask &mask, Packet *pkt) |
This function accepts an address, a data block, a write mask and a packet. More... | |
bool | testAndWrite (Addr addr, DataBlock &blk, Packet *pkt) |
This function accepts an address, a data block and a packet. More... | |
int | countBoolVec (BoolVec bVec) |
|
inline |
Definition at line 76 of file RubySlicc_Util.hh.
References addr.
|
inline |
Definition at line 256 of file RubySlicc_Util.hh.
References X86ISA::count, and ArmISA::e.
|
inline |
Definition at line 153 of file RubySlicc_Util.hh.
References panic, and Packet::req.
Referenced by Sequencer::makeRequest().
|
inline |
Definition at line 69 of file RubySlicc_Util.hh.
References ArmISA::id.
|
inline |
Definition at line 83 of file RubySlicc_Util.hh.
References addr.
|
inline |
Definition at line 62 of file RubySlicc_Util.hh.
References ArmISA::id.
|
inline |
|
inline |
Definition at line 140 of file RubySlicc_Util.hh.
References type.
Referenced by HTMSequencer::htmCallback(), and HTMSequencer::insertRequest().
|
inline |
Definition at line 129 of file RubySlicc_Util.hh.
References isDataReadRequest(), and type.
|
inline |
Definition at line 101 of file RubySlicc_Util.hh.
References type.
|
inline |
Definition at line 95 of file RubySlicc_Util.hh.
|
inline |
Definition at line 90 of file RubySlicc_Util.hh.
References X86ISA::val.
Referenced by tlm_utils::passthrough_target_socket_tagged_b< MODULE, 32, tlm::tlm_base_protocol_types, sc_core::SC_ZERO_OR_MORE_BOUND >::default_name(), sc_gem5::Module::fromScModule(), tlm_utils::simple_target_socket_b< MODULE, BUSWIDTH, TYPES, POL >::fw_process::fw_process(), tlm_utils::passthrough_target_socket_b< SimpleLTTarget2, 32, tlm::tlm_base_protocol_types >::passthrough_target_socket_b(), sc_gem5::pickParentModule(), tlm_utils::passthrough_target_socket_tagged_b< MODULE, 32, tlm::tlm_base_protocol_types, sc_core::SC_ZERO_OR_MORE_BOUND >::register_b_transport(), tlm_utils::simple_initiator_socket_b< CoreDecouplingLTInitiator, 32, tlm::tlm_base_protocol_types >::register_invalidate_direct_mem_ptr(), tlm_utils::passthrough_target_socket_b< SimpleLTTarget2, 32, tlm::tlm_base_protocol_types >::register_transport_dbg(), sc_core::sc_gen_unique_name(), sc_core::sc_module_sc_new(), tlm_utils::passthrough_target_socket_b< MODULE, BUSWIDTH, TYPES, POL >::process::set_nb_transport_ptr(), tlm_utils::simple_initiator_socket_tagged_b< SimpleBusLT, 32, tlm::tlm_base_protocol_types >::simple_initiator_socket_tagged_b(), and tlm_utils::simple_target_socket_tagged_b< SimpleBusLT, 32, tlm::tlm_base_protocol_types >::simple_target_socket_tagged_b().
This function accepts an address, a data block and a packet.
If the address range for the data block contains the address which the packet needs to read, then the data from the data block is written to the packet. True is returned if the data block was read, otherwise false is returned.
This is used during a functional access "search the world" operation. The functional access looks in every place that might hold a valid data block and, if it finds one, checks to see if it is holding the address the access is searching for. During the access check, the WriteMask could be in any state, including empty.
Definition at line 182 of file RubySlicc_Util.hh.
References addr, data, Packet::getAddr(), DataBlock::getByte(), Packet::getPtr(), Packet::getSize(), ArmISA::i, and makeLineAddress().
This function accepts an address, a data block, a write mask and a packet.
If the valid address range for the data block contains the address which the packet needs to read, then the data from the data block is written to the packet. True is returned if any part of the data block was read, otherwise false is returned.
Definition at line 208 of file RubySlicc_Util.hh.
References addr, data, Packet::getAddr(), DataBlock::getByte(), Packet::getPtr(), Packet::getSize(), ArmISA::i, makeLineAddress(), and ArmISA::mask.
This function accepts an address, a data block and a packet.
If the address range for the data block contains the address which the packet needs to write, then the data from the packet is written to the data block. True is returned if the data block was written, otherwise false is returned.
Definition at line 237 of file RubySlicc_Util.hh.
References addr, data, Packet::getAddr(), Packet::getConstPtr(), Packet::getSize(), ArmISA::i, makeLineAddress(), and DataBlock::setByte().
Referenced by RubyRequest::functionalWrite().
|
inline |
Definition at line 59 of file RubySlicc_Util.hh.