summaryrefslogtreecommitdiff
path: root/src/kernel/panic.h
blob: b62c630002f1d9a66e37c36a09897a4724ab4725 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma once
#include <kernel/arch/generic.h>
#include <kernel/util.h>

#define _panic(type) do { \
	tty_const(" an "type" PANIC! at the "); \
	tty_const(__func__); \
	tty_const(" (" __FILE__ ":" NUM2STR(__LINE__) ") "); \
	halt_cpu(); \
} while (0)

#define panic_invalid_state() _panic("invalid state")
#define panic_unimplemented() _panic("unimplemented")
#define assert(stmt) do { if (!(stmt)) _panic(); } while (0)

#undef panic