Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik
hpet_timer.h File Reference

Definition of the HPET comparator class. More...

#include "machine/hpet.h"
Include dependency graph for hpet_timer.h:

Classes

union  HPET::TimerConfigAndCapabilitiesRegister
 Configuration register for comparators. More...
 
union  HPET::TimerFSBInterruptRouteRegister
 Front-Side Bus Interrupt Message Route Register. More...
 
class  HPET::Timer
 Class abstracting a single HPET comparator. More...
 
struct  HPET::TimerConfigAndCapabilitiesRegister.__unnamed__
 
struct  HPET::TimerFSBInterruptRouteRegister.__unnamed__
 

Namespaces

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

Typedefs

typedef uint64_t HPET::TimerComparatorRegister
 Value register used by comparators. More...
 

Enumerations

enum  HPET::TriggerMode { EDGE = 0x0, LEVEL = 0x1 }
 Trigger mode for the interrupts generated by a comparator.
 
enum  HPET::TimerMode { SINGLESHOT = 0x0, PERIODIC = 0x1 }
 Timer mode a comparator is running in.
 

Functions

Timer * HPET::getTimer (size_t index)
 Returns a pointer to the indexth comparator. More...
 

Detailed Description

Definition of the HPET comparator class.


Class Documentation

◆ HPET::TimerConfigAndCapabilitiesRegister

union HPET::TimerConfigAndCapabilitiesRegister

Configuration register for comparators.

In addition to global configuration and value registers, every HPET timer comes with its own configuration register containing config used locally by the respective timer.

Class Members
struct TimerConfigAndCapabilitiesRegister __unnamed__
uint64_t value

◆ HPET::TimerFSBInterruptRouteRegister

union HPET::TimerFSBInterruptRouteRegister

Front-Side Bus Interrupt Message Route Register.

Currently, this register is not used by StuBS; it's definition is here for the sake of completeness.

Class Members
struct TimerFSBInterruptRouteRegister __unnamed__
uint64_t value

◆ HPET::TimerConfigAndCapabilitiesRegister.__unnamed__

struct HPET::TimerConfigAndCapabilitiesRegister.__unnamed__
Class Members
uint64_t __pad0__: 1
uint64_t interrupt_type: 1
uint64_t interrupts_enabled: 1
uint64_t mode: 1
uint64_t periodic_capable: 1
uint64_t timer_size: 1
uint64_t set_value: 1 if set to 1, the accumulator can be set in software
uint64_t small_mode: 1 if set to 1, the timer runs in 32-bit mode
uint64_t ioapic_interrupt_vector: 5
uint64_t fsb_interrupt_enabled: 1
uint64_t fsb_interrupt_delivery: 1
uint64_t interrupt_vecs: 32 bit mask containing the interrupt vectors for this timer

◆ HPET::TimerFSBInterruptRouteRegister.__unnamed__

struct HPET::TimerFSBInterruptRouteRegister.__unnamed__
Class Members
uint32_t interrupt_value
uint32_t interrupt_address