The Pedigree Project 0.1
Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
Virtio::PciTransport Class Reference
+ Collaboration diagram for Virtio::PciTransport:

Classes

struct  Capability
 

Public Member Functions

 PciTransport (Device *device)
 
bool initialise ()
 
bool negotiate (uint64_t supportedFeatures, uint64_t requiredFeatures=0)
 
bool setupQueue (uint16_t index, Queue &queue)
 
bool ready ()
 
bool reset ()
 
uint8_t readIsr ()
 
void notify (uint16_t index)
 
uint64_t features () const
 
bool writeDeviceConfig8 (uint16_t offset, uint8_t value)
 
bool readDeviceConfig8 (uint16_t offset, uint8_t &value)
 
bool readDeviceConfig16 (uint16_t offset, uint16_t &value)
 
bool readDeviceConfig32 (uint16_t offset, uint32_t &value)
 
bool readDeviceConfig64 (uint16_t offset, uint64_t &value)
 

Private Member Functions

bool locateCapabilities ()
 
bool readConfig (uint16_t offset, unsigned width, uint64_t &value)
 
bool status (uint8_t bits)
 
bool isDmaActive () const
 

Private Attributes

Device * m_Device
 
Capability m_Common
 
Capability m_Notify
 
Capability m_Isr
 
Capability m_DeviceConfig
 
PciFunctionState::State m_Original
 
Queue * m_Queues [MaxQueues]
 
uint32_t m_NotifyOffsets [MaxQueues]
 
uint32_t m_NotifyMultiplier
 
uint64_t m_Features
 
uint16_t m_NumQueues
 
bool m_PciChanged
 
bool m_Initialised
 
bool m_Negotiated
 
bool m_DmaActive
 

Static Private Attributes

static constexpr size_t MaxQueues = 64
 

Friends

class Queue
 

Detailed Description

Definition at line 16 of file VirtioPci.h.

Constructor & Destructor Documentation

◆ PciTransport()

PciTransport::PciTransport ( Device *  device)
explicit

Definition at line 28 of file VirtioPci.cc.

◆ ~PciTransport()

PciTransport::~PciTransport ( )

Definition at line 45 of file VirtioPci.cc.

Member Function Documentation

◆ features()

uint64_t Virtio::PciTransport::features ( ) const
inline

Definition at line 30 of file VirtioPci.h.

◆ initialise()

bool PciTransport::initialise ( )

Definition at line 150 of file VirtioPci.cc.

◆ isDmaActive()

bool Virtio::PciTransport::isDmaActive ( ) const
inlineprivate

Definition at line 52 of file VirtioPci.h.

◆ locateCapabilities()

bool PciTransport::locateCapabilities ( )
private

Definition at line 55 of file VirtioPci.cc.

◆ negotiate()

bool PciTransport::negotiate ( uint64_t  supportedFeatures,
uint64_t  requiredFeatures = 0 
)

Definition at line 184 of file VirtioPci.cc.

◆ notify()

void PciTransport::notify ( uint16_t  index)

Definition at line 320 of file VirtioPci.cc.

◆ readConfig()

bool PciTransport::readConfig ( uint16_t  offset,
unsigned  width,
uint64_t &  value 
)
private

Definition at line 336 of file VirtioPci.cc.

◆ readDeviceConfig16()

bool PciTransport::readDeviceConfig16 ( uint16_t  offset,
uint16_t &  value 
)

Definition at line 376 of file VirtioPci.cc.

◆ readDeviceConfig32()

bool PciTransport::readDeviceConfig32 ( uint16_t  offset,
uint32_t &  value 
)

Definition at line 384 of file VirtioPci.cc.

◆ readDeviceConfig64()

bool PciTransport::readDeviceConfig64 ( uint16_t  offset,
uint64_t &  value 
)

Definition at line 392 of file VirtioPci.cc.

◆ readDeviceConfig8()

bool PciTransport::readDeviceConfig8 ( uint16_t  offset,
uint8_t &  value 
)

Definition at line 368 of file VirtioPci.cc.

◆ readIsr()

uint8_t PciTransport::readIsr ( )

Definition at line 316 of file VirtioPci.cc.

◆ ready()

bool PciTransport::ready ( )

Definition at line 257 of file VirtioPci.cc.

◆ reset()

bool PciTransport::reset ( )

Definition at line 285 of file VirtioPci.cc.

◆ setupQueue()

bool PciTransport::setupQueue ( uint16_t  index,
Queue &  queue 
)

Definition at line 212 of file VirtioPci.cc.

◆ status()

bool PciTransport::status ( uint8_t  bits)
private

Definition at line 137 of file VirtioPci.cc.

◆ writeDeviceConfig8()

bool PciTransport::writeDeviceConfig8 ( uint16_t  offset,
uint8_t  value 
)

Definition at line 328 of file VirtioPci.cc.

Friends And Related Symbol Documentation

◆ Queue

friend class Queue
friend

Definition at line 40 of file VirtioPci.h.

Member Data Documentation

◆ m_Common

Capability Virtio::PciTransport::m_Common
private

Definition at line 57 of file VirtioPci.h.

◆ m_Device

Device* Virtio::PciTransport::m_Device
private

Definition at line 56 of file VirtioPci.h.

◆ m_DeviceConfig

Capability Virtio::PciTransport::m_DeviceConfig
private

Definition at line 60 of file VirtioPci.h.

◆ m_DmaActive

bool Virtio::PciTransport::m_DmaActive
private

Definition at line 70 of file VirtioPci.h.

◆ m_Features

uint64_t Virtio::PciTransport::m_Features
private

Definition at line 65 of file VirtioPci.h.

◆ m_Initialised

bool Virtio::PciTransport::m_Initialised
private

Definition at line 68 of file VirtioPci.h.

◆ m_Isr

Capability Virtio::PciTransport::m_Isr
private

Definition at line 59 of file VirtioPci.h.

◆ m_Negotiated

bool Virtio::PciTransport::m_Negotiated
private

Definition at line 69 of file VirtioPci.h.

◆ m_Notify

Capability Virtio::PciTransport::m_Notify
private

Definition at line 58 of file VirtioPci.h.

◆ m_NotifyMultiplier

uint32_t Virtio::PciTransport::m_NotifyMultiplier
private

Definition at line 64 of file VirtioPci.h.

◆ m_NotifyOffsets

uint32_t Virtio::PciTransport::m_NotifyOffsets[MaxQueues]
private

Definition at line 63 of file VirtioPci.h.

◆ m_NumQueues

uint16_t Virtio::PciTransport::m_NumQueues
private

Definition at line 66 of file VirtioPci.h.

◆ m_Original

PciFunctionState::State Virtio::PciTransport::m_Original
private

Definition at line 61 of file VirtioPci.h.

◆ m_PciChanged

bool Virtio::PciTransport::m_PciChanged
private

Definition at line 67 of file VirtioPci.h.

◆ m_Queues

Queue* Virtio::PciTransport::m_Queues[MaxQueues]
private

Definition at line 62 of file VirtioPci.h.

◆ MaxQueues

constexpr size_t Virtio::PciTransport::MaxQueues = 64
staticconstexprprivate

Definition at line 41 of file VirtioPci.h.


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