StuBS
hpet.h File Reference

The High Precision Event Timer (HPET). More...

#include "types.h"
Include dependency graph for hpet.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  HPET::Comparator::ConfigAndCapabilitiesRegister.__unnamed46__
 

Namespaces

namespace  HPET
 Abstraction of the HPET existing in "modern" computers (since ~2005)
 

Enumerations

enum  HPET::CounterSize {
  SIZE_32BIT = 0x0 ,
  SIZE_64BIT = 0x1
}
 Size of the global counter and the comparators.
 

Functions

bool HPET::init ()
 Initializes the HPET system from ACPI Table. More...
 
void HPET::delay (uint64_t usecs)
 Delays the caller's execution by approx. More...
 
bool HPET::isEnabled ()
 Checks whether the HPET system is enabled. More...
 
void HPET::enable ()
 Activate the HPET system. More...
 
void HPET::disable ()
 Deactivate the HPET system. More...
 
void HPET::reset ()
 Reset the global counter to zero. More...
 
Comparator * HPET::getComparator (size_t n)
 Returns a pointer to the nth timer comparator. More...
 
size_t HPET::countComparators ()
 Retrieve the number of HPET comparators. More...
 

Detailed Description


Class Documentation

◆ HPET::Comparator::ConfigAndCapabilitiesRegister.__unnamed46__

struct HPET::Comparator::ConfigAndCapabilitiesRegister.__unnamed46__
Class Members
uint64_t __pad0__: 1
TriggerMode trigger_mode: 1 Generate edge or level triggered interrupts.
uint64_t interrupt_status: 1 Enable (1) or disable (0) interrupts.
ComparatorMode comparator_mode: 1 periodic or one shot mode
uint64_t periodic_capable: 1 Is timer capable of periodic mode (read-only)
CounterSize counter_size: 1 32- or 64bit size (read-only)
uint64_t set_value: 1 if set to 1, the accumulator can be set in software
uint64_t __pad1__: 1
uint64_t small_mode: 1 if set to 1 while supporting 64bit size, the timer runs in 32-bit mode
uint64_t ioapic_slot: 5 I/O-APIC slot (must be set in mask supported_ioapic_slots)
uint64_t fsb_interrupt_enabled: 1 if set to 1, the timer will use FSB interrupt mapping
uint64_t fsb_interrupt_delivery: 1 if set to 1, the timer supports FSB interrupt mapping (read-only)
uint64_t __pad2__: 16
uint64_t supported_ioapic_slots: 32 bit mask containing the supported I/O APIC slots (read-only)