From 05498860e8f7b1e8bb27880bc7526de026694804 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Fri, 26 Mar 2021 21:55:50 +0100 Subject: Renamed libs Cleaner and more flexible. --- libs/libc/inc/assert.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 libs/libc/inc/assert.h (limited to 'libs/libc/inc/assert.h') diff --git a/libs/libc/inc/assert.h b/libs/libc/inc/assert.h new file mode 100644 index 0000000..3656c33 --- /dev/null +++ b/libs/libc/inc/assert.h @@ -0,0 +1,28 @@ +// MIT License, Copyright (c) 2020 Marvin Borner + +#ifndef ASSERT_H +#define ASSERT_H + +#include + +#ifdef kernel +#include +#define assert(exp) \ + if (!(exp)) { \ + printf("%s:%d: %s: Kernel assertion '%s' failed\n", __FILE__, __LINE__, __func__, \ + #exp); \ + struct proc *assert_proc = proc_current(); \ + if (assert_proc) \ + proc_exit(assert_proc, 1); \ + else \ + __asm__ volatile("cli\nhlt"); \ + } +#elif defined(userspace) +#define assert(exp) \ + if (!(exp)) \ + err(1, "%s:%d: %s: Assertion '%s' failed\n", __FILE__, __LINE__, __func__, #exp); +#else +#error "No lib target specified. Please use -Dkernel or -Duserspace" +#endif + +#endif -- cgit v1.2.3