summaryrefslogtreecommitdiffstats
path: root/private/crt32/h/exsup.inc
diff options
context:
space:
mode:
Diffstat (limited to 'private/crt32/h/exsup.inc')
-rw-r--r--private/crt32/h/exsup.inc79
1 files changed, 79 insertions, 0 deletions
diff --git a/private/crt32/h/exsup.inc b/private/crt32/h/exsup.inc
new file mode 100644
index 000000000..7cf621d91
--- /dev/null
+++ b/private/crt32/h/exsup.inc
@@ -0,0 +1,79 @@
+;***
+;exsup.inc
+;
+; Copyright (C) 1993, Microsoft Corporation. All rights reserved.
+;
+;Purpose:
+; Common data structures & definitions for exsup.asm and other
+; Structured Exception Handling support modules.
+;
+;Revision History:
+; 04-13-93 JWM Initial version
+; 12-05-93 PML Update for C9.0
+; 01-12-94 PML Move jmp_buf struct here, add new fields
+;
+;******************************************************************************
+
+
+;handler dispositions
+DISPOSITION_DISMISS equ 0
+DISPOSITION_CONTINUE_SEARCH equ 1
+DISPOSITION_NESTED_EXCEPTION equ 2
+DISPOSITION_COLLIDED_UNWIND equ 3
+
+;filter return codes
+FILTER_ACCEPT equ 1
+FILTER_DISMISS equ -1
+FILTER_CONTINUE_SEARCH equ 0
+
+;handler flags settings..
+EXCEPTION_UNWINDING equ 2
+EXCEPTION_EXIT_UNWIND equ 4
+EXCEPTION_UNWIND_CONTEXT equ EXCEPTION_UNWINDING OR EXCEPTION_EXIT_UNWIND
+
+TRYLEVEL_NONE equ -1
+TRYLEVEL_INVALID equ -2
+
+;callback interface codes (mimimal required set)
+CB_GET_MAX_CODE equ 0
+CB_DO_LOCAL_UNWIND equ 1
+CB_GET_FRAME_EBP equ 2
+CB_GET_SCOPE_INDEX equ 3
+CB_GET_SCOPE_DATA equ 4
+MAX_CALLBACK_CODE equ 4
+
+;typedef struct _EXCEPTION_REGISTRATION PEXCEPTION_REGISTRATION;
+;struct _EXCEPTION_REGISTRATION{
+; struct _EXCEPTION_REGISTRATION *prev;
+; void (*handler)(PEXCEPTION_RECORD, PEXCEPTION_REGISTRATION, PCONTEXT, PEXCEPTION_RECORD);
+; struct scopetable_entry *scopetable;
+; int trylevel;
+; int _ebp;
+; PEXCEPTION_POINTERS xpointers;
+;};
+_EXCEPTION_REGISTRATION struc
+ prev dd ?
+ handler dd ?
+_EXCEPTION_REGISTRATION ends
+
+;setjmp/longjmp buffer
+_JMP_BUF struc
+ saved_ebp dd ?
+ saved_ebx dd ?
+ saved_edi dd ?
+ saved_esi dd ?
+ saved_esp dd ?
+ saved_return dd ?
+ saved_xregistration dd ?
+ saved_trylevel dd ?
+ ; following only found in C9.0 or later jmp_buf
+ version_cookie dd ?
+ unwind_func dd ?
+ unwind_data dd 6 dup(?)
+_JMP_BUF ends
+
+; Cookie placed in the jmp_buf to identify the new, longer form
+JMPBUF_COOKIE equ 'VC20'
+
+; Offset of TryLevel in a C8.0 SEH registration node
+C8_TRYLEVEL equ 12