gem5  [DEVELOP-FOR-23.0]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
sinic.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2004-2005 The Regents of The University of Michigan
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met: redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer;
9  * redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution;
12  * neither the name of the copyright holders nor the names of its
13  * contributors may be used to endorse or promote products derived from
14  * this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #ifndef __DEV_NET_SINIC_HH__
30 #define __DEV_NET_SINIC_HH__
31 
32 #include "base/compiler.hh"
33 #include "base/inet.hh"
34 #include "base/statistics.hh"
35 #include "dev/io_device.hh"
36 #include "dev/net/etherdevice.hh"
37 #include "dev/net/etherint.hh"
38 #include "dev/net/etherpkt.hh"
39 #include "dev/net/pktfifo.hh"
40 #include "dev/net/sinicreg.hh"
41 #include "dev/pci/device.hh"
42 #include "params/Sinic.hh"
43 #include "sim/eventq.hh"
44 
45 namespace gem5
46 {
47 
48 namespace sinic
49 {
50 
51 class Interface;
52 class Base : public EtherDevBase
53 {
54  protected:
55  bool rxEnable;
56  bool txEnable;
57 
58  protected:
63  void cpuIntrPost(Tick when);
64  void cpuInterrupt();
65  void cpuIntrClear();
66 
69 
70  bool cpuIntrPending() const;
71  void cpuIntrAck() { cpuIntrClear(); }
72 
76  public:
77  void serialize(CheckpointOut &cp) const override;
78  void unserialize(CheckpointIn &cp) override;
79 
83  public:
84  PARAMS(Sinic);
85  Base(const Params &p);
86 };
87 
88 class Device : public Base
89 {
90  protected:
92  enum RxState
93  {
99  };
100 
102  enum TxState
103  {
109  };
110 
112  struct
113  {
114  uint32_t Config; // 0x00
115  uint32_t Command; // 0x04
116  uint32_t IntrStatus; // 0x08
117  uint32_t IntrMask; // 0x0c
118  uint32_t RxMaxCopy; // 0x10
119  uint32_t TxMaxCopy; // 0x14
120  uint32_t ZeroCopySize; // 0x18
121  uint32_t ZeroCopyMark; // 0x1c
122  uint32_t VirtualCount; // 0x20
123  uint32_t RxMaxIntr; // 0x24
124  uint32_t RxFifoSize; // 0x28
125  uint32_t TxFifoSize; // 0x2c
126  uint32_t RxFifoLow; // 0x30
127  uint32_t TxFifoLow; // 0x34
128  uint32_t RxFifoHigh; // 0x38
129  uint32_t TxFifoHigh; // 0x3c
130  uint64_t RxData; // 0x40
131  uint64_t RxDone; // 0x48
132  uint64_t RxWait; // 0x50
133  uint64_t TxData; // 0x58
134  uint64_t TxDone; // 0x60
135  uint64_t TxWait; // 0x68
136  uint64_t HwAddr; // 0x70
137  uint64_t RxStatus; // 0x78
138  } regs;
139 
140  struct VirtualReg
141  {
142  uint64_t RxData;
143  uint64_t RxDone;
144  uint64_t TxData;
145  uint64_t TxDone;
146 
148  unsigned rxPacketOffset;
149  unsigned rxPacketBytes;
150  uint64_t rxDoneData;
151 
154 
156  : RxData(0), RxDone(0), TxData(0), TxDone(0),
158  { }
159  };
167  int rxActive;
169 
173 
174  uint8_t &regData8(Addr daddr) { return *((uint8_t *)&regs + daddr); }
175  uint32_t &regData32(Addr daddr) { return *(uint32_t *)&regData8(daddr); }
176  uint64_t &regData64(Addr daddr) { return *(uint64_t *)&regData8(daddr); }
177 
178  protected:
182  bool rxEmpty;
183  bool rxLow;
185  uint8_t *rxDmaData;
186  unsigned rxDmaLen;
187 
190  bool txFull;
195  uint8_t *txDmaData;
196  int txDmaLen;
197 
198  protected:
199  void reset();
200 
201  void rxKick();
203 
204  void txKick();
206 
210  void transmit();
212  {
213  transmit();
214  if (txState == txFifoBlock)
215  txKick();
216  }
218 
219  void txDump() const;
220  void rxDump() const;
221 
225  bool rxFilter(const EthPacketPtr &packet);
226 
230  void changeConfig(uint32_t newconfig);
231  void command(uint32_t command);
232 
236  public:
237  bool recvPacket(EthPacketPtr packet);
238  void transferDone();
239  Port &getPort(const std::string &if_name,
240  PortID idx=InvalidPortID) override;
241 
245  protected:
246  void rxDmaDone();
248 
249  void txDmaDone();
251 
256 
260  protected:
261  void devIntrPost(uint32_t interrupts);
262  void devIntrClear(uint32_t interrupts = registers::Intr_All);
263  void devIntrChangeMask(uint32_t newmask);
264 
268  public:
269  Tick read(PacketPtr pkt) override;
270  Tick write(PacketPtr pkt) override;
271  virtual void drainResume() override;
272 
273  void prepareIO(ContextID cpu, int index);
274  void prepareRead(ContextID cpu, int index);
275  void prepareWrite(ContextID cpu, int index);
276  // Fault iprRead(Addr daddr, ContextID cpu, uint64_t &result);
277 
281  private:
283  {
285 
290 
293 
294 
295  public:
296  void resetStats() override;
297 
301  public:
302  void serialize(CheckpointOut &cp) const override;
303  void unserialize(CheckpointIn &cp) override;
304 
305  public:
306  Device(const Params &p);
307  ~Device();
308 };
309 
310 /*
311  * Ethernet Interface for an Ethernet Device
312  */
313 class Interface : public EtherInt
314 {
315  private:
317 
318  public:
319  Interface(const std::string &name, Device *d)
320  : EtherInt(name), dev(d)
321  { }
322 
323  virtual bool recvPacket(EthPacketPtr pkt) { return dev->recvPacket(pkt); }
324  virtual void sendDone() { dev->transferDone(); }
325 };
326 
327 } // namespace sinic
328 } // namespace gem5
329 
330 #endif // __DEV_NET_SINIC_HH__
gem5::statistics::Scalar
This is a simple scalar statistic, like a counter.
Definition: statistics.hh:1929
gem5::sinic::Device::RxFifoLow
uint32_t RxFifoLow
Definition: sinic.hh:126
gem5::sinic::Device::IntrMask
uint32_t IntrMask
Definition: sinic.hh:117
gem5::PortID
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
Definition: types.hh:245
gem5::EtherDevBase
Dummy class to keep the Python class hierarchy in sync with the C++ object hierarchy.
Definition: etherdevice.hh:143
gem5::sinic::Device::txEvent
EventFunctionWrapper txEvent
Definition: sinic.hh:217
gem5::sinic::Base::unserialize
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Definition: sinic.cc:1223
gem5::sinic::Device::rxBeginCopy
@ rxBeginCopy
Definition: sinic.hh:96
gem5::sinic::Base::txEnable
bool txEnable
Definition: sinic.hh:56
io_device.hh
gem5::sinic::Base::cpuIntrPost
void cpuIntrPost(Tick when)
Definition: sinic.cc:474
gem5::sinic::Device::RxStatus
uint64_t RxStatus
Definition: sinic.hh:137
gem5::sinic::Base::PARAMS
PARAMS(Sinic)
Construction/Destruction/Parameters.
gem5::sinic::Device::rxFifo
PacketFifo rxFifo
Definition: sinic.hh:180
gem5::sinic::Device::recvPacket
bool recvPacket(EthPacketPtr packet)
device ethernet interface
Definition: sinic.cc:1149
gem5::sinic::Device::changeConfig
void changeConfig(uint32_t newconfig)
device configuration
Definition: sinic.cc:562
gem5::sinic::Base::cpuPendingIntr
bool cpuPendingIntr
Definition: sinic.hh:62
gem5::sinic::Base::serialize
void serialize(CheckpointOut &cp) const override
Serialization stuff.
Definition: sinic.cc:1202
gem5::sinic::Device::rxCopy
@ rxCopy
Definition: sinic.hh:97
gem5::sinic::Device
Definition: sinic.hh:88
gem5::MipsISA::index
Bitfield< 30, 0 > index
Definition: pra_constants.hh:47
gem5::sinic::Device::TxDone
uint64_t TxDone
Definition: sinic.hh:134
gem5::sinic::Device::DeviceStats::_maxVnicDistance
int _maxVnicDistance
Definition: sinic.hh:291
gem5::sinic::Device::IntrStatus
uint32_t IntrStatus
Definition: sinic.hh:116
gem5::sinic::Device::DeviceStats::DeviceStats
DeviceStats(statistics::Group *parent)
Definition: sinic.cc:103
gem5::sinic::Device::transferDone
void transferDone()
Definition: sinic.cc:1125
gem5::CheckpointIn
Definition: serialize.hh:68
gem5::sinic::Device::VirtualCount
uint32_t VirtualCount
Definition: sinic.hh:122
gem5::sinic::Device::virtualRegs
VirtualRegs virtualRegs
Definition: sinic.hh:164
gem5::sinic::Device::RxMaxCopy
uint32_t RxMaxCopy
Definition: sinic.hh:118
gem5::sinic::Device::TxMaxCopy
uint32_t TxMaxCopy
Definition: sinic.hh:119
etherint.hh
gem5::sinic::Base::cpuIntrClear
void cpuIntrClear()
Definition: sinic.cc:539
gem5::sinic::Interface::recvPacket
virtual bool recvPacket(EthPacketPtr pkt)
Definition: sinic.hh:323
gem5::sinic::Device::reset
void reset()
Definition: sinic.cc:604
gem5::sinic::Device::Device
Device(const Params &p)
Definition: sinic.cc:84
gem5::sinic::Base::cpuIntrEnable
bool cpuIntrEnable
Definition: sinic.hh:61
gem5::sinic::Device::txUnique
Counter txUnique
Definition: sinic.hh:163
gem5::EtherInt::name
const std::string & name() const
Return port name (for DPRINTF).
Definition: etherint.hh:62
gem5::sinic::Device::VirtualReg::txUnique
Counter txUnique
Definition: sinic.hh:153
gem5::sinic::Device::rxEmpty
bool rxEmpty
Definition: sinic.hh:182
gem5::sinic::Device::txCopy
@ txCopy
Definition: sinic.hh:107
gem5::sinic::Device::txPacketOffset
int txPacketOffset
Definition: sinic.hh:192
gem5::sinic::Device::resetStats
void resetStats() override
Callback to reset stats.
Definition: sinic.cc:119
gem5::sinic::Device::dmaReadFactor
Tick dmaReadFactor
Definition: sinic.hh:253
gem5::statistics::Formula
A formula for statistics that is calculated when printed.
Definition: statistics.hh:2538
std::vector< VirtualReg >
gem5::sinic::Device::dmaReadDelay
Tick dmaReadDelay
Definition: sinic.hh:252
gem5::sinic::Device::ZeroCopySize
uint32_t ZeroCopySize
Definition: sinic.hh:120
gem5::sinic::Device::txDmaEvent
EventFunctionWrapper txDmaEvent
Definition: sinic.hh:250
gem5::sinic::Device::HwAddr
uint64_t HwAddr
Definition: sinic.hh:136
gem5::sinic::Device::VirtualRegs
std::vector< VirtualReg > VirtualRegs
Definition: sinic.hh:160
gem5::EtherInt
Definition: etherint.hh:50
gem5::InvalidPortID
const PortID InvalidPortID
Definition: types.hh:246
gem5::sinic::Base::cpuIntrAck
void cpuIntrAck()
Definition: sinic.hh:71
device.hh
gem5::sinic::Device::devIntrClear
void devIntrClear(uint32_t interrupts=registers::Intr_All)
Definition: sinic.cc:440
gem5::sinic::Interface::Interface
Interface(const std::string &name, Device *d)
Definition: sinic.hh:319
gem5::sinic::Device::txDump
void txDump() const
gem5::sinic::Device::DeviceStats::numVnicDistance
statistics::Scalar numVnicDistance
Definition: sinic.hh:287
gem5::sinic::Device::VirtualReg::rxPacketOffset
unsigned rxPacketOffset
Definition: sinic.hh:148
gem5::sinic::Device::TxFifoSize
uint32_t TxFifoSize
Definition: sinic.hh:125
gem5::sinic::Device::TxData
uint64_t TxData
Definition: sinic.hh:133
gem5::sinic::Device::txState
TxState txState
Definition: sinic.hh:188
gem5::sinic::Device::txDmaData
uint8_t * txDmaData
Definition: sinic.hh:195
gem5::sinic::Device::txDmaAddr
Addr txDmaAddr
Definition: sinic.hh:194
gem5::sinic::Device::regData32
uint32_t & regData32(Addr daddr)
Definition: sinic.hh:175
gem5::sinic::Device::rxKickTick
Tick rxKickTick
Definition: sinic.hh:202
gem5::sinic::Device::rxFilter
bool rxFilter(const EthPacketPtr &packet)
receive address filter
Definition: sinic.cc:1138
gem5::sinic::Device::txDmaLen
int txDmaLen
Definition: sinic.hh:196
gem5::sinic::Base::cpuIntrPending
bool cpuIntrPending() const
Definition: sinic.cc:558
gem5::sinic::Device::txIdle
@ txIdle
Definition: sinic.hh:104
gem5::sinic::Device::VirtualReg::rxIndex
PacketFifo::iterator rxIndex
Definition: sinic.hh:147
gem5::sinic::Device::txDmaDone
void txDmaDone()
Definition: sinic.cc:945
gem5::sinic::Device::prepareIO
void prepareIO(ContextID cpu, int index)
Definition: sinic.cc:136
gem5::sinic::Device::TxState
TxState
Transmit State Machine states.
Definition: sinic.hh:102
sinicreg.hh
gem5::sinic::Device::dmaWriteFactor
Tick dmaWriteFactor
Definition: sinic.hh:255
gem5::sinic::Device::drainResume
virtual void drainResume() override
Resume execution after a successful drain.
Definition: sinic.cc:1187
gem5::VegaISA::p
Bitfield< 54 > p
Definition: pagetable.hh:70
gem5::sinic::Device::txBeginCopy
@ txBeginCopy
Definition: sinic.hh:106
gem5::EthPacketPtr
std::shared_ptr< EthPacketData > EthPacketPtr
Definition: etherpkt.hh:90
gem5::sinic::Device::VirtualReg::RxData
uint64_t RxData
Definition: sinic.hh:142
gem5::Packet
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Definition: packet.hh:294
gem5::ArmISA::d
Bitfield< 9 > d
Definition: misc_types.hh:64
gem5::sinic::Device::RxState
RxState
Receive State Machine States.
Definition: sinic.hh:92
gem5::sinic::Device::sinicDeviceStats
gem5::sinic::Device::DeviceStats sinicDeviceStats
gem5::sinic::Device::rxUnique
Counter rxUnique
Definition: sinic.hh:162
statistics.hh
gem5::sinic::Device::txKick
void txKick()
Definition: sinic.cc:1007
gem5::Tick
uint64_t Tick
Tick count type.
Definition: types.hh:58
gem5::sinic::Device::txFifoBlock
@ txFifoBlock
Definition: sinic.hh:105
gem5::sinic::Device::RxFifoHigh
uint32_t RxFifoHigh
Definition: sinic.hh:128
gem5::sinic::Device::VirtualReg
Definition: sinic.hh:140
gem5::sinic::Device::DeviceStats::maxVnicDistance
statistics::Scalar maxVnicDistance
Definition: sinic.hh:288
gem5::sinic::Device::VirtualList
std::list< unsigned > VirtualList
Definition: sinic.hh:161
gem5::sinic::Device::txList
VirtualList txList
Definition: sinic.hh:168
gem5::sinic::Device::rxDump
void rxDump() const
gem5::sinic::Device::~Device
~Device()
Definition: sinic.cc:100
gem5::DmaDevice::Params
DmaDeviceParams Params
Definition: dma_device.hh:224
compiler.hh
gem5::sinic::Device::txPacket
EthPacketPtr txPacket
Definition: sinic.hh:191
gem5::sinic::Device::rxCopyDone
@ rxCopyDone
Definition: sinic.hh:98
gem5::sinic::Device::rxList
VirtualList rxList
Definition: sinic.hh:165
gem5::sinic::Device::TxFifoHigh
uint32_t TxFifoHigh
Definition: sinic.hh:129
gem5::sinic::Base::interface
Interface * interface
Definition: sinic.hh:68
gem5::sinic::Device::rxDmaDone
void rxDmaDone()
DMA parameters.
Definition: sinic.cc:674
gem5::sinic::Device::rxDmaData
uint8_t * rxDmaData
Definition: sinic.hh:185
gem5::sinic::Device::Command
uint32_t Command
Definition: sinic.hh:115
gem5::sinic::Device::regs
struct gem5::sinic::Device::@337 regs
device register file
gem5::sinic::Device::Config
uint32_t Config
Definition: sinic.hh:114
gem5::Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:147
gem5::sinic::Device::devIntrPost
void devIntrPost(uint32_t interrupts)
Interrupt management.
Definition: sinic.cc:404
gem5::sinic::Device::rxKick
void rxKick()
Definition: sinic.cc:690
gem5::sinic::Device::write
Tick write(PacketPtr pkt) override
IPR read of device register.
Definition: sinic.cc:290
gem5::sinic::Device::txFull
bool txFull
Definition: sinic.hh:190
gem5::PacketFifo::iterator
fifo_list::iterator iterator
Definition: pktfifo.hh:85
gem5::sinic::Base
Definition: sinic.hh:52
gem5::sinic::Device::rxDmaAddr
Addr rxDmaAddr
Definition: sinic.hh:184
gem5::sinic::Device::TxWait
uint64_t TxWait
Definition: sinic.hh:135
gem5::sinic::Interface::dev
Device * dev
Definition: sinic.hh:316
gem5::sinic::Device::regData8
uint8_t & regData8(Addr daddr)
Definition: sinic.hh:174
gem5::sinic::Device::rxMappedCount
int rxMappedCount
Definition: sinic.hh:171
gem5::sinic::Device::devIntrChangeMask
void devIntrChangeMask(uint32_t newmask)
Definition: sinic.cc:456
gem5::EventFunctionWrapper
Definition: eventq.hh:1136
gem5::sinic::Device::txKickTick
Tick txKickTick
Definition: sinic.hh:205
gem5::sinic::Base::cpuInterrupt
void cpuInterrupt()
Definition: sinic.cc:516
gem5::sinic::Device::rxActive
int rxActive
Definition: sinic.hh:167
gem5::sinic::Device::txCopyDone
@ txCopyDone
Definition: sinic.hh:108
gem5::sinic::Device::rxBusy
VirtualList rxBusy
Definition: sinic.hh:166
gem5::sinic::Device::RxWait
uint64_t RxWait
Definition: sinic.hh:132
gem5::sinic::Device::VirtualReg::TxDone
uint64_t TxDone
Definition: sinic.hh:145
gem5::sinic::Interface
Definition: sinic.hh:313
gem5::sinic::Device::regData64
uint64_t & regData64(Addr daddr)
Definition: sinic.hh:176
gem5::Port
Ports are used to interface objects to each other.
Definition: port.hh:61
gem5::sinic::Device::rxLow
bool rxLow
Definition: sinic.hh:183
gem5::sinic::Device::rxState
RxState rxState
Definition: sinic.hh:179
gem5::sinic::Device::read
Tick read(PacketPtr pkt) override
Memory Interface.
Definition: sinic.cc:199
gem5::sinic::Device::TxFifoLow
uint32_t TxFifoLow
Definition: sinic.hh:127
gem5::sinic::Interface::sendDone
virtual void sendDone()
Definition: sinic.hh:324
gem5::ContextID
int ContextID
Globally unique thread context ID.
Definition: types.hh:239
gem5::sinic::Device::ZeroCopyMark
uint32_t ZeroCopyMark
Definition: sinic.hh:121
gem5::sinic::Device::prepareRead
void prepareRead(ContextID cpu, int index)
Definition: sinic.cc:149
gem5::sinic::Device::unserialize
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Definition: sinic.cc:1362
gem5::sinic::Device::getPort
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
Definition: sinic.cc:127
gem5::statistics::Counter
double Counter
All counters are of 64-bit values.
Definition: types.hh:46
gem5::sinic::Device::VirtualReg::rxUnique
Counter rxUnique
Definition: sinic.hh:152
gem5::sinic::Device::dmaWriteDelay
Tick dmaWriteDelay
Definition: sinic.hh:254
gem5::sinic::Device::RxData
uint64_t RxData
Definition: sinic.hh:130
gem5::statistics::Group
Statistics container.
Definition: group.hh:92
gem5::sinic::Device::rxFifoPtr
PacketFifo::iterator rxFifoPtr
Definition: sinic.hh:181
pktfifo.hh
gem5::sinic::Base::intrTick
Tick intrTick
Definition: sinic.hh:60
etherpkt.hh
gem5::sinic::Device::VirtualReg::RxDone
uint64_t RxDone
Definition: sinic.hh:143
gem5::sinic::Device::prepareWrite
void prepareWrite(ContextID cpu, int index)
Definition: sinic.cc:190
gem5::CheckpointOut
std::ostream CheckpointOut
Definition: serialize.hh:66
gem5::sinic::Device::serialize
void serialize(CheckpointOut &cp) const override
Serialization stuff.
Definition: sinic.cc:1247
gem5::sinic::Device::rxFifoBlock
@ rxFifoBlock
Definition: sinic.hh:95
gem5::sinic::Base::intrEvent
EventFunctionWrapper * intrEvent
Definition: sinic.hh:67
etherdevice.hh
gem5::sinic::Device::rxDmaLen
unsigned rxDmaLen
Definition: sinic.hh:186
gem5::sinic::Device::RxDone
uint64_t RxDone
Definition: sinic.hh:131
gem5::sinic::Device::txEventTransmit
void txEventTransmit()
Definition: sinic.hh:211
std::list< unsigned >
gem5::PacketFifo
Definition: pktfifo.hh:80
gem5::sinic::Device::DeviceStats::totalVnicDistance
statistics::Scalar totalVnicDistance
Definition: sinic.hh:286
gem5::sinic::Device::VirtualReg::rxDoneData
uint64_t rxDoneData
Definition: sinic.hh:150
gem5::EtherDevBase::Params
EtherDevBaseParams Params
Definition: etherdevice.hh:146
gem5::sinic::Device::transmit
void transmit()
Retransmit event.
Definition: sinic.cc:961
inet.hh
gem5::sinic::Device::rxBusyCount
int rxBusyCount
Definition: sinic.hh:170
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: gpu_translation_state.hh:37
gem5::sinic::Device::RxFifoSize
uint32_t RxFifoSize
Definition: sinic.hh:124
gem5::sinic::Base::intrDelay
Tick intrDelay
Definition: sinic.hh:59
gem5::sinic::Device::RxMaxIntr
uint32_t RxMaxIntr
Definition: sinic.hh:123
gem5::sinic::Device::rxIdle
@ rxIdle
Definition: sinic.hh:94
gem5::sinic::Device::rxDirtyCount
int rxDirtyCount
Definition: sinic.hh:172
gem5::sinic::Base::Base
Base(const Params &p)
Definition: sinic.cc:77
gem5::sinic::Device::command
void command(uint32_t command)
Definition: sinic.cc:594
gem5::sinic::Device::txPacketBytes
int txPacketBytes
Definition: sinic.hh:193
gem5::sinic::Device::VirtualReg::rxPacketBytes
unsigned rxPacketBytes
Definition: sinic.hh:149
gem5::sinic::Device::VirtualReg::TxData
uint64_t TxData
Definition: sinic.hh:144
gem5::sinic::Device::DeviceStats
Statistics.
Definition: sinic.hh:282
gem5::sinic::Device::rxDmaEvent
EventFunctionWrapper rxDmaEvent
Definition: sinic.hh:247
gem5::sinic::Device::VirtualReg::VirtualReg
VirtualReg()
Definition: sinic.hh:155
gem5::sinic::Device::DeviceStats::avgVnicDistance
statistics::Formula avgVnicDistance
Definition: sinic.hh:289
gem5::sinic::Base::rxEnable
bool rxEnable
Definition: sinic.hh:55
gem5::sinic::Device::txFifo
PacketFifo txFifo
Definition: sinic.hh:189
eventq.hh

Generated on Sun Jul 30 2023 01:56:56 for gem5 by doxygen 1.8.17