summaryrefslogtreecommitdiffstats
path: root/private/crt32/h/except.inc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/crt32/h/except.inc100
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