haiku/headers/posix/setjmp.h
François Revol 82a9fd6a48 Add m68k to the big endian family.
Remove DOS CR from some files.
Add setjmp stuff for m68k (unfinished).
Moved arch specific stuff out of signal.h to arch/<arch>/signal.h
Added m68k vreg for signal.h (unfinished).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-25 00:36:36 +00:00

47 lines
992 B
C

/*
* Copyright 2004-2005, Haiku, Inc.
* Distributed under the terms of the MIT License.
*/
#ifndef _SETJMP_H_
#define _SETJMP_H_
#include <signal.h>
// include architecture specific definitions
#ifdef __INTEL__
#include <arch/x86/arch_setjmp.h>
#elif __POWERPC__
#include <arch/ppc/arch_setjmp.h>
#elif __M68K__
#include <arch/m68k/arch_setjmp.h>
#else
#error #include <arch/<cpu>/arch_setjmp.h>
#endif
typedef struct __jmp_buf_tag {
__jmp_buf regs; /* 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_ */