38#ifndef __DEV_ARM_SMMU_V3_DEVICEIFC_HH__
39#define __DEV_ARM_SMMU_V3_DEVICEIFC_HH__
48#include "params/SMMUv3DeviceInterface.hh"
54class SMMUTranslationProcess;
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
ClockedObjectParams Params
Parameters of ClockedObject.
Cycles is a wrapper class for representing cycle counts, i.e.
Wrap a member function inside MemberEventWrapper to use it as an event callback.
virtual std::string name() const
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Ports are used to interface objects to each other.
SMMUATSMemoryPort atsMemPort
std::list< SMMUTranslationProcess * > dependentReads[SMMU_MAX_TRANS_ID]
void atsSendDeviceRetry()
SMMUATSDevicePort atsDevicePort
void scheduleDeviceRetry()
void schedAtsTimingResp(PacketPtr pkt)
Port & getPort(const std::string &name, PortID id) override
Get a port with a given name and index.
SMMUDeviceRetryEvent sendDeviceRetryEvent
Tick atsRecvAtomic(PacketPtr pkt)
SMMUSignal duplicateReqRemoved
void schedTimingResp(PacketPtr pkt)
SMMUv3DeviceInterface(const Params &p)
MemberEventWrapper<&SMMUv3DeviceInterface::atsSendDeviceRetry > atsSendDeviceRetryEvent
bool atsRecvTimingResp(PacketPtr pkt)
const bool prefetchReserveLastWay
PARAMS(SMMUv3DeviceInterface)
Tick recvAtomic(PacketPtr pkt)
const bool microTLBEnable
bool atsRecvTimingReq(PacketPtr pkt)
SMMUDevicePort * devicePort
const bool prefetchEnable
std::list< SMMUTranslationProcess * > dependentWrites[SMMU_MAX_TRANS_ID]
DrainState drain() override
Provide a default implementation of the drain interface for objects that don't need draining.
SMMUSemaphore microTLBSem
unsigned wrBufSlotsRemaining
unsigned pendingMemAccesses
void setSMMU(SMMUv3 *_smmu)
unsigned xlateSlotsRemaining
SMMUSemaphore devicePortSem
SMMUSignal dependentReqRemoved
std::list< SMMUTranslationProcess * > duplicateReqs
bool recvTimingReq(PacketPtr pkt)
ClockedObject declaration and implementation.
DrainState
Object drain/handover states.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
uint64_t Tick
Tick count type.