38#ifndef __MEM_MEM_CHECKER_MONITOR_HH__
39#define __MEM_MEM_CHECKER_MONITOR_HH__
43#include "params/MemCheckerMonitor.hh"
58 using Params = MemCheckerMonitorParams;
This is the request port of the communication monitor.
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
void recvFunctionalSnoop(PacketPtr pkt)
Receive a functional snoop request packet from the peer.
void recvRangeChange()
Called to receive an address range change from the peer response port.
bool isSnooping() const
Determine if this request port is snooping or not.
MonitorRequestPort(const std::string &_name, MemCheckerMonitor &_mon)
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
void recvTimingSnoopReq(PacketPtr pkt)
Receive a timing snoop request from the peer.
Tick recvAtomicSnoop(PacketPtr pkt)
Receive an atomic snoop request packet from our peer.
This is the response port of the communication monitor.
Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
bool recvTimingReq(PacketPtr pkt)
Receive a timing request from the peer.
MonitorResponsePort(const std::string &_name, MemCheckerMonitor &_mon)
bool recvTimingSnoopResp(PacketPtr pkt)
Receive a timing snoop response from the peer.
void recvRespRetry()
Called by the peer if sendTimingResp was called on this protocol (causing recvTimingResp to be called...
void recvFunctional(PacketPtr pkt)
Receive a functional request packet from the peer.
AddrRangeList getAddrRanges() const
Get a list of the non-overlapping address ranges the owner is responsible for.
Implements a MemChecker monitor, to be inserted between two ports.
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
void recvFunctionalSnoop(PacketPtr pkt)
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
bool recvTimingSnoopResp(PacketPtr pkt)
Tick recvAtomicSnoop(PacketPtr pkt)
MemCheckerMonitorParams Params
Parameters of memchecker monitor.
bool recvTimingResp(PacketPtr pkt)
MemCheckerMonitor(const Params ¶ms)
Constructor based on the Python params.
void recvTimingSnoopReq(PacketPtr pkt)
void recvFunctional(PacketPtr pkt)
MonitorResponsePort cpuSidePort
Instance of response port, i.e.
~MemCheckerMonitor()
Destructor.
MonitorRequestPort memSidePort
Instance of request port, facing the memory side.
bool recvTimingReq(PacketPtr pkt)
AddrRangeList getAddrRanges() const
Tick recvAtomic(PacketPtr pkt)
uint64_t Serial
The Serial type is used to be able to uniquely identify a transaction as it passes through the system...
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.
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
A ResponsePort is a specialization of a port.
Abstract superclass for simulation objects.
const Params & params() const
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
const PortID InvalidPortID
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
uint64_t Tick
Tick count type.
Declaration of Statistics objects.
MemCheckerMonitorSenderState(MemChecker::Serial _serial)
MemChecker::Serial serial
A virtual base opaque structure used to hold state associated with the packet (e.g....