76#define INTERRUPT_FRAME_IN_USER_SPACE(frame) ((frame)->ss == (GDT_SS_RING3) && (frame)->cs == (GDT_CS_RING3)) 
void interrupt_ctx_init(interrupt_ctx_t *ctx)
Initializes the CLI context.
void interrupt_handler(interrupt_frame_t *frame)
Handles CPU interrupts.
void * vectorTable[INTERRUPT_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...
interrupt_t
CPU vector identifiers.
page_fault_errors_t
Page Fault Error Codes.
@ EXCEPTION_SIMD_EXCEPTION
@ EXCEPTION_INVALID_OPCODE
@ EXCEPTION_VIRTUALIZATION_EXCEPTION
@ INTERRUPT_TIMER
The timer subsystem interrupt.
@ INTERRUPT_NOTE
Nofify that a note is available.
@ EXCEPTION_DEVICE_NOT_AVAILABLE
@ EXCEPTION_MACHINE_CHECK
@ EXCEPTION_SEGMENT_NOT_PRESENT
@ INTERRUPT_DIE
Kills and frees the current thread.
@ INTERRUPT_TLB_SHOOTDOWN
TLB shootdown interrupt.
@ EXCEPTION_COPROCESSOR_SEGMENT_OVERRUN
@ EXTERNAL_INTERRUPT_BASE
@ EXCEPTION_ALIGNMENT_CHECK
@ EXCEPTION_GENERAL_PROTECTION
@ INTERRUPT_HALT
Halt the CPU.
@ EXCEPTION_CONTROL_PROTECTION_EXCEPTION
@ EXCEPTION_X87_FPU_ERROR
@ EXCEPTION_BOUND_RANGE_EXCEEDED
@ PAGE_FAULT_SOFTWARE_GUARD_EXT
@ PAGE_FAULT_SHADOW_STACK
@ PAGE_FAULT_PROTECTION_KEY
#define PACKED
GCC packed attribute.
Per-CPU Interrupt Context.