1 // Kernel implementations for setjmp/longjmp.
5 #include <arch/setjmp.h>
7 int slim_setjmp(struct jmpbuf *env) __attribute__((returns_twice));
8 void longjmp(struct jmpbuf *env, int val) __attribute__((noreturn));
10 #pragma GCC diagnostic push
11 #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
13 #define setjmp(jb) ({bool err; \
14 __ros_clobber_callee_regs(); \
15 err = slim_setjmp(jb); \
18 #pragma GCC diagnostic pop