Annotation of mstools/h/excpt.h, revision 1.1.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.