Annotation of mstools/posix/h/setjmp.h, revision 1.1.1.1

1.1       root        1: /***
                      2: *setjmp.h - definitions/declarations for setjmp/longjmp routines
                      3: *
                      4: *       Copyright (c) 1985-1992, Microsoft Corporation. All rights reserved.
                      5: *
                      6: *Purpose:
                      7: *       This file defines the machine-dependent buffer used by
                      8: *       setjmp/longjmp to save and restore the program state, and
                      9: *       declarations for those routines.
                     10: *       [ANSI/System V]
                     11: *
                     12: ****/
                     13: 
                     14: #ifndef _INC_SETJMP
                     15: 
                     16: #ifndef __cplusplus
                     17: 
                     18: 
                     19: /*
                     20:  * Conditional macro definition for function calling type and variable type
                     21:  * qualifiers.
                     22:  */
                     23: #if   ( (_MSC_VER >= 800) && (_M_IX86 >= 300) )
                     24: 
                     25: /*
                     26:  * Definitions for MS C8-32 (386/486) compiler
                     27:  */
                     28: #define _CRTAPI1 __cdecl
                     29: #define _CRTAPI2 __cdecl
                     30: 
                     31: #elif ( _MSC_VER == 600 )
                     32: 
                     33: /*
                     34:  * Definitions for old MS C6-386 compiler
                     35:  */
                     36: #define _CRTAPI1 _cdecl
                     37: #define _CRTAPI2 _cdecl
                     38: #define _M_IX86  300
                     39: 
                     40: #else
                     41: 
                     42: /*
                     43:  * Other compilers (e.g., MIPS)
                     44:  */
                     45: #define _CRTAPI1
                     46: #define _CRTAPI2
                     47: 
                     48: #endif
                     49: 
                     50: /*
                     51:  * Definitions specific to particular setjmp implementations.
                     52:  */
                     53: #ifdef  _M_IX86
                     54: 
                     55: /*
                     56:  * MS C8-32 or older MS C6-386 compilers
                     57:  */
                     58: #define setjmp  _setjmp
                     59: #define _JBLEN  8
                     60: 
                     61: #else
                     62: 
                     63: /*
                     64:  * Assume compiler implements setjmp as a function
                     65:  */
                     66: 
                     67: #define _setjmp setjmp
                     68: 
                     69: #endif
                     70: 
                     71: 
                     72: #if     ( defined(_M_RX000) || defined(M_MRX000) || defined(MIPS) || defined(MIPS) )
                     73: /*
                     74:  * All MIPS implementation need _JBLEN of 2
                     75:  */
                     76: #define _JBLEN  2
                     77: 
                     78: #endif
                     79: 
                     80: /* define the buffer type for holding the state information */
                     81: 
                     82: #ifndef _JMP_BUF_DEFINED
                     83: typedef  int  jmp_buf[_JBLEN];
                     84: #define _JMP_BUF_DEFINED
                     85: #endif
                     86: 
                     87: #ifndef _SIGJMP_BUF_DEFINED
                     88: #define _SIGJMP_BUF_DEFINED
                     89: /*
                     90:  * sigjmp buf is just a jmp_buf plus an int to say whether the sigmask
                     91:  * is saved or not, and a sigmask_t for the mask if it is saved.
                     92:  */ 
                     93: 
                     94: typedef unsigned long sigjmp_buf[_JBLEN + 2];
                     95: #endif /* _SIGJMP_BUF_DEFINED */
                     96: 
                     97: #define sigsetjmp(env, save)                                   \
                     98:        (((save) ? ((env)[_JBLEN] = 1, sigprocmask(SIG_SETMASK, \
                     99:                        &(env)[_JBLEN + 1], 0))                 \
                    100:                : ((env)[_JBLEN] = 0)),                         \
                    101:         setjmp(&(env)[0]))
                    102: 
                    103: /* function prototypes */
                    104: 
                    105: int  _CRTAPI1 setjmp(jmp_buf);
                    106: void _CRTAPI1 longjmp(jmp_buf, int);
                    107: void _CRTAPI1 siglongjmp(sigjmp_buf, int);
                    108: 
                    109: /* function prototypes */
                    110: 
                    111: #endif  /* __cplusplus */
                    112: 
                    113: #define _INC_SETJMP
                    114: #endif  /* _INC_SETJMP */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.