mingw-5.1.4/win32/include/setjmp.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     1 /* 
       
     2  * setjmp.h
       
     3  * This file has no copyright assigned and is placed in the Public Domain.
       
     4  * This file is a part of the mingw-runtime package.
       
     5  * No warranty is given; refer to the file DISCLAIMER within the package.
       
     6  *
       
     7  * Declarations supporting setjmp and longjump, a method for avoiding
       
     8  * the normal function call return sequence. (Bleah!)
       
     9  *
       
    10  */
       
    11 
       
    12 #ifndef _SETJMP_H_
       
    13 #define _SETJMP_H_
       
    14 
       
    15 /* All the headers include this file. */
       
    16 #include <_mingw.h>
       
    17 
       
    18 #ifndef RC_INVOKED
       
    19 
       
    20 #ifdef __cplusplus
       
    21 extern "C" {
       
    22 #endif
       
    23 
       
    24 /*
       
    25  * The buffer used by setjmp to store the information used by longjmp
       
    26  * to perform it's evil goto-like work. The size of this buffer was
       
    27  * determined through experimentation; it's contents are a mystery.
       
    28  * NOTE: This was determined on an i386 (actually a Pentium). The
       
    29  *       contents could be different on an Alpha or something else.
       
    30  */
       
    31 #define _JBLEN 16
       
    32 #define _JBTYPE int
       
    33 typedef _JBTYPE jmp_buf[_JBLEN];
       
    34 
       
    35 /*
       
    36  * The function provided by CRTDLL which appears to do the actual work
       
    37  * of setjmp.
       
    38  */
       
    39 _CRTIMP int __cdecl __MINGW_NOTHROW _setjmp (jmp_buf);
       
    40 
       
    41 #define	setjmp(x)	_setjmp(x)
       
    42 
       
    43 /*
       
    44  * Return to the last setjmp call and act as if setjmp had returned
       
    45  * nVal (which had better be non-zero!).
       
    46  */
       
    47 _CRTIMP void __cdecl __MINGW_NOTHROW longjmp (jmp_buf, int) __MINGW_ATTRIB_NORETURN;
       
    48 
       
    49 #ifdef __cplusplus
       
    50 }
       
    51 #endif
       
    52 
       
    53 #endif	/* Not RC_INVOKED */
       
    54 
       
    55 #endif	/* Not _SETJMP_H_ */
       
    56