Turnstone Operating System
|
apic and ioapic implementation More...
#include <apic.h>
#include <cpu.h>
#include <cpu/cpu_state.h>
#include <memory/paging.h>
#include <memory/frame.h>
#include <acpi.h>
#include <iterator.h>
#include <cpu/interrupt.h>
#include <logging.h>
#include <time/timer.h>
#include <list.h>
#include <time.h>
Typedefs | |
typedef uint32_t(* | lock_get_local_apic_id_getter_f) (void) |
Functions | |
MODULE ("turnstone.kernel.cpu.apic") | |
uint8_t | apic_init_ioapic (const acpi_table_madt_entry_t *ioapic) |
int8_t | apic_init_timer (void) |
static uint64_t | apic_read_timer_current_value (void) |
static void | apic_write_timer_initial_value (uint32_t value) |
static void | apic_write_timer_divide_configuration (uint32_t value) |
static void | apic_write_timer_lvt (uint32_t value) |
static uint32_t | apic_read_timer_lvt (void) |
static void | apic_write_spurious_interrupt_vector (uint32_t value) |
static void | apic_write_lvt_lint0 (uint32_t value) |
static void | apic_write_lvt_lint1 (uint32_t value) |
int8_t | apic_setup (acpi_xrsdp_descriptor_t *desc) |
int8_t | apic_init_apic (list_t *apic_entries) |
uint8_t | apic_get_irq_override (uint8_t old_irq) |
void | apic_enable_lapic (void) |
uint8_t | apic_configure_lapic (void) |
boolean_t | apic_is_waiting_timer (void) |
int8_t | apic_ioapic_setup_irq (uint8_t irq, uint32_t props) |
int8_t | apic_ioapic_switch_irq (uint8_t irq, uint32_t disabled) |
void | apic_eoi (void) |
uint32_t | apic_get_local_apic_id (void) |
void | apic_send_init (uint8_t destination) |
void | apic_send_sipi (uint8_t destination, uint8_t vector) |
void | apic_send_ipi (uint8_t destination, uint8_t vector) |
void | apic_send_nmi (uint8_t destination) |
uint64_t | apic_get_ap_count (void) |
Variables | |
uint64_t | ioapic_bases [2] = {0, 0} |
uint8_t | ioapic_count = 0 |
uint64_t | lapic_addr = 0 |
int8_t | apic_enabled = 0 |
uint32_t | lapic_initial_timer_count = 0 |
uint64_t | apic_ap_count = 0 |
boolean_t | apic_x2apic = false |
list_t * | irq_remappings = NULL |
volatile uint64_t | time_timer_rdtsc_delta |
lock_get_local_apic_id_getter_f | lock_get_local_apic_id_getter |
boolean_t | local_apic_id_is_valid |
cpu_state_t __seg_gs * | cpu_state |
apic and ioapic implementation
This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.