gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Attributes | Friends | List of all members
Sinic::Device Class Reference

#include <sinic.hh>

Inheritance diagram for Sinic::Device:
Sinic::Base EtherDevBase EtherDevice PciDevice DmaDevice PioDevice MemObject ClockedObject SimObject Clocked EventManager Serializable Drainable

Classes

struct  VirtualReg
 

Public Member Functions

bool recvPacket (EthPacketPtr packet)
 device ethernet interface More...
 
void transferDone ()
 
EtherIntgetEthPort (const std::string &if_name, int idx) override
 Additional function to return the Port of a memory object. More...
 
Tick read (PacketPtr pkt) override
 Memory Interface. More...
 
Tick write (PacketPtr pkt) override
 IPR read of device register. More...
 
virtual void drainResume () override
 Resume execution after a successful drain. More...
 
void prepareIO (ContextID cpu, int index)
 
void prepareRead (ContextID cpu, int index)
 
void prepareWrite (ContextID cpu, int index)
 
void regStats () override
 Register statistics for this object. More...
 
void resetStats () override
 Reset statistics associated with this object. More...
 
void serialize (CheckpointOut &cp) const override
 Serialization stuff. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
 Device (const Params *p)
 
 ~Device ()
 
- Public Member Functions inherited from Sinic::Base
const Paramsparams () const
 
 Base (const Params *p)
 
- Public Member Functions inherited from EtherDevBase
 EtherDevBase (const EtherDevBaseParams *params)
 
const EtherDevBaseParams * params () const
 
- Public Member Functions inherited from EtherDevice
 EtherDevice (const Params *params)
 
const Paramsparams () const
 
- Public Member Functions inherited from PciDevice
virtual Tick writeConfig (PacketPtr pkt)
 Write to the PCI config space data that is stored locally. More...
 
virtual Tick readConfig (PacketPtr pkt)
 Read from the PCI config space data that is stored locally. More...
 
Addr pciToDma (Addr pci_addr) const
 
void intrPost ()
 
void intrClear ()
 
uint8_t interruptLine () const
 
AddrRangeList getAddrRanges () const override
 Determine the address ranges that this device responds to. More...
 
 PciDevice (const PciDeviceParams *params)
 Constructor for PCI Dev. More...
 
void serialize (CheckpointOut &cp) const override
 Serialize this object to the given output stream. More...
 
void unserialize (CheckpointIn &cp) override
 Reconstruct the state of this object from a checkpoint. More...
 
const PciBusAddrbusAddr () const
 
- Public Member Functions inherited from DmaDevice
 DmaDevice (const Params *p)
 
virtual ~DmaDevice ()
 
void dmaWrite (Addr addr, int size, Event *event, uint8_t *data, Tick delay=0)
 
void dmaRead (Addr addr, int size, Event *event, uint8_t *data, Tick delay=0)
 
bool dmaPending () const
 
void init () override
 init() is called after all C++ SimObjects have been created and all ports are connected. More...
 
unsigned int cacheBlockSize () const
 
BaseMasterPortgetMasterPort (const std::string &if_name, PortID idx=InvalidPortID) override
 Get a master port with a given name and index. More...
 
- Public Member Functions inherited from PioDevice
 PioDevice (const Params *p)
 
virtual ~PioDevice ()
 
const Paramsparams () const
 
virtual BaseSlavePortgetSlavePort (const std::string &if_name, PortID idx=InvalidPortID)
 Get a slave port with a given name and index. More...
 
- Public Member Functions inherited from MemObject
const Paramsparams () const
 
 MemObject (const Params *params)
 
- Public Member Functions inherited from ClockedObject
 ClockedObject (const ClockedObjectParams *p)
 
const Paramsparams () const
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
Enums::PwrState pwrState () const
 
std::string pwrStateName () const
 
std::vector< double > pwrStateWeights () const
 Returns the percentage residency for each power state. More...
 
void computeStats ()
 Record stats values like state residency by computing the time difference from previous update. More...
 
void pwrState (Enums::PwrState)
 
void regStats () override
 Register statistics for this object. More...
 
- Public Member Functions inherited from SimObject
const Paramsparams () const
 
 SimObject (const Params *_params)
 
virtual ~SimObject ()
 
virtual const std::string name () const
 
virtual void loadState (CheckpointIn &cp)
 loadState() is called on each SimObject when restoring from a checkpoint. More...
 
virtual void initState ()
 initState() is called on each SimObject when not restoring from a checkpoint. More...
 
virtual void regProbePoints ()
 Register probe points for this object. More...
 
virtual void regProbeListeners ()
 Register probe listeners for this object. More...
 
ProbeManagergetProbeManager ()
 Get the probe manager for this object. More...
 
virtual void startup ()
 startup() is the final initialization call before simulation. More...
 
DrainState drain () override
 Provide a default implementation of the drain interface for objects that don't need draining. More...
 
virtual void memWriteback ()
 Write back dirty buffers to memory using functional writes. More...
 
virtual void memInvalidate ()
 Invalidate the contents of memory buffers. More...
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
- Public Member Functions inherited from EventManager
 EventManager (EventManager &em)
 
 EventManager (EventManager *em)
 
 EventManager (EventQueue *eq)
 
EventQueueeventQueue () const
 
void schedule (Event &event, Tick when)
 
void deschedule (Event &event)
 
void reschedule (Event &event, Tick when, bool always=false)
 
void schedule (Event *event, Tick when)
 
void deschedule (Event *event)
 
void reschedule (Event *event, Tick when, bool always=false)
 
void wakeupEventQueue (Tick when=(Tick)-1)
 
void setCurTick (Tick newVal)
 
- Public Member Functions inherited from Serializable
 Serializable ()
 
virtual ~Serializable ()
 
void serializeSection (CheckpointOut &cp, const char *name) const
 Serialize an object into a new section. More...
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object. More...
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 
- Public Member Functions inherited from Drainable
DrainState drainState () const
 Return the current drain state of an object. More...
 
virtual void notifyFork ()
 Notify a child process of a fork. More...
 
- Public Member Functions inherited from Clocked
void updateClockPeriod () const
 Update the tick to the current tick. More...
 
Tick clockEdge (Cycles cycles=Cycles(0)) const
 Determine the tick when a cycle begins, by default the current one, but the argument also enables the caller to determine a future cycle. More...
 
Cycles curCycle () const
 Determine the current cycle, corresponding to a tick aligned to a clock edge. More...
 
Tick nextCycle () const
 Based on the clock of the object, determine the start tick of the first cycle that is at least one cycle in the future. More...
 
uint64_t frequency () const
 
Tick clockPeriod () const
 
double voltage () const
 
Cycles ticksToCycles (Tick t) const
 
Tick cyclesToTicks (Cycles c) const
 

Protected Types

enum  RxState {
  rxIdle, rxFifoBlock, rxBeginCopy, rxCopy,
  rxCopyDone
}
 Receive State Machine States. More...
 
enum  TxState {
  txIdle, txFifoBlock, txBeginCopy, txCopy,
  txCopyDone
}
 Transmit State Machine states. More...
 
typedef std::vector< VirtualRegVirtualRegs
 
typedef std::list< unsigned > VirtualList
 
typedef EventWrapper< Device,&Device::rxKickRxKickEvent
 
typedef EventWrapper< Device,&Device::txKickTxKickEvent
 
typedef EventWrapper< Device,&Device::txEventTransmitTxEvent
 
- Protected Types inherited from Sinic::Base
typedef EventWrapper< Base,&Base::cpuInterruptIntrEvent
 

Protected Member Functions

uint8_t & regData8 (Addr daddr)
 
uint32_t & regData32 (Addr daddr)
 
uint64_t & regData64 (Addr daddr)
 
void reset ()
 
void rxKick ()
 
void txKick ()
 
void transmit ()
 Retransmit event. More...
 
void txEventTransmit ()
 
void txDump () const
 
void rxDump () const
 
bool rxFilter (const EthPacketPtr &packet)
 receive address filter More...
 
void changeConfig (uint32_t newconfig)
 device configuration More...
 
void command (uint32_t command)
 
void rxDmaDone ()
 DMA parameters. More...
 
void txDmaDone ()
 
void devIntrPost (uint32_t interrupts)
 Interrupt management. More...
 
void devIntrClear (uint32_t interrupts=Regs::Intr_All)
 
void devIntrChangeMask (uint32_t newmask)
 
- Protected Member Functions inherited from Sinic::Base
void cpuIntrPost (Tick when)
 
void cpuInterrupt ()
 
void cpuIntrClear ()
 
bool cpuIntrPending () const
 
void cpuIntrAck ()
 
- Protected Member Functions inherited from PciDevice
bool isBAR (Addr addr, int bar) const
 Does the given address lie within the space mapped by the given base address register? More...
 
int getBAR (Addr addr)
 Which base address register (if any) maps the given address? More...
 
bool getBAR (Addr addr, int &bar, Addr &offs)
 Which base address register (if any) maps the given address? More...
 
- Protected Member Functions inherited from Drainable
 Drainable ()
 
virtual ~Drainable ()
 
void signalDrainDone () const
 Signal that an object is drained. More...
 
- Protected Member Functions inherited from Clocked
 Clocked (ClockDomain &clk_domain)
 Create a clocked object and set the clock domain based on the parameters. More...
 
 Clocked (Clocked &)=delete
 
Clockedoperator= (Clocked &)=delete
 
virtual ~Clocked ()
 Virtual destructor due to inheritance. More...
 
void resetClock () const
 Reset the object's clock using the current global tick value. More...
 

Protected Attributes

struct {
   uint32_t   Config
 
   uint32_t   Command
 
   uint32_t   IntrStatus
 
   uint32_t   IntrMask
 
   uint32_t   RxMaxCopy
 
   uint32_t   TxMaxCopy
 
   uint32_t   ZeroCopySize
 
   uint32_t   ZeroCopyMark
 
   uint32_t   VirtualCount
 
   uint32_t   RxMaxIntr
 
   uint32_t   RxFifoSize
 
   uint32_t   TxFifoSize
 
   uint32_t   RxFifoLow
 
   uint32_t   TxFifoLow
 
   uint32_t   RxFifoHigh
 
   uint32_t   TxFifoHigh
 
   uint64_t   RxData
 
   uint64_t   RxDone
 
   uint64_t   RxWait
 
   uint64_t   TxData
 
   uint64_t   TxDone
 
   uint64_t   TxWait
 
   uint64_t   HwAddr
 
   uint64_t   RxStatus
 
regs
 device register file More...
 
Counter rxUnique
 
Counter txUnique
 
VirtualRegs virtualRegs
 
VirtualList rxList
 
VirtualList rxBusy
 
int rxActive
 
VirtualList txList
 
int rxBusyCount
 
int rxMappedCount
 
int rxDirtyCount
 
RxState rxState
 
PacketFifo rxFifo
 
PacketFifo::iterator rxFifoPtr
 
bool rxEmpty
 
bool rxLow
 
Addr rxDmaAddr
 
uint8_t * rxDmaData
 
unsigned rxDmaLen
 
TxState txState
 
PacketFifo txFifo
 
bool txFull
 
EthPacketPtr txPacket
 
int txPacketOffset
 
int txPacketBytes
 
Addr txDmaAddr
 
uint8_t * txDmaData
 
int txDmaLen
 
Tick rxKickTick
 
Tick txKickTick
 
TxEvent txEvent
 
EventWrapper< Device,&Device::rxDmaDonerxDmaEvent
 
EventWrapper< Device,&Device::txDmaDonetxDmaEvent
 
Tick dmaReadDelay
 
Tick dmaReadFactor
 
Tick dmaWriteDelay
 
Tick dmaWriteFactor
 
- Protected Attributes inherited from Sinic::Base
bool rxEnable
 
bool txEnable
 
Tick intrDelay
 
Tick intrTick
 
bool cpuIntrEnable
 
bool cpuPendingIntr
 
IntrEventintrEvent
 
Interfaceinterface
 
- Protected Attributes inherited from EtherDevice
Stats::Scalar txBytes
 
Stats::Scalar rxBytes
 
Stats::Scalar txPackets
 
Stats::Scalar rxPackets
 
Stats::Scalar txIpChecksums
 
Stats::Scalar rxIpChecksums
 
Stats::Scalar txTcpChecksums
 
Stats::Scalar rxTcpChecksums
 
Stats::Scalar txUdpChecksums
 
Stats::Scalar rxUdpChecksums
 
Stats::Scalar descDmaReads
 
Stats::Scalar descDmaWrites
 
Stats::Scalar descDmaRdBytes
 
Stats::Scalar descDmaWrBytes
 
Stats::Formula totBandwidth
 
Stats::Formula totPackets
 
Stats::Formula totBytes
 
Stats::Formula totPacketRate
 
Stats::Formula txBandwidth
 
Stats::Formula rxBandwidth
 
Stats::Formula txPacketRate
 
Stats::Formula rxPacketRate
 
Stats::Scalar postedSwi
 
Stats::Formula coalescedSwi
 
Stats::Scalar totalSwi
 
Stats::Scalar postedRxIdle
 
Stats::Formula coalescedRxIdle
 
Stats::Scalar totalRxIdle
 
Stats::Scalar postedRxOk
 
Stats::Formula coalescedRxOk
 
Stats::Scalar totalRxOk
 
Stats::Scalar postedRxDesc
 
Stats::Formula coalescedRxDesc
 
Stats::Scalar totalRxDesc
 
Stats::Scalar postedTxOk
 
Stats::Formula coalescedTxOk
 
Stats::Scalar totalTxOk
 
Stats::Scalar postedTxIdle
 
Stats::Formula coalescedTxIdle
 
Stats::Scalar totalTxIdle
 
Stats::Scalar postedTxDesc
 
Stats::Formula coalescedTxDesc
 
Stats::Scalar totalTxDesc
 
Stats::Scalar postedRxOrn
 
Stats::Formula coalescedRxOrn
 
Stats::Scalar totalRxOrn
 
Stats::Formula coalescedTotal
 
Stats::Scalar postedInterrupts
 
Stats::Scalar droppedPackets
 
- Protected Attributes inherited from PciDevice
const PciBusAddr _busAddr
 
PCIConfig config
 The current config space. More...
 
std::vector< MSIXTablemsix_table
 MSIX Table and PBA Structures. More...
 
std::vector< MSIXPbaEntrymsix_pba
 
uint32_t BARSize [6]
 The size of the BARs. More...
 
Addr BARAddrs [6]
 The current address mapping of the BARs. More...
 
bool legacyIO [6]
 Whether the BARs are really hardwired legacy IO locations. More...
 
PciHost::DeviceInterface hostInterface
 
Tick pioDelay
 
Tick configDelay
 
const int PMCAP_BASE
 The capability list structures and base addresses. More...
 
const int PMCAP_ID_OFFSET
 
const int PMCAP_PC_OFFSET
 
const int PMCAP_PMCS_OFFSET
 
PMCAP pmcap
 
const int MSICAP_BASE
 
MSICAP msicap
 
const int MSIXCAP_BASE
 
const int MSIXCAP_ID_OFFSET
 
const int MSIXCAP_MXC_OFFSET
 
const int MSIXCAP_MTAB_OFFSET
 
const int MSIXCAP_MPBA_OFFSET
 
int MSIX_TABLE_OFFSET
 
int MSIX_TABLE_END
 
int MSIX_PBA_OFFSET
 
int MSIX_PBA_END
 
MSIXCAP msixcap
 
const int PXCAP_BASE
 
PXCAP pxcap
 
- Protected Attributes inherited from DmaDevice
DmaPort dmaPort
 
- Protected Attributes inherited from PioDevice
Systemsys
 
PioPort pioPort
 The pioPort that handles the requests for us and provides us requests that it sees. More...
 
- Protected Attributes inherited from ClockedObject
Enums::PwrState _currPwrState
 To keep track of the current power state. More...
 
Tick prvEvalTick
 
Stats::Scalar numPwrStateTransitions
 
Stats::Distribution pwrStateClkGateDist
 
Stats::Vector pwrStateResidencyTicks
 
- Protected Attributes inherited from SimObject
const SimObjectParams * _params
 Cached copy of the object parameters. More...
 
- Protected Attributes inherited from EventManager
EventQueueeventq
 A pointer to this object's event queue. More...
 

Private Attributes

Stats::Scalar totalVnicDistance
 Statistics. More...
 
Stats::Scalar numVnicDistance
 
Stats::Scalar maxVnicDistance
 
Stats::Formula avgVnicDistance
 
int _maxVnicDistance
 

Friends

class EventWrapper< Device,&Device::rxDmaDone >
 
class EventWrapper< Device,&Device::txDmaDone >
 
void RxKickEvent::process ()
 
void TxKickEvent::process ()
 
void TxEvent::process ()
 

Additional Inherited Members

- Public Types inherited from Sinic::Base
typedef SinicParams Params
 Construction/Destruction/Parameters. More...
 
- Public Types inherited from EtherDevice
typedef EtherDeviceParams Params
 
- Public Types inherited from DmaDevice
typedef DmaDeviceParams Params
 
- Public Types inherited from PioDevice
typedef PioDeviceParams Params
 
- Public Types inherited from MemObject
typedef MemObjectParams Params
 
- Public Types inherited from ClockedObject
typedef ClockedObjectParams Params
 Parameters of ClockedObject. More...
 
- Public Types inherited from SimObject
typedef SimObjectParams Params
 
- Static Public Member Functions inherited from SimObject
static void serializeAll (CheckpointOut &cp)
 Serialize all SimObjects in the system. More...
 
static SimObjectfind (const char *name)
 Find the SimObject with the given name and return a pointer to it. More...
 
- Static Public Member Functions inherited from Serializable
static const std::string & currentSection ()
 Get the fully-qualified name of the active section. More...
 
static void serializeAll (const std::string &cpt_dir)
 
static void unserializeGlobals (CheckpointIn &cp)
 
- Static Public Attributes inherited from Serializable
static int ckptCount = 0
 
static int ckptMaxCount = 0
 
static int ckptPrevCount = -1
 

Detailed Description

Definition at line 88 of file sinic.hh.

Member Typedef Documentation

Definition at line 199 of file sinic.hh.

Definition at line 217 of file sinic.hh.

Definition at line 204 of file sinic.hh.

typedef std::list<unsigned> Sinic::Device::VirtualList
protected

Definition at line 157 of file sinic.hh.

Definition at line 156 of file sinic.hh.

Member Enumeration Documentation

enum Sinic::Device::RxState
protected

Receive State Machine States.

Enumerator
rxIdle 
rxFifoBlock 
rxBeginCopy 
rxCopy 
rxCopyDone 

Definition at line 92 of file sinic.hh.

enum Sinic::Device::TxState
protected

Transmit State Machine states.

Enumerator
txIdle 
txFifoBlock 
txBeginCopy 
txCopy 
txCopyDone 

Definition at line 101 of file sinic.hh.

Constructor & Destructor Documentation

Sinic::Device::Device ( const Params p)

Definition at line 89 of file sinic.cc.

References reset().

Sinic::Device::~Device ( )

Definition at line 103 of file sinic.cc.

Member Function Documentation

void Sinic::Device::changeConfig ( uint32_t  newconfig)
protected
void Sinic::Device::command ( uint32_t  command)
protected

Definition at line 621 of file sinic.cc.

References devIntrPost(), and reset().

Referenced by write().

void Sinic::Device::devIntrChangeMask ( uint32_t  newmask)
protected

Definition at line 485 of file sinic.cc.

References Sinic::Base::cpuIntrClear(), Sinic::Base::cpuIntrPost(), curTick(), DPRINTF, and regs.

Referenced by write().

void Sinic::Device::devIntrClear ( uint32_t  interrupts = Regs::Intr_All)
protected

Definition at line 469 of file sinic.cc.

References Sinic::Base::cpuIntrClear(), DPRINTF, panic, and regs.

Referenced by read(), and write().

void Sinic::Device::devIntrPost ( uint32_t  interrupts)
protected

Interrupt management.

Definition at line 433 of file sinic.cc.

References Sinic::Base::cpuIntrPost(), curTick(), DPRINTF, Sinic::Base::intrDelay, panic, regs, rxEmpty, and txFull.

Referenced by command(), recvPacket(), rxKick(), transmit(), and txKick().

void Sinic::Device::drainResume ( )
overridevirtual

Resume execution after a successful drain.

Reimplemented from Drainable.

Definition at line 1247 of file sinic.cc.

References Drainable::drainResume(), rxKick(), and txKick().

EtherInt * Sinic::Device::getEthPort ( const std::string &  if_name,
int  idx 
)
overridevirtual

Additional function to return the Port of a memory object.

Implements EtherDevice.

Definition at line 144 of file sinic.cc.

References EtherInt::getPeer(), Sinic::Base::interface, and panic.

void Sinic::Device::prepareIO ( ContextID  cpu,
int  index 
)

Definition at line 157 of file sinic.cc.

References panic, X86ISA::size(), and virtualRegs.

Referenced by prepareRead(), and prepareWrite().

void Sinic::Device::prepareRead ( ContextID  cpu,
int  index 
)
void Sinic::Device::prepareWrite ( ContextID  cpu,
int  index 
)

Definition at line 211 of file sinic.cc.

References prepareIO().

Referenced by write().

Tick Sinic::Device::read ( PacketPtr  pkt)
overridevirtual
bool Sinic::Device::recvPacket ( EthPacketPtr  packet)
uint32_t& Sinic::Device::regData32 ( Addr  daddr)
inlineprotected

Definition at line 171 of file sinic.hh.

References regData8().

Referenced by read().

uint64_t& Sinic::Device::regData64 ( Addr  daddr)
inlineprotected

Definition at line 172 of file sinic.hh.

References regData8().

Referenced by read().

uint8_t& Sinic::Device::regData8 ( Addr  daddr)
inlineprotected

Definition at line 170 of file sinic.hh.

References regs.

Referenced by regData32(), and regData64().

void Sinic::Device::regStats ( )
overridevirtual
void Sinic::Device::reset ( )
protected
void Sinic::Device::resetStats ( )
overridevirtual

Reset statistics associated with this object.

Reimplemented from SimObject.

Definition at line 136 of file sinic.cc.

References _maxVnicDistance, and SimObject::resetStats().

void Sinic::Device::rxDmaDone ( )
protected

DMA parameters.

Definition at line 701 of file sinic.cc.

References DDUMP, DPRINTF, rxCopy, rxCopyDone, rxDmaAddr, rxDmaData, rxDmaLen, rxKick(), rxState, txBeginCopy, txKick(), and txState.

void Sinic::Device::rxDump ( ) const
protected
bool Sinic::Device::rxFilter ( const EthPacketPtr packet)
protected

receive address filter

Definition at line 1164 of file sinic.cc.

References DDUMP, DPRINTF, Net::EthHdr::dst(), panic, Sinic::Base::params(), regs, Net::EthHdr::type(), and X86ISA::type.

Referenced by recvPacket().

void Sinic::Device::rxKick ( )
protected
void Sinic::Device::serialize ( CheckpointOut cp) const
overridevirtual
void Sinic::Device::transferDone ( )
void Sinic::Device::transmit ( )
protected
void Sinic::Device::txDmaDone ( )
protected
void Sinic::Device::txDump ( ) const
protected
void Sinic::Device::txEventTransmit ( )
inlineprotected

Definition at line 211 of file sinic.hh.

References transmit(), txFifoBlock, txKick(), and txState.

void Sinic::Device::txKick ( )
protected
void Sinic::Device::unserialize ( CheckpointIn cp)
overridevirtual
Tick Sinic::Device::write ( PacketPtr  pkt)
overridevirtual

IPR read of device register.

Fault Device::iprRead(Addr daddr, ContextID cpu, uint64_t &result) { if (!regValid(daddr)) panic("invalid address: da=%#x", daddr);

const Regs::Info &info = regInfo(daddr); if (!info.read) panic("reading %s (write only): cpu=%d da=%#x", info.name, cpu, daddr);

DPRINTF(EthernetPIO, "IPR read %s: cpu=%d da=%#x\n", info.name, cpu, daddr);

prepareRead(cpu, 0);

if (info.size == 4) result = regData32(daddr);

if (info.size == 8) result = regData64(daddr);

DPRINTF(EthernetPIO, "IPR read %s: cpu=%s da=%#x val=%#x\n", info.name, cpu, result);

return NoFault; } I/O write of device register

Implements PioDevice.

Definition at line 305 of file sinic.cc.

References PciDevice::BARAddrs, PciDevice::BARSize, changeConfig(), PCIConfig::command, command(), PciDevice::config, Request::contextId(), devIntrChangeMask(), devIntrClear(), DPRINTF, PacketFifo::end(), Packet::get(), Packet::getAddr(), Packet::getSize(), MipsISA::index, panic, PCI_CMD_MSE, PciDevice::pioDelay, prepareWrite(), Sinic::regInfo(), regs, Sinic::regValid(), Packet::req, rxBusy, rxBusyCount, Sinic::Device::VirtualReg::RxData, Sinic::Device::VirtualReg::RxDone, Sinic::Base::rxEnable, rxFifo, rxFifoBlock, rxIdle, Sinic::Device::VirtualReg::rxIndex, rxKick(), rxList, rxState, Sinic::RxStateStrings, Sinic::Device::VirtualReg::rxUnique, rxUnique, Sinic::Device::VirtualReg::TxData, Sinic::Device::VirtualReg::TxDone, Sinic::Base::txEnable, txFifoBlock, txIdle, txKick(), txList, txState, Sinic::TxStateStrings, Sinic::Device::VirtualReg::txUnique, txUnique, MipsISA::vaddr, Sinic::Regs::VirtualMask, virtualRegs, Sinic::Regs::VirtualShift, and AlphaISA::vtophys().

Friends And Related Function Documentation

friend class EventWrapper< Device,&Device::rxDmaDone >
friend

Definition at line 248 of file sinic.hh.

friend class EventWrapper< Device,&Device::txDmaDone >
friend

Definition at line 252 of file sinic.hh.

void RxKickEvent::process ( )
friend
void TxEvent::process ( )
friend
void TxKickEvent::process ( )
friend

Member Data Documentation

int Sinic::Device::_maxVnicDistance
private

Definition at line 290 of file sinic.hh.

Referenced by regStats(), resetStats(), and rxKick().

Stats::Formula Sinic::Device::avgVnicDistance
private

Definition at line 288 of file sinic.hh.

Referenced by regStats().

uint32_t Sinic::Device::Command

Definition at line 112 of file sinic.hh.

uint32_t Sinic::Device::Config

Definition at line 111 of file sinic.hh.

Tick Sinic::Device::dmaReadDelay
protected

Definition at line 255 of file sinic.hh.

Tick Sinic::Device::dmaReadFactor
protected

Definition at line 256 of file sinic.hh.

Tick Sinic::Device::dmaWriteDelay
protected

Definition at line 257 of file sinic.hh.

Tick Sinic::Device::dmaWriteFactor
protected

Definition at line 258 of file sinic.hh.

uint64_t Sinic::Device::HwAddr

Definition at line 133 of file sinic.hh.

uint32_t Sinic::Device::IntrMask

Definition at line 114 of file sinic.hh.

uint32_t Sinic::Device::IntrStatus

Definition at line 113 of file sinic.hh.

Stats::Scalar Sinic::Device::maxVnicDistance
private

Definition at line 287 of file sinic.hh.

Referenced by regStats(), and rxKick().

Stats::Scalar Sinic::Device::numVnicDistance
private

Definition at line 286 of file sinic.hh.

Referenced by regStats(), and rxKick().

struct { ... } Sinic::Device::regs
int Sinic::Device::rxActive
protected

Definition at line 163 of file sinic.hh.

Referenced by reset(), rxKick(), serialize(), and unserialize().

VirtualList Sinic::Device::rxBusy
protected

Definition at line 162 of file sinic.hh.

Referenced by reset(), rxKick(), serialize(), unserialize(), and write().

int Sinic::Device::rxBusyCount
protected

Definition at line 166 of file sinic.hh.

Referenced by prepareRead(), reset(), rxKick(), serialize(), unserialize(), and write().

uint64_t Sinic::Device::RxData

Definition at line 127 of file sinic.hh.

int Sinic::Device::rxDirtyCount
protected

Definition at line 168 of file sinic.hh.

Referenced by prepareRead(), reset(), rxKick(), serialize(), and unserialize().

Addr Sinic::Device::rxDmaAddr
protected

Definition at line 180 of file sinic.hh.

Referenced by rxDmaDone(), and rxKick().

uint8_t* Sinic::Device::rxDmaData
protected

Definition at line 181 of file sinic.hh.

Referenced by rxDmaDone(), and rxKick().

EventWrapper<Device, &Device::rxDmaDone> Sinic::Device::rxDmaEvent
protected

Definition at line 249 of file sinic.hh.

Referenced by rxKick().

unsigned Sinic::Device::rxDmaLen
protected

Definition at line 182 of file sinic.hh.

Referenced by rxDmaDone(), and rxKick().

uint64_t Sinic::Device::RxDone

Definition at line 128 of file sinic.hh.

bool Sinic::Device::rxEmpty
protected

Definition at line 178 of file sinic.hh.

Referenced by devIntrPost(), reset(), rxKick(), serialize(), and unserialize().

PacketFifo Sinic::Device::rxFifo
protected

Definition at line 176 of file sinic.hh.

Referenced by prepareRead(), recvPacket(), reset(), rxKick(), serialize(), unserialize(), and write().

uint32_t Sinic::Device::RxFifoHigh

Definition at line 125 of file sinic.hh.

uint32_t Sinic::Device::RxFifoLow

Definition at line 123 of file sinic.hh.

PacketFifo::iterator Sinic::Device::rxFifoPtr
protected

Definition at line 177 of file sinic.hh.

Referenced by prepareRead(), recvPacket(), reset(), rxKick(), serialize(), and unserialize().

uint32_t Sinic::Device::RxFifoSize

Definition at line 121 of file sinic.hh.

Tick Sinic::Device::rxKickTick
protected

Definition at line 198 of file sinic.hh.

Referenced by rxKick().

VirtualList Sinic::Device::rxList
protected

Definition at line 161 of file sinic.hh.

Referenced by reset(), rxKick(), serialize(), unserialize(), and write().

bool Sinic::Device::rxLow
protected

Definition at line 179 of file sinic.hh.

Referenced by prepareRead(), reset(), rxKick(), serialize(), and unserialize().

int Sinic::Device::rxMappedCount
protected

Definition at line 167 of file sinic.hh.

Referenced by prepareRead(), reset(), rxKick(), serialize(), and unserialize().

uint32_t Sinic::Device::RxMaxCopy

Definition at line 115 of file sinic.hh.

uint32_t Sinic::Device::RxMaxIntr

Definition at line 120 of file sinic.hh.

RxState Sinic::Device::rxState
protected

Definition at line 175 of file sinic.hh.

Referenced by reset(), rxDmaDone(), rxKick(), serialize(), txDmaDone(), unserialize(), and write().

uint64_t Sinic::Device::RxStatus

Definition at line 134 of file sinic.hh.

Counter Sinic::Device::rxUnique
protected

Definition at line 158 of file sinic.hh.

Referenced by unserialize(), and write().

uint64_t Sinic::Device::RxWait

Definition at line 129 of file sinic.hh.

Stats::Scalar Sinic::Device::totalVnicDistance
private

Statistics.

Definition at line 285 of file sinic.hh.

Referenced by regStats(), and rxKick().

uint64_t Sinic::Device::TxData

Definition at line 130 of file sinic.hh.

Addr Sinic::Device::txDmaAddr
protected

Definition at line 190 of file sinic.hh.

Referenced by txDmaDone(), and txKick().

uint8_t* Sinic::Device::txDmaData
protected

Definition at line 191 of file sinic.hh.

Referenced by txDmaDone(), and txKick().

EventWrapper<Device, &Device::txDmaDone> Sinic::Device::txDmaEvent
protected

Definition at line 253 of file sinic.hh.

Referenced by txKick().

int Sinic::Device::txDmaLen
protected

Definition at line 192 of file sinic.hh.

Referenced by txDmaDone(), and txKick().

uint64_t Sinic::Device::TxDone

Definition at line 131 of file sinic.hh.

TxEvent Sinic::Device::txEvent
protected

Definition at line 219 of file sinic.hh.

Referenced by serialize(), transferDone(), and unserialize().

PacketFifo Sinic::Device::txFifo
protected

Definition at line 185 of file sinic.hh.

Referenced by prepareRead(), reset(), serialize(), transferDone(), transmit(), txKick(), and unserialize().

uint32_t Sinic::Device::TxFifoHigh

Definition at line 126 of file sinic.hh.

uint32_t Sinic::Device::TxFifoLow

Definition at line 124 of file sinic.hh.

uint32_t Sinic::Device::TxFifoSize

Definition at line 122 of file sinic.hh.

bool Sinic::Device::txFull
protected

Definition at line 186 of file sinic.hh.

Referenced by devIntrPost(), reset(), serialize(), txKick(), and unserialize().

Tick Sinic::Device::txKickTick
protected

Definition at line 203 of file sinic.hh.

Referenced by txKick().

VirtualList Sinic::Device::txList
protected

Definition at line 164 of file sinic.hh.

Referenced by reset(), serialize(), txKick(), unserialize(), and write().

uint32_t Sinic::Device::TxMaxCopy

Definition at line 116 of file sinic.hh.

EthPacketPtr Sinic::Device::txPacket
protected

Definition at line 187 of file sinic.hh.

Referenced by serialize(), txKick(), and unserialize().

int Sinic::Device::txPacketBytes
protected

Definition at line 189 of file sinic.hh.

Referenced by serialize(), and unserialize().

int Sinic::Device::txPacketOffset
protected

Definition at line 188 of file sinic.hh.

Referenced by serialize(), txKick(), and unserialize().

TxState Sinic::Device::txState
protected

Definition at line 184 of file sinic.hh.

Referenced by reset(), rxDmaDone(), serialize(), txDmaDone(), txEventTransmit(), txKick(), unserialize(), and write().

Counter Sinic::Device::txUnique
protected

Definition at line 159 of file sinic.hh.

Referenced by unserialize(), and write().

uint64_t Sinic::Device::TxWait

Definition at line 132 of file sinic.hh.

uint32_t Sinic::Device::VirtualCount

Definition at line 119 of file sinic.hh.

VirtualRegs Sinic::Device::virtualRegs
protected

Definition at line 160 of file sinic.hh.

Referenced by prepareIO(), prepareRead(), reset(), rxKick(), serialize(), txKick(), unserialize(), and write().

uint32_t Sinic::Device::ZeroCopyMark

Definition at line 118 of file sinic.hh.

uint32_t Sinic::Device::ZeroCopySize

Definition at line 117 of file sinic.hh.


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

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