Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_FS_1_19910112 - kcc-6/include/setjmp.h
There are 8 other files named setjmp.h in the archive. Click here to see a list.
/* <SETJMP.H> - KCC definitions for setjmp() and longjmp() facilities.
**
**	(c) Copyright Ken Harrenstien 1989
**
**	Implements 4.3BSD notions.
** Note that jmp_buf must be an array type so that references to a
** jmp_buf object will be either an array (definition) or a pointer to
** an array (declaration).  Sigh!  --KLH
**	We use a sigcontext structure for jmp_buf even though we don't
** need all of the elements.  The reason for this is to make sure we have
** enough room for any future features, and to allow possible future use
** of the 4.3BSD sigreturn() system call.
**	sc_acs[2] is used to hold a simple checksum of the important parts.
*/

#ifndef _SETJMP_INCLUDED
#define _SETJMP_INCLUDED
#ifndef __STDC__	/* Canonicalize this indicator to avoid err msgs */
#define __STDC__ 0
#endif

#include <signal.h>		/* Get sigcontext definition */

typedef struct sigcontext jmp_buf[1];	/* Define jmp_buf */

#if __STDC__			/* ANSI prototype decls */
extern int setjmp(jmp_buf),	/* Declare setjmp functions */
	_setjmp(jmp_buf);
extern void longjmp(jmp_buf, int),
	_longjmp(jmp_buf, int);
#define longjmperror _ljerr	/* Reduce name to 6-char external */
extern void longjmperror(void);	/* Routine called if longjmp finds problems */

#else				/* Old pre-ANSI style */
extern int setjmp(), _setjmp();	/* Declare setjmp functions */
extern void longjmp(), _longjmp();
#define longjmperror _ljerr	/* Reduce name to 6-char external */
extern void longjmperror();	/* Routine called if longjmp finds problems */
#endif

#endif /* ifndef _SETJMP_INCLUDED */