#ifndef _SETJMP_H #define _SETJMP_H FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include /** A jump buffer */ typedef struct { /** Saved x19 */ uint64_t x19; /** Saved x20 */ uint64_t x20; /** Saved x21 */ uint64_t x21; /** Saved x22 */ uint64_t x22; /** Saved x23 */ uint64_t x23; /** Saved x24 */ uint64_t x24; /** Saved x25 */ uint64_t x25; /** Saved x26 */ uint64_t x26; /** Saved x27 */ uint64_t x27; /** Saved x28 */ uint64_t x28; /** Saved frame pointer (x29) */ uint64_t x29; /** Saved link register (x30) */ uint64_t x30; /** Saved stack pointer (x31) */ uint64_t sp; } jmp_buf[1]; extern int __asmcall __attribute__ (( returns_twice )) setjmp ( jmp_buf env ); extern void __asmcall __attribute__ (( noreturn )) longjmp ( jmp_buf env, int val ); #endif /* _SETJMP_H */