#ifdef __cplusplus
extern "C" {
#endif
#ifndef _POSIX_SOURCE
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ! H_SCCSID */
H_SCCSID(@(#)setjmp.h	1.20.1.1	AIX)	/* Modified 6/26/91 21:47:41 */
#endif /* ! _POSIX_SOURCE */

/* @(#)setjmp.h	7.1 - 87/06/16 - 00:12:44 */
/* 
 * (C) Copyright IBM Corp. 1989 
 * All Rights Reserved 
 * Licensed Materials - Property of IBM 
 */

#ifdef _POSIX_SOURCE
#include <sys/scontext.h>
#else
#include <sys/signal.h>
#endif /*  _POSIX_SOURCE */

#ifndef _H_SETJMP
#define _H_SETJMP       1

#ifdef _POSIX_SOURCE
#define _JBLEN	((sizeof(struct __sigcontext)+sizeof(int))/sizeof(int))
#else
#define _JBLEN	((sizeof(struct sigcontext)+sizeof(int))/sizeof(int))
#endif

typedef int jmp_buf[_JBLEN];

extern int setjmp(jmp_buf), _setjmp(jmp_buf);
extern void longjmp(jmp_buf,int), _longjmp(jmp_buf,int);

typedef int sigjmp_buf[_JBLEN];
extern void siglongjmp(sigjmp_buf, int);

#ifdef __cplusplus
int _sigsetjmp(sigjmp_buf, int);
#endif

#define	sigsetjmp	_sigsetjmp

#endif /* ! _H_SETJMP */
#ifdef __cplusplus
}
#endif
