Annotation of mstools/h/excpt.h, revision 1.1

1.1     ! root        1: /***
        !             2: *excpt.h - definitions/declarations for Structured Exception Handling
        !             3: *
        !             4: *       Copyright (c) 1985-1991, Microsoft Corporation. All rights reserved.
        !             5: *
        !             6: *Purpose:
        !             7: *       This file defines the compiler-dependent definitions used to
        !             8: *       access the structured exception handling syntax.
        !             9: *
        !            10: *******************************************************************************/
        !            11: 
        !            12: #ifndef _EXCPT_
        !            13: #define _EXCPT_
        !            14: 
        !            15: //
        !            16: // C Structured Exception Handling.
        !            17: //
        !            18: 
        !            19: //
        !            20: // Exception disposition return values.
        !            21: //
        !            22: 
        !            23: typedef enum _EXCEPTION_DISPOSITION {
        !            24:     ExceptionContinueExecution,
        !            25:     ExceptionContinueSearch,
        !            26:     ExceptionNestedException,
        !            27:     ExceptionCollidedUnwind
        !            28: } EXCEPTION_DISPOSITION;
        !            29: 
        !            30: #if defined(__cplusplus)
        !            31: #define EXCEPTION_EXTERN extern "C"
        !            32: #define EXCEPTION_NOPROTO ...
        !            33: #else
        !            34: #define EXCEPTION_EXTERN extern
        !            35: #define EXCEPTION_NOPROTO
        !            36: #endif
        !            37: 
        !            38: #if defined(lint) || defined(_lint)
        !            39: 
        !            40: #define try                         /* nothing */
        !            41: #define except                      /* nothing */
        !            42: #define finally                     /* nothing */
        !            43: #define GetExceptionCode            (unsigned long) 5  /* any bogus value */
        !            44: #define GetExceptionInformation     (struct _EXCEPTION_POINTERS *)_exception_info
        !            45: #define AbnormalTermination         _abnormal_termination
        !            46: #define abnormal_termination        _abnormal_termination
        !            47: 
        !            48: EXCEPTION_EXTERN unsigned long _exception_code( EXCEPTION_NOPROTO );
        !            49: EXCEPTION_EXTERN int _abnormal_termination( EXCEPTION_NOPROTO );
        !            50: 
        !            51: #elif defined(i386)
        !            52: 
        !            53: #define try                         _try
        !            54: #define except                      _except
        !            55: #define finally                     _finally
        !            56: #define GetExceptionCode            (unsigned long)_exception_code
        !            57: #define GetExceptionInformation     (struct _EXCEPTION_POINTERS *)_exception_info
        !            58: #define AbnormalTermination         _abnormal_termination
        !            59: #define abnormal_termination        _abnormal_termination
        !            60: 
        !            61: EXCEPTION_EXTERN unsigned long _exception_code( EXCEPTION_NOPROTO );
        !            62: EXCEPTION_EXTERN int _abnormal_termination( EXCEPTION_NOPROTO );
        !            63: 
        !            64: #elif defined(MIPS)
        !            65: 
        !            66: #define try                         __builtin_try
        !            67: #define except                      __builtin_except
        !            68: #define finally                     __builtin_finally
        !            69: #define leave                       __builtin_leave
        !            70: #define GetExceptionCode()          __exception_code
        !            71: #define GetExceptionInformation()   (struct _EXCEPTION_POINTERS *)__exception_info
        !            72: #define abnormal_termination()      __abnormal_termination
        !            73: #define AbnormalTermination()       __abnormal_termination
        !            74: 
        !            75: EXCEPTION_EXTERN unsigned long GetExceptionCode();
        !            76: EXCEPTION_EXTERN int AbnormalTermination();
        !            77: 
        !            78: //
        !            79: // Random noise to keep the Mips C Compiler happy.
        !            80: //
        !            81: 
        !            82: typedef struct _EXCEPTION_POINTERS *Exception_info_ptr;
        !            83: 
        !            84: struct _EXCEPTION_RECORD;
        !            85: struct _CONTEXT;
        !            86: struct _DISPATCHER_CONTEXT;
        !            87: 
        !            88: EXCEPTION_DISPOSITION
        !            89: __C_specific_handler (
        !            90:     struct _EXCEPTION_RECORD *ExceptionRecord,
        !            91:     void *EstablisherFrame,
        !            92:     struct _CONTEXT *ContextRecord,
        !            93:     struct _DISPATCHER_CONTEXT *DispatcherContext
        !            94:     );
        !            95: 
        !            96: #endif
        !            97: 
        !            98: //
        !            99: // Values for except() expresion
        !           100: //
        !           101: 
        !           102: #define EXCEPTION_EXECUTE_HANDLER     1
        !           103: #define EXCEPTION_CONTINUE_SEARCH     0
        !           104: #define EXCEPTION_CONTINUE_EXECUTION -1
        !           105: 
        !           106: #endif

unix.superglobalmegacorp.com

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