qio: implement pullupblock() for block extra data
[akaros.git] / kern / include / setjmp.h
1 // Kernel implementations for setjmp/longjmp.
2
3 #pragma once
4
5 #include <arch/setjmp.h>
6
7 int slim_setjmp(struct jmpbuf *env) __attribute__((returns_twice));
8 void longjmp(struct jmpbuf *env, int val) __attribute__((noreturn));
9
10 #pragma GCC diagnostic push
11 /* Currently, this only throws in tcpackproc().  Not sure why, but if you take
12  * out the loop++ > 1000, it won't warn. */
13 #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
14
15 #define setjmp(jb) ({ __ros_clobber_callee_regs(); slim_setjmp(jb); })
16
17 #pragma GCC diagnostic pop