X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/9406e904ddad5db2ba2dd550e21bbb224899fd79..05b7549a0f980efa33265a091a5174a78851ce05:/lunaix-os/includes/lunaix/spike.h diff --git a/lunaix-os/includes/lunaix/spike.h b/lunaix-os/includes/lunaix/spike.h index fa4e797..9cf4b7f 100644 --- a/lunaix-os/includes/lunaix/spike.h +++ b/lunaix-os/includes/lunaix/spike.h @@ -15,8 +15,31 @@ // 获取v最近的最小k倍数 #define ROUNDDOWN(v, k) ((v) & ~((k) - 1)) -static void inline spin() { +inline static void spin() { while(1); } +#ifdef __LUNAIXOS_DEBUG__ +#define assert(cond) \ + if (!(cond)) { \ + __assert_fail(#cond, __FILE__, __LINE__); \ + } + +#define assert_msg(cond, msg) \ + if (!(cond)) { \ + __assert_fail(msg, __FILE__, __LINE__); \ + } +void __assert_fail(const char* expr, const char* file, unsigned int line) __attribute__((noinline, noreturn)); +#else +#define assert(cond) (void)(cond); //assert nothing +#define assert_msg(cond, msg) (void)(cond); //assert nothing +#endif + +void panick(const char* msg); + + +#define wait_until(cond) while(!(cond)); +#define loop_until(cond) while(!(cond)); + + #endif /* __LUNAIX_SPIKE_H */