haiku/headers/posix/setjmp.h
2018-07-21 12:27:27 +02:00

44 lines
930 B
C

/*
* Copyright 2004-2018 Haiku, Inc.
* Distributed under the terms of the MIT License.
*/
#ifndef _SETJMP_H_
#define _SETJMP_H_
#include <config/HaikuConfig.h>
#include <signal.h>
/* include architecture specific definitions */
#include __HAIKU_ARCH_HEADER(arch_setjmp.h)
typedef struct __jmp_buf_tag {
__jmp_buf regs; /* saved registers, stack & program pointer */
sigset_t inverted_signal_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)
__attribute__ ((noreturn));
extern void longjmp(jmp_buf jumpBuffer, int value)
__attribute__ ((noreturn));
extern void siglongjmp(sigjmp_buf jumpBuffer, int value)
__attribute__ ((noreturn));
#ifdef __cplusplus
}
#endif
#endif /* _SETJMP_H_ */