|
Turnstone Operating System
|
Interrupts. More...
#include <types.h>#include <cpu.h>#include <cpu/interrupt.h>#include <cpu/descriptor.h>#include <cpu/crx.h>#include <logging.h>#include <strings.h>#include <memory/paging.h>#include <memory.h>#include <apic.h>#include <cpu/task.h>#include <backtrace.h>#include <debug.h>Classes | |
| struct | interrupt_irq_list_item_t |
Typedefs | |
| typedef struct interrupt_irq_list_item_t | interrupt_irq_list_item_t |
Functions | |
| MODULE ("turnstone.kernel.cpu.interrupt") | |
| void | video_text_print (const char_t *string) |
| void | interrupt_register_dummy_handlers (descriptor_idt_t *) |
| int8_t | interrupt_int01_debug_exception (interrupt_frame_ext_t *) |
| int8_t | interrupt_int02_nmi_interrupt (interrupt_frame_ext_t *) |
| int8_t | interrupt_int03_breakpoint_exception (interrupt_frame_ext_t *) |
| int8_t | interrupt_int0D_general_protection_exception (interrupt_frame_ext_t *) |
| int8_t | interrupt_int0E_page_fault_exception (interrupt_frame_ext_t *) |
| int8_t | interrupt_int13_simd_floating_point_exception (interrupt_frame_ext_t *) |
| int8_t | interrupt_init (void) |
| interrupt table builder functions | |
| int8_t | interrupt_ist_redirect_main_interrupts (uint8_t ist) |
| interrupt redirector for main interrupts | |
| int8_t | interrupt_ist_redirect_interrupt (uint8_t vec, uint8_t ist) |
| interrupt redirector for main interrupts | |
| uint8_t | interrupt_get_next_empty_interrupt (void) |
| finds not used interrupt for registering | |
| int8_t | interrupt_irq_remove_handler (uint8_t irqnum, interrupt_irq irq) |
| remove irq for irq number | |
| int8_t | interrupt_irq_set_handler (uint8_t irqnum, interrupt_irq irq) |
| registers irq for irq number, for an irq there can be more irq handlers, loops with return of interrupt_irq | |
| static void | interrupt_print_frame_ext (interrupt_frame_ext_t *frame) |
| static void | interrupt_save_restore_avx512f (boolean_t save, interrupt_frame_ext_t *frame) |
| void | interrupt_generic_handler (interrupt_frame_ext_t *frame) |
Variables | |
| interrupt_irq_list_item_t ** | interrupt_irqs = NULL |
| uint8_t | next_empty_interrupt = 0 |
| boolean_t | KERNEL_PANIC_DISABLE_LOCKS |
| static boolean_t | interrupt_xsave_mask_memorized = false |
| static uint64_t | interrupt_xsave_mask_lo = 0 |
| static uint64_t | interrupt_xsave_mask_hi = 0 |
| boolean_t | we_sended_nmi_to_bsp |
Interrupts.
This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.
| uint8_t interrupt_get_next_empty_interrupt | ( | void | ) |
finds not used interrupt for registering
| int8_t interrupt_init | ( | void | ) |
interrupt table builder functions
builds interrupt table at idtr look for descriptor_idt
| int8_t interrupt_irq_remove_handler | ( | uint8_t | irqnum, |
| interrupt_irq | irq ) |
remove irq for irq number
| [in] | irqnum | irq number to handle |
| [in] | irq | the irq handler |
| int8_t interrupt_irq_set_handler | ( | uint8_t | irqnum, |
| interrupt_irq | irq ) |
registers irq for irq number, for an irq there can be more irq handlers, loops with return of interrupt_irq
| [in] | irqnum | irq number to handle |
| [in] | irq | the irq handler |
interrupt redirector for main interrupts
| [in] | ist | interrupt stack table index |
interrupt redirector for main interrupts
| [in] | ist | interrupt stack table index |
|
extern |
global kernel panic lock for efi