corn/include/panic.h

14 lines
471 B
C
Raw Normal View History

2024-01-29 21:27:03 +00:00
#pragma once
#define _PANIC_STR(x) _PANIC_STR2(x)
#define _PANIC_STR2(x) #x
2024-02-02 17:21:06 +00:00
#define panic(msg, ...) _panic_impl(_PANIC_STR(__LINE__), __FILE__, msg, ## __VA_ARGS__)
#define kassert(val, msg, ...) do { if (!(val)) { panic(msg, ## __VA_ARGS__); } } while(0)
2024-01-29 21:27:03 +00:00
2024-02-02 17:21:06 +00:00
__attribute__((noreturn,format(printf, 3, 4)))
void _panic_impl(char *line, char *file, char *msg, ...);
2024-01-30 15:19:33 +00:00
2024-02-02 17:21:06 +00:00
__attribute__((noreturn,format(printf, 3, 4)))
void _panic_interrupt(void *ip, void *bp, char *msg, ...);