diff options
author | dzwdz | 2022-08-06 23:53:42 +0200 |
---|---|---|
committer | dzwdz | 2022-08-06 23:53:42 +0200 |
commit | 809f9a9899b219e33ec839b3f9bee644fcfecacc (patch) | |
tree | 5a4f4149859d5e834b5fe73b52a5e95e7e2d749b /src/kernel | |
parent | e86d720f6481e83ff555989006b7f62433318f57 (diff) |
shared assert.h
Diffstat (limited to 'src/kernel')
-rw-r--r-- | src/kernel/assert.c | 9 | ||||
-rw-r--r-- | src/kernel/panic.h | 4 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/kernel/assert.c b/src/kernel/assert.c new file mode 100644 index 0000000..9bd1107 --- /dev/null +++ b/src/kernel/assert.c @@ -0,0 +1,9 @@ +#include <assert.h> +#include <kernel/arch/generic.h> + +_Noreturn void __badassert(const char *func, const char *file, int line) { + /* same format as panics */ + kprintf("\nan assert PANIC! at the %s (%s:%u)\n", func, file, line); + debug_stacktrace(); + cpu_halt(); +} diff --git a/src/kernel/panic.h b/src/kernel/panic.h index 4e591f1..12c0d64 100644 --- a/src/kernel/panic.h +++ b/src/kernel/panic.h @@ -1,4 +1,5 @@ #pragma once +#include <assert.h> #include <kernel/arch/generic.h> #include <kernel/util.h> @@ -12,6 +13,3 @@ #define panic_invalid_state() _panic("invalid state") #define panic_unimplemented() _panic("unimplemented") -#define assert(stmt) do { if (!(stmt)) _panic("assert"); } while (0) - -#undef panic |