|
PatchworkOS
|
#include <kernel/cpu/interrupt.h>#include <kernel/cpu/cpu.h>#include <kernel/cpu/gdt.h>#include <kernel/cpu/irq.h>#include <kernel/cpu/smp.h>#include <kernel/drivers/apic.h>#include <kernel/drivers/statistics.h>#include <kernel/log/log.h>#include <kernel/log/panic.h>#include <kernel/sched/thread.h>#include <kernel/sched/wait.h>#include <kernel/cpu/regs.h>#include <assert.h>Go to the source code of this file.
Functions | |
| void | interrupt_ctx_init (interrupt_ctx_t *ctx) |
| Initializes the CLI context. | |
| 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 enabled. | |
| static void | exception_handler (interrupt_frame_t *frame) |
| void | interrupt_handler (interrupt_frame_t *frame) |
| Handles CPU interrupts. | |
|
static |
Definition at line 53 of file interrupt.c.
References cr2_read(), EFAULT, ERR, thread_t::error, interrupt_frame_t::errorCode, EXCEPTION_PAGE_FAULT, process_t::id, thread_t::id, INTERRUPT_FRAME_IN_USER_SPACE, LOG_WARN, panic(), panic_stack_trace(), thread_t::process, process_kill(), interrupt_frame_t::rip, SCHED_DIE, sched_invoke(), sched_thread_unsafe(), smp_self_unsafe(), strerror(), thread_handle_page_fault(), and interrupt_frame_t::vector.
Referenced by interrupt_handler().