[−][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. |