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

Use the HPET as timer backend. More...

Inheritance diagram for HostHpet:
BasicHpet StaticReceiver< HostHpet > Device

Public Member Functions

bool receive (MessageIrq &msg)
bool receive (MessageTimer &msg)
 HostHpet (DBus< MessageTimeout > &bus_timeout, DBus< MessageHostOp > &bus_hostop, Clock *clock, void *iomem, unsigned timer, unsigned theirq, bool level, unsigned long maxfreq)
- Public Member Functions inherited from StaticReceiver< HostHpet >
 StaticReceiver ()
- Public Member Functions inherited from Device
void debug_dump ()
 Device (const char *debug_name)

Private Attributes

DBus< MessageTimeout > & _bus_timeout
Clock_clock
struct HostHpetRegister * _regs
unsigned _isrclear
struct HostHpetTimer_timerreg
unsigned _irq
timevalue _freq
unsigned _mindelta

Additional Inherited Members

- Public Types inherited from BasicHpet
enum  {
  ENABLE_CNF = (1U << 0), LEG_RT_CNF = (1U << 1), LEG_RT_CAP = (1U << 15), BIT64_CAP = (1U << 13),
  FSB_INT_DEL_CAP = (1U << 15), FSB_INT_EN_CNF = (1U << 14), MODE32_CNF = (1U << 8), PER_INT_CAP = (1U << 4),
  TYPE_CNF = (1U << 3), INT_ENB_CNF = (1U << 2), INT_TYPE_CNF = (1U << 1)
}
- Static Public Member Functions inherited from BasicHpet
static unsigned long get_hpet_address (DBus< MessageAcpi > &bus_acpi)
 Get the HPET address from the ACPI table.
static uint16 get_hpet_rid (DBus< MessageAcpi > &bus_acpi, unsigned block, unsigned comparator)
 Try to find out HPET routing ID.
static bool check_hpet_present (void *address, unsigned timer, unsigned irq)
 Check whether some address points to an hpet.
- Static Public Member Functions inherited from StaticReceiver< HostHpet >
static bool receive_static (Device *o, M &msg)

Detailed Description

Use the HPET as timer backend.

State: testing Features: periodic timer, support different timers, one-shot, HPET ACPI table, MSI

Constructor & Destructor Documentation

HostHpet::HostHpet ( DBus< MessageTimeout > &  bus_timeout,
DBus< MessageHostOp > &  bus_hostop,
Clock clock,
void *  iomem,
unsigned  timer,
unsigned  theirq,
bool  level,
unsigned long  maxfreq 
)
inline

Member Function Documentation

bool HostHpet::receive ( MessageIrq msg)
inline
bool HostHpet::receive ( MessageTimer msg)
inline

Use the same heuristic as in Linux 2.6.37 to avoid various corner cases. See 995bd3bb5c78f3ff71339803c0b8337ed36d64fb for a detailed explanation.

Member Data Documentation

DBus<MessageTimeout>& HostHpet::_bus_timeout
private
Clock* HostHpet::_clock
private
timevalue HostHpet::_freq
private
unsigned HostHpet::_irq
private
unsigned HostHpet::_isrclear
private
unsigned HostHpet::_mindelta
private
struct HostHpetRegister* HostHpet::_regs
private
struct HostHpetTimer* HostHpet::_timerreg
private

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