Iros
 
Loading...
Searching...
No Matches
iris::arch::ArchProcessor Class Reference

#include <iris/arch/x86/amd64/core/processor.h>

Public Member Functions

auto local_apic () -> x86::amd64::LocalApic &
 Get the local APIC.
 
void set_local_apic (x86::amd64::LocalApic local_apic)
 
auto gdt () -> auto &
 
auto tss () -> auto &
 
void set_fallback_kernel_stack (uptr stack)
 
auto fallback_kernel_stack () const -> uptr
 
void setup_fpu_support_for_processor (bool print_info=true)
 Setup the processor to allow floating-point / SIMD operations.
 
void enable_cpu_features (bool print_info=true)
 Enable CPU features for the current processor.
 
void set_local_apic_callback (di::Function< void(IrqContext &)> callback)
 
void local_apic_callback (IrqContext &context)
 

Member Function Documentation

◆ enable_cpu_features()

void iris::arch::ArchProcessor::enable_cpu_features ( bool print_info = true)

Enable CPU features for the current processor.

Note
This must be called once at boot for each logical processor.

◆ fallback_kernel_stack()

auto iris::arch::ArchProcessor::fallback_kernel_stack ( ) const -> uptr
inline

◆ gdt()

auto iris::arch::ArchProcessor::gdt ( ) -> auto&
inline

◆ local_apic()

auto iris::arch::ArchProcessor::local_apic ( ) -> x86::amd64::LocalApic&
inline

Get the local APIC.

Warning
This function is only safe to call if global_state().arch_readonly_state.use_apic is true, and the local APIC has been initialized.

◆ local_apic_callback()

void iris::arch::ArchProcessor::local_apic_callback ( IrqContext & context)
inline

◆ set_fallback_kernel_stack()

void iris::arch::ArchProcessor::set_fallback_kernel_stack ( uptr stack)
inline

◆ set_local_apic()

void iris::arch::ArchProcessor::set_local_apic ( x86::amd64::LocalApic local_apic)
inline

◆ set_local_apic_callback()

void iris::arch::ArchProcessor::set_local_apic_callback ( di::Function< void(IrqContext &)> callback)
inline

◆ setup_fpu_support_for_processor()

void iris::arch::ArchProcessor::setup_fpu_support_for_processor ( bool print_info = true)

Setup the processor to allow floating-point / SIMD operations.

Note
This must be called once at boot for each logical processor.

◆ tss()

auto iris::arch::ArchProcessor::tss ( ) -> auto&
inline

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