#ifndef _SETJMP_H_
#define _SETJMP_H_
/*
 *  The setjmp.h header file is used to specify the structures
 *  and functions that are needed by the different varieties
 *  of the longjmp() mechanism.
 *
 *  AMENDMENT HISTORY
 *  ~~~~~~~~~~~~~~~~~
 *  24 Jan 94   DJW   - Added structures and functions for the
 *                      'sig' variants.
 */

#ifdef __STDC__
#define _P_(params) params
#else
#define _P_(params) ()
#endif

/**
 *
 * This structure is used by the setjmp/longjmp functions to save the
 * current environment on the 68000.
 *
 */

/* long must be 32 bits here */

struct _JMP_BUF {
        long jmpret;            /* return address */
        long jmp_d1;
        long jmp_d2;
        long jmp_d3;
        long jmp_d4;
        long jmp_d5;
        long jmp_d6;
        long jmp_d7;
        long jmp_a1;
        long jmp_a2;
        long jmp_a3;
        long jmp_a4;
        long jmp_a5;
        long jmp_a6;
        long jmp_a7;
        long jmp_sigmask;
        };
typedef struct _JMP_BUF jmp_buf[1];

struct _SIGJMP_BUF {
        struct _JMP_BUF jmp[1];
        long    sigmask;
        };
typedef struct _SIGJMP_BUF sigjmp_buf[1];


void longjmp    _P_((jmp_buf, int));
int  setjmp     _P_((jmp_buf));
void siglongjmp _P_((sigjmp_buf, int));
int  sigsetjmp  _P_((sigjmp_buf, int));

#undef _P_

#endif  /* _SETJMP_H */

