|
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, boolean_t wait) |
| void | apic_send_nmi (uint8_t destination) |
| uint64_t | apic_get_ap_count (void) |
| int32_t | apic_get_first_irr_interrupt (void) |
| int32_t | apic_get_isr_interrupt (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.