#pragma once #include "interrupts/Context.h" #ifdef __cplusplus extern "C" { #endif [[noreturn]] void __do_int_panic(Context* context, const char* file, int line, const char* message); [[noreturn]] void __do_panic(Context* context, const char* message); [[noreturn]] void __panic(const char* message); #ifdef __cplusplus } #endif #define panic(message) asm volatile("cli\npush $16\npushq %%rsp\npushfq\npush $8\ncall __panic" : : "D"(message)) #define int_panic(context, message) __do_int_panic(context, __FILE__, __LINE__, message)