#ifndef __SETJMP_LOADED #define __SETJMP_LOADED 1 /**************************************************************************** ** ** - Nonlocal Jumps ** ***************************************************************************** ** Header introduced by the ANSI C Standard ***************************************************************************** ** ** Copyright 2000 Compaq Computer Corporation ** ** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office. ** ** Confidential computer software. Valid license from Compaq required for ** possession, use or copying. Consistent with FAR 12.211 and 12.212, ** Commercial Computer Software, Computer Software Documentation, and ** Technical Data for Commercial Items are licensed to the U.S. Government ** under vendor's standard commercial license. ** ****************************************************************************** */ #pragma __nostandard #include #ifdef __cplusplus extern "C" { #endif #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save # pragma __pointer_size 32 #endif /* ** Define data structures */ #ifndef __ALPHA typedef int jmp_buf [15]; # define __JMP_BUF_TYPE int * #else # pragma __member_alignment __save # pragma __member_alignment # if defined(__FAST_SETJMP) || defined(__UNIX_SETJMP) typedef __int64 jmp_buf [25]; # else typedef __int64 jmp_buf [68]; /* 68 quadwords - standard invo cntxt block */ # endif # pragma __member_alignment __restore # define __JMP_BUF_TYPE __int64 * #endif /* ** This section is for functions and declarations which do not support ** 64 bit pointers. */ #ifdef __ALPHA # if defined(__FAST_SETJMP) || defined(__UNIX_SETJMP) int decc$setjmp (jmp_buf __env); # define setjmp(env) decc$setjmp(env) # define longjmp(env, retval) decc$fast_longjmp(env, retval) # else int LIB$GET_CURRENT_INVO_CONTEXT (__JMP_BUF_TYPE __invo_context); void c$$establish(void *, unsigned short); # define setjmp(env) (c$$establish(0, 32 ),LIB$GET_CURRENT_INVO_CONTEXT(env)) # endif #else int setjmp (jmp_buf __env); #endif void longjmp (jmp_buf __env, int __val); #if __CRTL_VER >= 70000000 # if _POSIX_C_SOURCE >= 1 || !defined _ANSI_C_SOURCE # ifdef __ALPHA typedef __int64 __sigjmp_buf[70]; # else typedef int __sigjmp_buf[18]; # endif # if !defined _DECC_V4_SOURCE typedef __sigjmp_buf sigjmp_buf; # endif void siglongjmp (__sigjmp_buf __env, int __val); int sigsetjmp (__sigjmp_buf __env, int __savemask); # ifdef __ALPHA void c$$establish(void *, unsigned short); # define sigsetjmp( p1, p2 ) ( c$$establish(0,32), (sigsetjmp)(p1,p2) ) # endif # endif #endif /* ** Restore the users pointer context */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size __restore #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __SETJMP_LOADED */