Go to the documentation of this file.
41 #ifndef __DEV_IO_DEVICE_HH__
42 #define __DEV_IO_DEVICE_HH__
45 #include "params/BasicPioDevice.hh"
46 #include "params/PioDevice.hh"
59 template <
class Device>
77 return delay + receive_delay;
83 return device->getAddrRanges();
141 void init()
override;
180 #endif // __DEV_IO_DEVICE_HH__
Addr pioAddr
Address that the device listens to.
Tick recvAtomic(PacketPtr pkt) override
Receive an atomic request packet from the peer.
PioDevice(const Params *p)
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
uint32_t payloadDelay
The extra pipelining delay from seeing the packet until the end of payload is transmitted by the comp...
const PortID InvalidPortID
uint64_t Tick
Tick count type.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
BasicPioDeviceParams Params
uint32_t headerDelay
The extra delay from seeing the packet until the header is transmitted.
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
BasicPioDevice(const Params *p, Addr size)
The PioPort class is a programmed i/o port that all devices that are sensitive to an address range us...
This device is the base class which all devices senstive to an address range inherit from.
virtual Tick read(PacketPtr pkt)=0
Pure virtual function that the device must implement.
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
AddrRangeList getAddrRanges() const override
Determine the address ranges that this device responds to.
Ports are used to interface objects to each other.
virtual Tick write(PacketPtr pkt)=0
Pure virtual function that the device must implement.
Addr pioSize
Size that the device's address range.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const std::string name() const
Return port name (for DPRINTF).
virtual AddrRangeList getAddrRanges() const =0
Every PIO device is obliged to provide an implementation that returns the address ranges the device r...
const Params * params() const
The simple timing port uses a queued port to implement recvFunctional and recvTimingReq through recvA...
const Params * params() const
const SimObjectParams * _params
Cached copy of the object parameters.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Device * device
The device that this port serves.
Tick pioDelay
Delay that the device experinces on an access.
AddrRangeList getAddrRanges() const override
Get a list of the non-overlapping address ranges the owner is responsible for.
PioPort< PioDevice > pioPort
The pioPort that handles the requests for us and provides us requests that it sees.
Generated on Wed Sep 30 2020 14:02:11 for gem5 by doxygen 1.8.17