142typedef struct interrupt_frame
177#define INTERRUPT_FRAME_IN_USER_SPACE(frame) ((frame)->ss == (GDT_SS_RING3) && (frame)->cs == (GDT_CS_RING3))
#define IDT_GATE_AMOUNT
Number of IDT gates.
void interrupt_ctx_init(interrupt_ctx_t *ctx)
Initializes the interrupt context.
void interrupt_handler(interrupt_frame_t *frame)
Handles CPU interrupts.
void * vectorTable[IDT_GATE_AMOUNT]
Pointers to functions to handle each vector.
void interrupt_disable(void)
Disable interrupts and increment the disableDepth.
void interrupt_enable(void)
Decrement the CLI depth and enable interrupts if depth reaches zero and interrupts were previously en...
page_fault_errors_t
Page Fault Error Codes.
interrupt_vector_t
Interrupt Vectors.
@ PAGE_FAULT_SOFTWARE_GUARD_EXT
@ PAGE_FAULT_SHADOW_STACK
@ PAGE_FAULT_PROTECTION_KEY
@ VECTOR_VMM_COMMUNICATION_EXCEPTION
@ VECTOR_INTERNAL_START
Inclusive start of internal interrupts.
@ VECTOR_EXTERNAL_END
Exclusive end of external interrupts.
@ VECTOR_EXTERNAL_START
Inclusive start of external interrupts (handled by the IRQ system).
@ VECTOR_BOUND_RANGE_EXCEEDED
@ VECTOR_IPI
See IPI for more information.
@ VECTOR_HYPERVISOR_INJECTION_EXCEPTION
@ VECTOR_STACK_SEGMENT_FAULT
@ VECTOR_COPROCESSOR_SEGMENT_OVERRUN
@ VECTOR_VIRTUALIZATION_EXCEPTION
@ VECTOR_X87_FLOATING_POINT_EXCEPTION
@ VECTOR_SIMD_FLOATING_POINT_EXCEPTION
@ VECTOR_EXCEPTION_START
Inclusive start of exceptions.
@ VECTOR_GENERAL_PROTECTION_FAULT
@ VECTOR_INTERNAL_END
Exclusive end of internal interrupts.
@ VECTOR_CONTROL_PROTECTION_EXCEPTION
@ VECTOR_SEGMENT_NOT_PRESENT
@ VECTOR_SECURITY_EXCEPTION
@ VECTOR_TIMER
See Timer subsystem for more information.
@ VECTOR_SPURIOUS
Made available for any component to use as a sink for spurious interrupts.
@ VECTOR_DEVICE_NOT_AVAILABLE
@ VECTOR_EXCEPTION_END
Exclusive end of exceptions.
Per-CPU Interrupt Context.