Luna/kernel/src/interrupts/Interrupts.cpp

25 lines
458 B
C++
Raw Normal View History

2022-09-05 16:13:51 +02:00
#include "interrupts/Interrupts.h"
void Interrupts::disable()
{
asm volatile("cli");
}
void Interrupts::enable()
{
asm volatile("sti");
}
extern char __is_in_interrupt_handler;
bool Interrupts::is_in_handler()
{
return __is_in_interrupt_handler;
}
void Interrupts::return_from_handler(SavedContext* context)
{
asm volatile("mov %0, %%rsp\n"
"jmp _asm_interrupt_exit"
:
: "r"(context));
2022-09-05 16:13:51 +02:00
}