|
Turnstone Operating System
|
defines interrupt functions at long mode More...
Classes | |
| struct | interrupt_frame_t |
| struct | interrupt_frame_ext_t |
| union | interrupt_errorcode_pagefault_u |
| bit fileds for page fault error no More... | |
Macros | |
| #define | ___CPU_INTERRUPT_H 0 |
| #define | interrupt_errcode_t uint64_t |
| interrupt error code type | |
| #define | INTERRUPT_IRQ_BASE 0x20 |
| #define | INTERRUPT_VECTOR_SPURIOUS 0xFF |
Typedefs | |
| typedef struct interrupt_frame_t | interrupt_frame_t |
| struct short hand | |
| typedef struct interrupt_frame_ext_t | interrupt_frame_ext_t |
| struct short hand | |
| typedef int8_t(* | interrupt_irq) (interrupt_frame_ext_t *frame) |
| irq method signature | |
| typedef union interrupt_errorcode_pagefault_u | interrupt_errorcode_pagefault_t |
| union short hand for interrupt_errorcode_pagefault_u | |
Functions | |
| 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 | |
| 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 | |
| int8_t | interrupt_irq_remove_handler (uint8_t irqnum, interrupt_irq irq) |
| remove irq for irq number | |
| uint8_t | interrupt_get_next_empty_interrupt (void) |
| finds not used interrupt for registering | |
| void | interrupt_generic_handler (interrupt_frame_ext_t *frame) |
defines interrupt functions at long mode
This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.
| #define ___CPU_INTERRUPT_H 0 |
prevent duplicate header error macro
| #define INTERRUPT_IRQ_BASE 0x20 |
the base interrupt number of irqs
| #define INTERRUPT_VECTOR_SPURIOUS 0xFF |
apci spurious interrupt number
| typedef int8_t(* interrupt_irq) (interrupt_frame_ext_t *frame) |
irq method signature
| [in] | frame | interrupt frame |
| [in] | intnum | interrupt/irq number |
| 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 |