NOVA User-Level Environment  Version testbox/changed-memory-timing-317-g320d8b5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Model82576vf Class Reference
Inheritance diagram for Model82576vf:
StaticReceiver< Model82576vf > Device

Classes

struct  queue
struct  rx_queue
struct  tx_queue

Public Member Functions

bool receive (MessagePciConfig &msg)
uint32 MSIX_read (uint32 offset)
uint32 MSIX_write (uint32 offset, uint32 val)
bool receive (MessageMem &msg)
bool receive (MessageNetwork &msg)
void reprogram_timer ()
bool receive (MessageMemRegion &msg)
bool receive (MessageTimeout &msg)
void device_reset ()
bool receive (MessageLegacy &msg)
 Model82576vf (uint64 mac, DBus< MessageNetwork > &net, DBus< MessageMem > *bus_mem, DBus< MessageMemRegion > *bus_memregion, Clock *clock, DBus< MessageTimer > &timer, uint32 mem_mmio, uint32 mem_msix, unsigned txpoll_us, bool map_rx, unsigned bdf, bool promisc_default)
- Public Member Functions inherited from StaticReceiver< Model82576vf >
 StaticReceiver ()
- Public Member Functions inherited from Device
void debug_dump ()
 Device (const char *debug_name)

Private Types

enum  MBX {
  VF_RESET = 0x0001U, VF_SET_MAC_ADDR = 0x0002U, VF_SET_MULTICAST = 0x0003U, VF_SET_LPE = 0x0005U,
  VF_SET_PROMISC = 0x0006U, VF_SET_PROMISC_UNICAST = 0x04<<16, CMD_ACK = 0x80000000U, CMD_NACK = 0x40000000U,
  CTS = 0x20000000U
}

Private Member Functions

uint32 VTFRTIMER_compute ()
void * guestmem (uint64 addr)
void MSIX_irq (unsigned nr)
void MISC_irq ()
 Generate a mailbox/misc IRQ.
void RX_irq (unsigned nr)
void TX_irq (unsigned nr)
void VTEITR_cb (uint32 old, uint32 val)
void VMMB_cb (uint32 old, uint32 val)
void VTCTRL_cb (uint32 old, uint32 val)
void VTEICS_cb (uint32 old, uint32 val)

Private Attributes

EthernetAddr _mac
DBus< MessageNetwork > & _net
Clock_clock
DBus< MessageTimer > & _timer
unsigned _timer_nr
uint32 _mem_mmio
uint32 _mem_msix
uint32_local_rx_regs
uint32_local_tx_regs
unsigned _txpoll_us
bool _map_rx
unsigned _bdf
const bool _promisc_default
bool _promisc
Mta _mta
tx_queue _tx_queues [2]
rx_queue _rx_queues [2]
union {
   struct msix_table {
      uint64   msg_addr
      uint32   msg_data
      uint32   vector_control
   }   table [3]
   uint32   raw [3 *4]
_msix

Additional Inherited Members

- Static Public Member Functions inherited from StaticReceiver< Model82576vf >
static bool receive_static (Device *o, M &msg)

Member Enumeration Documentation

enum Model82576vf::MBX
private
Enumerator:
VF_RESET 
VF_SET_MAC_ADDR 
VF_SET_MULTICAST 
VF_SET_LPE 
VF_SET_PROMISC 
VF_SET_PROMISC_UNICAST 
CMD_ACK 
CMD_NACK 
CTS 

Constructor & Destructor Documentation

Model82576vf::Model82576vf ( uint64  mac,
DBus< MessageNetwork > &  net,
DBus< MessageMem > *  bus_mem,
DBus< MessageMemRegion > *  bus_memregion,
Clock clock,
DBus< MessageTimer > &  timer,
uint32  mem_mmio,
uint32  mem_msix,
unsigned  txpoll_us,
bool  map_rx,
unsigned  bdf,
bool  promisc_default 
)
inline

Member Function Documentation

void Model82576vf::device_reset ( )
inline
void* Model82576vf::guestmem ( uint64  addr)
inlineprivate
void Model82576vf::MISC_irq ( )
inlineprivate

Generate a mailbox/misc IRQ.

void Model82576vf::MSIX_irq ( unsigned  nr)
inlineprivate
uint32 Model82576vf::MSIX_read ( uint32  offset)
inline
uint32 Model82576vf::MSIX_write ( uint32  offset,
uint32  val 
)
inline
bool Model82576vf::receive ( MessagePciConfig msg)
inline
bool Model82576vf::receive ( MessageMem msg)
inline
bool Model82576vf::receive ( MessageNetwork msg)
inline
bool Model82576vf::receive ( MessageMemRegion msg)
inline
bool Model82576vf::receive ( MessageTimeout msg)
inline
bool Model82576vf::receive ( MessageLegacy msg)
inline
void Model82576vf::reprogram_timer ( )
inline
void Model82576vf::RX_irq ( unsigned  nr)
inlineprivate
void Model82576vf::TX_irq ( unsigned  nr)
inlineprivate
void Model82576vf::VMMB_cb ( uint32  old,
uint32  val 
)
inlineprivate
void Model82576vf::VTCTRL_cb ( uint32  old,
uint32  val 
)
inlineprivate
void Model82576vf::VTEICS_cb ( uint32  old,
uint32  val 
)
inlineprivate
void Model82576vf::VTEITR_cb ( uint32  old,
uint32  val 
)
inlineprivate
uint32 Model82576vf::VTFRTIMER_compute ( )
inlineprivate

Member Data Documentation

unsigned Model82576vf::_bdf
private
Clock* Model82576vf::_clock
private
uint32* Model82576vf::_local_rx_regs
private
uint32* Model82576vf::_local_tx_regs
private
EthernetAddr Model82576vf::_mac
private
bool Model82576vf::_map_rx
private
uint32 Model82576vf::_mem_mmio
private
uint32 Model82576vf::_mem_msix
private
union { ... } Model82576vf::_msix
Mta Model82576vf::_mta
private
DBus<MessageNetwork>& Model82576vf::_net
private
bool Model82576vf::_promisc
private
const bool Model82576vf::_promisc_default
private
rx_queue Model82576vf::_rx_queues[2]
private
DBus<MessageTimer>& Model82576vf::_timer
private
unsigned Model82576vf::_timer_nr
private
tx_queue Model82576vf::_tx_queues[2]
private
unsigned Model82576vf::_txpoll_us
private
uint64 Model82576vf::msg_addr
uint32 Model82576vf::msg_data
uint32 Model82576vf::raw[3 *4]
struct { ... } ::msix_table Model82576vf::table[3]
uint32 Model82576vf::vector_control

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