StuBS
lapic_timer.cc File Reference
#include "types.h"
#include "machine/lapic.h"
#include "machine/lapic_registers.h"
#include "machine/core.h"
Include dependency graph for lapic_timer.cc:

Classes

union  LAPIC::Timer::ControlRegister
 LAPIC-Timer Control Register. More...

Namespaces

namespace  LAPIC
 Abstracts the local APIC (which is integrated into every CPU core).
namespace  LAPIC::Timer
 Local Timer (for each LAPIC / CPU).

Enumerations

enum  LAPIC::Timer::DeliveryStatus {
  LAPIC::Timer::IDLE = 0 ,
  LAPIC::Timer::SEND_PENDING = 1
}
 Timer Delivery Status. More...
enum  LAPIC::Timer::TimerMode {
  LAPIC::Timer::ONE_SHOT = 0 ,
  LAPIC::Timer::PERIODIC = 1 ,
  LAPIC::Timer::DEADLINE = 2
}
 Timer Mode. More...
enum  LAPIC::Timer::Mask {
  LAPIC::Timer::NOT_MASKED = 0 ,
  LAPIC::Timer::MASKED = 1
}
 Timer Mask. More...

Functions

Register LAPIC::Timer::getClockDiv (uint8_t div)
 Calculate the bit mask for the LAPIC-timer divider.
uint32_t LAPIC::Timer::ticks (void)
 Determines the LAPIC timer frequency.
void LAPIC::Timer::set (uint32_t counter, uint8_t divide, uint8_t vector, bool periodic, bool masked=false)
 Set the LAPIC timer.

Constants

static const Register LAPIC::Timer::INVALID_DIV = 0xff
static const Register LAPIC::Timer::div_masks []
 LAPIC timer divider table.