diff --git a/headers/posix/setjmp.h b/headers/posix/setjmp.h new file mode 100644 index 0000000000..adb1555929 --- /dev/null +++ b/headers/posix/setjmp.h @@ -0,0 +1,36 @@ +/* +** Distributed under the terms of the Haiku License. +*/ +#ifndef _SETJMP_H_ +#define _SETJMP_H_ + + +#include + + +typedef struct __jmp_buf { + int regs[6]; /* saved registers, stack & program pointer */ + int mask_was_saved; + sigset_t saved_mask; +} jmp_buf[1]; + +typedef jmp_buf sigjmp_buf; + + +#ifdef __cplusplus +extern "C" { +#endif + +extern int _setjmp(jmp_buf jumpBuffer); +extern int setjmp(jmp_buf jumpBuffer); +extern int sigsetjmp(jmp_buf jumpBuffer, int saveMask); + +extern void _longjmp(jmp_buf jumpBuffer, int value); +extern void longjmp(jmp_buf jumpBuffer, int value); +extern void siglongjmp(sigjmp_buf jumpBuffer, int value); + +#ifdef __cplusplus +} +#endif + +#endif /* _SETJMP_H_ */