38 #ifndef __DEV_ARM_SMMU_V3_SLAVEIFC_HH__ 39 #define __DEV_ARM_SMMU_V3_SLAVEIFC_HH__ 48 #include "params/SMMUv3SlaveInterface.hh" 129 const SMMUv3SlaveInterfaceParams *
132 return static_cast<const SMMUv3SlaveInterfaceParams *
>(
_params);
Ports are used to interface objects to each other.
Tick recvAtomic(PacketPtr pkt)
Cycles is a wrapper class for representing cycle counts, i.e.
SMMUDeviceRetryEvent sendDeviceRetryEvent
void schedAtsTimingResp(PacketPtr pkt)
SMMUSignal dependentReqRemoved
SMMUATSSlavePort atsSlavePort
bool atsSlaveRecvTimingReq(PacketPtr pkt)
unsigned pendingMemAccesses
unsigned wrBufSlotsRemaining
const bool microTLBEnable
std::list< SMMUTranslationProcess * > dependentReads[SMMU_MAX_TRANS_ID]
std::list< SMMUTranslationProcess * > dependentWrites[SMMU_MAX_TRANS_ID]
DrainState
Object drain/handover states.
SMMUSemaphore microTLBSem
bool recvTimingReq(PacketPtr pkt)
unsigned xlateSlotsRemaining
const bool prefetchReserveLastWay
const SMMUv3SlaveInterfaceParams * params() const
bool atsMasterRecvTimingResp(PacketPtr pkt)
void setSMMU(SMMUv3 *_smmu)
uint64_t Tick
Tick count type.
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
SMMUv3SlaveInterface(const SMMUv3SlaveInterfaceParams *p)
ClockedObject declaration and implementation.
SMMUATSMasterPort atsMasterPort
Tick atsSlaveRecvAtomic(PacketPtr pkt)
void atsSendDeviceRetry()
void schedTimingResp(PacketPtr pkt)
SMMUSignal duplicateReqRemoved
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
void scheduleDeviceRetry()
virtual const std::string name() const
DrainState drain() override
Notify an object that it needs to drain its state.
const SimObjectParams * _params
Cached copy of the object parameters.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
const bool prefetchEnable
EventWrapper< SMMUv3SlaveInterface, &SMMUv3SlaveInterface::atsSendDeviceRetry > atsSendDeviceRetryEvent
Port & getPort(const std::string &name, PortID id) override
Get a port with a given name and index.
std::list< SMMUTranslationProcess * > duplicateReqs
SMMUSemaphore slavePortSem
SMMUSlavePort * slavePort