blob: 938a141b22deaf8953ea35a8e30311d331a30180 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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
|