7 _global_unwind2(PEXCEPTION_REGISTRATION RegistrationFrame)
10 RtlUnwind(RegistrationFrame, &&__ret_label, NULL, 0);
12 // return is important
19 // This is dragged over from WINE:
21 typedef struct __EXCEPTION_FRAME
23 struct __EXCEPTION_FRAME *Prev;
24 PEXCEPTION_HANDLER Handler;
25 } EXCEPTION_FRAME, *PEXCEPTION_FRAME;
27 /* VC++ extensions to Win32 SEH */
28 typedef struct _SCOPETABLE
31 int (*lpfnFilter)(PEXCEPTION_POINTERS);
32 int (*lpfnHandler)(void);
33 } SCOPETABLE, *PSCOPETABLE;
35 typedef struct _MSVCRT_EXCEPTION_FRAME
37 EXCEPTION_FRAME *prev;
38 void (*handler)(PEXCEPTION_RECORD, PEXCEPTION_FRAME,
39 PCONTEXT, PEXCEPTION_RECORD);
40 PSCOPETABLE scopetable;
43 PEXCEPTION_POINTERS xpointers;
44 } MSVCRT_EXCEPTION_FRAME;
47 typedef struct __JUMP_BUFFER
55 unsigned long Registration;
56 unsigned long TryLevel;
57 /* Start of new struct members */
59 unsigned long UnwindFunc;
60 unsigned long UnwindData[6];
66 void __stdcall _seh_longjmp_unwind(_JUMP_BUFFER *jmp)
68 _local_unwind2((MSVCRT_EXCEPTION_FRAME*) jmp->Registration, jmp->TryLevel);