gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BaseMasterPort Class Referenceabstract

A BaseMasterPort is a protocol-agnostic master port, responsible only for the structural connection to a slave port. More...

#include <port.hh>

Inheritance diagram for BaseMasterPort:
Port MasterPort AddrMapper::MapperMasterPort AtomicSimpleCPU::AtomicCPUPort BaseKvmCPU::KVMCpuPort Bridge::BridgeMasterPort CoherentXBar::CoherentXBarMasterPort CoherentXBar::SnoopRespPort CommMonitor::MonitorMasterPort ComputeUnit::DataPort ComputeUnit::DTLBPort ComputeUnit::ITLBPort ComputeUnit::LDSPort ComputeUnit::SQCPort DmaPort ExternalMaster::Port FullO3CPU< Impl >::DcachePort FullO3CPU< Impl >::IcachePort GarnetSyntheticTraffic::CpuPort GpuDispatcher::TLBPort MemCheckerMonitor::MonitorMasterPort MemTest::CpuPort MinorCPU::MinorCPUPort NoncoherentXBar::NoncoherentXBarMasterPort QueuedMasterPort RubyDirectedTester::CpuPort RubyTester::CpuPort SerialLink::SerialLinkMasterPort System::SystemPort TimingSimpleCPU::TimingCPUPort TLBCoalescer::MemSidePort TraceCPU::DcachePort TraceCPU::IcachePort TrafficGen::TrafficGenPort X86ISA::GpuTLB::MemSidePort X86ISA::Walker::WalkerPort

Public Member Functions

virtual void bind (BaseSlavePort &slave_port)=0
 
virtual void unbind ()=0
 
BaseSlavePortgetSlavePort () const
 
bool isConnected () const
 
- Public Member Functions inherited from Port
const std::string name () const
 Return port name (for DPRINTF). More...
 
PortID getId () const
 Get the port id. More...
 

Protected Member Functions

 BaseMasterPort (const std::string &name, MemObject *owner, PortID id=InvalidPortID)
 
virtual ~BaseMasterPort ()
 
- Protected Member Functions inherited from Port
 Port (const std::string &_name, MemObject &_owner, PortID _id)
 Abstract base class for ports. More...
 
virtual ~Port ()
 Virtual destructor due to inheritance. More...
 

Protected Attributes

BaseSlavePort_baseSlavePort
 
- Protected Attributes inherited from Port
const PortID id
 A numeric identifier to distinguish ports in a vector, and set to InvalidPortID in case this port is not part of a vector. More...
 
MemObjectowner
 A reference to the MemObject that owns this port. More...
 

Detailed Description

A BaseMasterPort is a protocol-agnostic master port, responsible only for the structural connection to a slave port.

The final master port that inherits from the base class must override the bind member function for the specific slave port class.

Definition at line 115 of file port.hh.

Constructor & Destructor Documentation

BaseMasterPort::BaseMasterPort ( const std::string &  name,
MemObject owner,
PortID  id = InvalidPortID 
)
protected

Definition at line 63 of file port.cc.

BaseMasterPort::~BaseMasterPort ( )
protectedvirtual

Definition at line 69 of file port.cc.

Member Function Documentation

virtual void BaseMasterPort::bind ( BaseSlavePort slave_port)
pure virtual

Implemented in MasterPort.

Referenced by CxxConfigManager::bindPort(), and connectPorts().

BaseSlavePort & BaseMasterPort::getSlavePort ( ) const

Definition at line 74 of file port.cc.

References _baseSlavePort, Port::name(), and panic.

bool BaseMasterPort::isConnected ( ) const
virtual void BaseMasterPort::unbind ( )
pure virtual

Implemented in MasterPort.

Member Data Documentation

BaseSlavePort* BaseMasterPort::_baseSlavePort
protected

Definition at line 120 of file port.hh.

Referenced by MasterPort::bind(), getSlavePort(), isConnected(), and MasterPort::unbind().


The documentation for this class was generated from the following files:

Generated on Fri Jun 9 2017 13:04:03 for gem5 by doxygen 1.8.6