[−][src]Module sunrise_kernel::i386::interrupt_service_routines
i386 exceptions + irq + syscall handling
Macros
This module defines the following macros to handle exceptions and interrupts:
trap_gate_asm
: low-level asm wrapper.generate_trap_gate_handler
: high-level rust wrapper.irq_handler
: irq handler generator.
Exceptions
All exceptions are considered unrecoverable errors, and kill the process that issued it.
Feature panic-on-exception
makes the kernel stop and panic when a thread generates
an exception. This is useful for debugging.
IRQs
Interrupts are handled like exceptions, whose handler dispatches the event for the irq line.
See irq_handler
.
Syscalls
Syscalls are handled as if they were exceptions, but instead of killing the process the handler calls syscall_interrupt_dispatcher.
Structs
IDT | IDT address. Initialized in |
UserspaceHardwareContext | Represents a register backup. |
Statics
INSIDE_INTERRUPT_COUNT | Contains the number of interrupts we are currently inside. |
IRQ_HANDLERS | Array of interrupt handlers. |