StuBS
hpet.cc File Reference
#include "machine/hpet.h"
#include "machine/acpi.h"
#include "machine/core.h"
#include "debug/assert.h"
#include "debug/kernelpanic.h"
#include "debug/output.h"
Include dependency graph for hpet.cc:

Classes

struct  HPET::ConfigurationRegister.__unnamed38__
 

Namespaces

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

Typedefs

typedef uint64_t HPET::InterruptStatusRegister
 Global state register for interrupts.
 

Enumerations

enum  HPET::RegisterOffset : uint16_t {
  HPET::CAPABILITIES_AND_ID = 0x000 ,
  HPET::CONFIGURATION = 0x010 ,
  HPET::INTERRUPT_STATUS = 0x020 ,
  HPET::MAIN_COUNTER = 0x0f0
}
 Register Offsets. More...
 

Functions

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

Constants

uintptr_t HPET::base_address = 0
 
static uint16_t HPET::min_periodic_clock_tick
 

Class Documentation

◆ HPET::ConfigurationRegister.__unnamed38__

struct HPET::ConfigurationRegister.__unnamed38__
Class Members
uint64_t enabled: 1 Enables/disables the HPET.
uint64_t legacy_routing: 1 if 1, legacy routing is enabled
uint64_t __pad0__: 62