feat: lunadbg GDB plugin to ease kernel debugging process.
[lunaix-os.git] / lunaix-os / includes / lunaix / compiler.h
1 #ifndef __LUNAIX_COMPILER_H
2 #define __LUNAIX_COMPILER_H
3
4 #define likely(x) __builtin_expect((x), 1)
5 #define unlikely(x) __builtin_expect((x), 0)
6
7 #define weak_alias(name) __attribute__((weak, alias(name)))
8 #define weak __attribute__((weak))
9 #define noret __attribute__((noreturn))
10
11 #define stringify(v) #v
12 #define stringify__(v) stringify(v)
13
14 inline static void noret
15 spin()
16 {
17     volatile int __infloop = 1;
18     while (__infloop)
19         ;
20     __builtin_unreachable();
21 }
22
23 #endif /* __LUNAIX_COMPILER_H */