NOVA User-Level Environment  Version testbox/changed-memory-timing-317-g320d8b5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HostAhci Class Reference

A simple driver for AHCI. More...

Inheritance diagram for HostAhci:
StaticReceiver< HostAhci > Device

Public Member Functions

 HostAhci (HostPci pci, DBus< MessageHostOp > &bus_hostop, DBus< MessageDisk > &bus_disk, DBus< MessageDiskCommit > &bus_commit, Clock *clock, unsigned long bdf, unsigned hostirq, bool dmar)
bool receive (MessageIrq &msg)
- Public Member Functions inherited from StaticReceiver< HostAhci >
 StaticReceiver ()
- Public Member Functions inherited from Device
void debug_dump ()
 Device (const char *debug_name)

Private Member Functions

void create_ahci_port (unsigned short *buffer, unsigned nr, HostAhciPortRegister *portreg, DBus< MessageHostOp > &bus_hostop, DBus< MessageDisk > &bus_disk, DBus< MessageDiskCommit > &bus_commit, Clock *clock, bool dmar)

Private Attributes

unsigned _bdf
unsigned _hostirq
HostAhciRegister_regs
HostAhciPortRegister_regs_high
HostAhciPort_ports [32]

Additional Inherited Members

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

Detailed Description

A simple driver for AHCI.

State: testing Features: Ports

Constructor & Destructor Documentation

HostAhci::HostAhci ( HostPci  pci,
DBus< MessageHostOp > &  bus_hostop,
DBus< MessageDisk > &  bus_disk,
DBus< MessageDiskCommit > &  bus_commit,
Clock clock,
unsigned long  bdf,
unsigned  hostirq,
bool  dmar 
)
inline

Member Function Documentation

void HostAhci::create_ahci_port ( unsigned short *  buffer,
unsigned  nr,
HostAhciPortRegister portreg,
DBus< MessageHostOp > &  bus_hostop,
DBus< MessageDisk > &  bus_disk,
DBus< MessageDiskCommit > &  bus_commit,
Clock clock,
bool  dmar 
)
inlineprivate
bool HostAhci::receive ( MessageIrq msg)
inline

Member Data Documentation

unsigned HostAhci::_bdf
private
unsigned HostAhci::_hostirq
private
HostAhciPort* HostAhci::_ports[32]
private
HostAhciRegister* HostAhci::_regs
private
HostAhciPortRegister* HostAhci::_regs_high
private

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