Iros
 
Loading...
Searching...
No Matches
iris::x86::amd64::LocalApic Class Reference

#include <iris/arch/x86/amd64/hw/local_apic.h>

Public Member Functions

 LocalApic (mm::PhysicalAddress base)
 
auto direct_read (ApicOffset offset) const -> u32
 
void direct_write (ApicOffset offset, u32 value)
 
auto id () const -> u16
 Read the Local APIC ID.
 
auto version () const -> ApicVersionRegister
 
auto extended_feature () const -> ApicExtendedFeatureRegister
 
auto extended_control () const -> ApicExtendedControlRegister
 
void write_extended_control (ApicExtendedControlRegister value)
 
void write_spurious_interrupt_vector (u32 value)
 
auto lvt_entry (ApicOffset offset) const -> ApicLvtEntry
 
void write_lvt_entry (ApicOffset offset, ApicLvtEntry value)
 
auto timer_initial_count () const -> u32
 
void write_timer_initial_count (u32 value)
 
auto timer_current_count () const -> u32
 
void write_timer_current_count (u32 value)
 
auto timer_divide_configuration () const -> ApicTimerDivideConfiguration
 
void write_timer_divide_configuration (ApicTimerDivideConfiguration value)
 
auto interrupt_command_register () const -> ApicInterruptCommandRegister
 
void write_interrupt_command_register (ApicInterruptCommandRegister value)
 
void send_eoi ()
 

Constructor & Destructor Documentation

◆ LocalApic()

iris::x86::amd64::LocalApic::LocalApic ( mm::PhysicalAddress base)
explicit

Member Function Documentation

◆ direct_read()

auto iris::x86::amd64::LocalApic::direct_read ( ApicOffset offset) const -> u32
inline

◆ direct_write()

void iris::x86::amd64::LocalApic::direct_write ( ApicOffset offset,
u32 value )
inline

◆ extended_control()

auto iris::x86::amd64::LocalApic::extended_control ( ) const -> ApicExtendedControlRegister
inline

◆ extended_feature()

auto iris::x86::amd64::LocalApic::extended_feature ( ) const -> ApicExtendedFeatureRegister
inline

◆ id()

auto iris::x86::amd64::LocalApic::id ( ) const -> u16
inline

Read the Local APIC ID.

See AMD64 Programmer's Manual; Volume 2; Section 16.3.3 Figure 16-3.

◆ interrupt_command_register()

auto iris::x86::amd64::LocalApic::interrupt_command_register ( ) const -> ApicInterruptCommandRegister
inline

◆ lvt_entry()

auto iris::x86::amd64::LocalApic::lvt_entry ( ApicOffset offset) const -> ApicLvtEntry
inline

◆ send_eoi()

void iris::x86::amd64::LocalApic::send_eoi ( )
inline

◆ timer_current_count()

auto iris::x86::amd64::LocalApic::timer_current_count ( ) const -> u32
inline

◆ timer_divide_configuration()

auto iris::x86::amd64::LocalApic::timer_divide_configuration ( ) const -> ApicTimerDivideConfiguration
inline

◆ timer_initial_count()

auto iris::x86::amd64::LocalApic::timer_initial_count ( ) const -> u32
inline

◆ version()

auto iris::x86::amd64::LocalApic::version ( ) const -> ApicVersionRegister
inline

◆ write_extended_control()

void iris::x86::amd64::LocalApic::write_extended_control ( ApicExtendedControlRegister value)
inline

◆ write_interrupt_command_register()

void iris::x86::amd64::LocalApic::write_interrupt_command_register ( ApicInterruptCommandRegister value)
inline

◆ write_lvt_entry()

void iris::x86::amd64::LocalApic::write_lvt_entry ( ApicOffset offset,
ApicLvtEntry value )
inline

◆ write_spurious_interrupt_vector()

void iris::x86::amd64::LocalApic::write_spurious_interrupt_vector ( u32 value)
inline

◆ write_timer_current_count()

void iris::x86::amd64::LocalApic::write_timer_current_count ( u32 value)
inline

◆ write_timer_divide_configuration()

void iris::x86::amd64::LocalApic::write_timer_divide_configuration ( ApicTimerDivideConfiguration value)
inline

◆ write_timer_initial_count()

void iris::x86::amd64::LocalApic::write_timer_initial_count ( u32 value)
inline

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