diff options
Diffstat (limited to 'private/crt32/h/except.inc')
-rw-r--r-- | private/crt32/h/except.inc | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/private/crt32/h/except.inc b/private/crt32/h/except.inc new file mode 100644 index 000000000..938a141b2 --- /dev/null +++ b/private/crt32/h/except.inc @@ -0,0 +1,100 @@ +;*** +;except.inc - definitions for exception handling +; +; Copyright (c) 1990-1991, Microsoft Corporation. All rights reserved. +; +;Purpose: +; Structure and constant definitions used by exception handling code. +; +;Revision History: +; 07-19-90 GJF Module created. +; 08-28-90 GJF Added some definitions of exceptions. +; 10-19-90 GJF Revised some constants to agree with the definitions in +; \\os2rel\public!2.0\h\bsexcpt.h (dated 10-1-90). +; 07-30-91 GJF Different values of _XCPT_CONTINUE_[SEARCH|EXECUTION] +; for Cruiser and Win32 [_WIN32_]. +; +;******************************************************************************* + +; structure used by SEH support function and intrinsics. the information +; passed by the OS exception dispatcher is repackaged in this form by the +; runtime (_except_handler()). + +__EXCEPTION_INFO_PTRS struc + preport dd ? + pcontext dd ? +__EXCEPTION_INFO_PTRS ends + + +; exception registration record structure. + +__EXCEPTIONREGISTRATIONRECORD struc + prev_structure dd ? + ExceptionHandler dd ? + ExceptionFilter dd ? + FilterFrame dd ? + PExceptionInfoPtrs dd ? +__EXCEPTIONREGISTRATIONRECORD ends + +; size of exception registration record in double words + +DWORDS_IN_XREGREC equ 5 + + +; exception report record + +__EXCEPTIONREPORTRECORD struc + ExceptionNum dd ? + fHandlerFlags dd ? + ExceptionReportRecord dd ? + ExceptionAddress dd ? + cParameters dd ? + ExceptionInfo dd 4 dup (?) +__EXCEPTIONREPORTRECORD ends + + +; setjmp/longjmp buffer (i.e., structure underlying jmp_buf array) + +_JMP_BUF struc + ebpsave dd ? + ebxsave dd ? + edisave dd ? + esisave dd ? + espsave dd ? + retsave dd ? + xcptsave dd ? +_JMP_BUF ends + + +; exceptions corresponding to C runtime errors (these are explicitly +; referenced in the startup code) + +_XCPT_UNABLE_TO_GROW_STACK equ 080010001h +_XCPT_INTEGER_DIVIDE_BY_ZERO equ 0C000009Bh +_XCPT_NONCONTINUABLE_EXCEPTION equ 0C0000024h +_XCPT_INVALID_DISPOSITION equ 0C0000025h +_XCPT_SIGABRT equ 020000001h + + +; unwind settings in fHandlerFlags + +_EH_UNWINDING equ 2 +_EH_EXIT_UNWIND equ 4 +UNWIND equ _EH_UNWINDING OR _EH_EXIT_UNWIND + + +; return values (to the exception dispatcher) + +IFDEF _CRUISER_ + +_XCPT_CONTINUE_SEARCH equ 000000000h +_XCPT_CONTINUE_EXECUTION equ 0FFFFFFFFh + +ELSE +IFDEF _WIN32_ + +_XCPT_CONTINUE_SEARCH equ 000000001h +_XCPT_CONTINUE_EXECUTION equ 000000000h + +ENDIF +ENDIF |