rogue
Loading...
Searching...
No Matches
Public Member Functions | List of all members
rogue::interfaces::memory::SlaveWrap Class Reference

#include <Slave.h>

Inheritance diagram for rogue::interfaces::memory::SlaveWrap:
rogue::interfaces::memory::Slave rogue::EnableSharedFromThis< rogue::interfaces::memory::Slave > rogue::EnableSharedFromThisBase

Public Member Functions

 SlaveWrap (uint32_t min, uint32_t max)
 Constructs a memory-slave wrapper instance.
 
uint32_t doMinAccess ()
 Returns minimum transaction access size.
 
uint32_t defDoMinAccess ()
 Calls the base-class doMinAccess() implementation.
 
uint32_t doMaxAccess ()
 Returns maximum transaction access size.
 
uint32_t defDoMaxAccess ()
 Calls the base-class doMaxAccess() implementation.
 
uint64_t doAddress ()
 Returns base address contribution for this slave.
 
uint64_t defDoAddress ()
 Calls the base-class doAddress() implementation.
 
void doTransaction (std::shared_ptr< rogue::interfaces::memory::Transaction > transaction)
 Services a transaction request from an attached master.
 
void defDoTransaction (std::shared_ptr< rogue::interfaces::memory::Transaction > transaction)
 Calls the base-class doTransaction() implementation.
 
- Public Member Functions inherited from rogue::interfaces::memory::Slave
 Slave (uint32_t min, uint32_t max)
 Constructs a memory slave.
 
virtual ~Slave ()
 Destroys the memory slave instance.
 
virtual void stop ()
 Stops the memory slave interface.
 
void addTransaction (std::shared_ptr< rogue::interfaces::memory::Transaction > transaction)
 Adds a transaction to the internal tracking map.
 
std::shared_ptr< rogue::interfaces::memory::TransactiongetTransaction (uint32_t index)
 Gets a transaction from the internal tracking map.
 
uint32_t min ()
 Returns configured minimum transaction size.
 
uint32_t max ()
 Returns configured maximum transaction size.
 
uint32_t id ()
 Returns unique slave ID.
 
void setName (std::string name)
 Sets slave name.
 
std::string name ()
 Returns slave name.
 
virtual uint32_t doSlaveId ()
 Services SlaveId request from a master.
 
virtual std::string doSlaveName ()
 Services SlaveName request from a master.
 
void lshiftPy (boost::python::object p)
 Supports << operator usage from Python.
 
std::shared_ptr< rogue::interfaces::memory::Master > & operator<< (std::shared_ptr< rogue::interfaces::memory::Master > &other)
 Connects this slave to a master via chaining operator.
 
- Public Member Functions inherited from rogue::EnableSharedFromThis< rogue::interfaces::memory::Slave >
std::shared_ptr< rogue::interfaces::memory::Slaveshared_from_this ()
 Returns a shared_ptr<T> for this instance.
 
- Public Member Functions inherited from rogue::EnableSharedFromThisBase
virtual ~EnableSharedFromThisBase ()
 Virtual destructor for polymorphic base usage.
 

Additional Inherited Members

- Static Public Member Functions inherited from rogue::interfaces::memory::Slave
static std::shared_ptr< rogue::interfaces::memory::Slavecreate (uint32_t min, uint32_t max)
 Creates a memory slave.
 
static void setup_python ()
 Registers this type with Python bindings.
 

Detailed Description

Definition at line 315 of file Slave.h.

Constructor & Destructor Documentation

◆ SlaveWrap()

rogue::interfaces::memory::SlaveWrap::SlaveWrap ( uint32_t  min,
uint32_t  max 
)

Constructs a memory-slave wrapper instance.

Constructor.

Parameters
minMinimum transaction size this slave can accept, in bytes.
maxMaximum transaction size this slave can accept, in bytes.

Definition at line 183 of file Slave.cpp.

Member Function Documentation

◆ defDoAddress()

uint64_t rogue::interfaces::memory::SlaveWrap::defDoAddress ( )

Calls the base-class doAddress() implementation.

Return offset.

Used as the fallback when no Python override is present.

Returns
Address offset in bytes.

Definition at line 244 of file Slave.cpp.

◆ defDoMaxAccess()

uint32_t rogue::interfaces::memory::SlaveWrap::defDoMaxAccess ( )

Calls the base-class doMaxAccess() implementation.

Return max access size to requesting master.

Used as the fallback when no Python override is present.

Returns
Maximum transaction access size in bytes.

Definition at line 223 of file Slave.cpp.

◆ defDoMinAccess()

uint32_t rogue::interfaces::memory::SlaveWrap::defDoMinAccess ( )

Calls the base-class doMinAccess() implementation.

Return min access size to requesting master.

Used as the fallback when no Python override is present.

Returns
Minimum transaction access size in bytes.

Definition at line 202 of file Slave.cpp.

◆ defDoTransaction()

void rogue::interfaces::memory::SlaveWrap::defDoTransaction ( std::shared_ptr< rogue::interfaces::memory::Transaction transaction)

Calls the base-class doTransaction() implementation.

Post a transaction. Master will call this method with the access attributes.

Used as the fallback when no Python override is present.

Parameters
transactionTransaction object to process.

Definition at line 266 of file Slave.cpp.

◆ doAddress()

uint64_t rogue::interfaces::memory::SlaveWrap::doAddress ( )
virtual

Returns base address contribution for this slave.

Return offset.

Invokes the Python override when provided.

Returns
Address offset in bytes.

Reimplemented from rogue::interfaces::memory::Slave.

Definition at line 228 of file Slave.cpp.

◆ doMaxAccess()

uint32_t rogue::interfaces::memory::SlaveWrap::doMaxAccess ( )
virtual

Returns maximum transaction access size.

Return max access size to requesting master.

Invokes the Python override when provided.

Returns
Maximum transaction access size in bytes.

Reimplemented from rogue::interfaces::memory::Slave.

Definition at line 207 of file Slave.cpp.

◆ doMinAccess()

uint32_t rogue::interfaces::memory::SlaveWrap::doMinAccess ( )
virtual

Returns minimum transaction access size.

Return min access size to requesting master.

Invokes the Python override when provided.

Returns
Minimum transaction access size in bytes.

Reimplemented from rogue::interfaces::memory::Slave.

Definition at line 186 of file Slave.cpp.

◆ doTransaction()

void rogue::interfaces::memory::SlaveWrap::doTransaction ( std::shared_ptr< rogue::interfaces::memory::Transaction transaction)
virtual

Services a transaction request from an attached master.

Post a transaction. Master will call this method with the access attributes.

Invokes the Python override when provided.

Parameters
transactionTransaction object to process.

Reimplemented from rogue::interfaces::memory::Slave.

Definition at line 249 of file Slave.cpp.


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