Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenunwind.c
Go to the documentation of this file.
00001 #define WIN32_NO_STATUS 00002 #include <precomp.h> 00003 #include <windows.h> 00004 #define NTOS_MODE_USER 00005 #include <ndk/umtypes.h> 00006 #include <ndk/extypes.h> 00007 #include <ndk/rtlfuncs.h> 00008 00009 /* VC++ extensions to Win32 SEH */ 00010 typedef struct _SCOPETABLE 00011 { 00012 int previousTryLevel; 00013 int (*lpfnFilter)(PEXCEPTION_POINTERS); 00014 int (*lpfnHandler)(void); 00015 } SCOPETABLE, *PSCOPETABLE; 00016 00017 typedef struct _MSVCRT_EXCEPTION_FRAME 00018 { 00019 PEXCEPTION_REGISTRATION_RECORD *prev; 00020 void (*handler)(PEXCEPTION_RECORD, PEXCEPTION_REGISTRATION_RECORD, 00021 PCONTEXT, PEXCEPTION_RECORD); 00022 PSCOPETABLE scopetable; 00023 int trylevel; 00024 int _ebp; 00025 PEXCEPTION_POINTERS xpointers; 00026 } MSVCRT_EXCEPTION_FRAME; 00027 00028 00029 typedef struct __JUMP_BUFFER 00030 { 00031 unsigned long Ebp; 00032 unsigned long Ebx; 00033 unsigned long Edi; 00034 unsigned long Esi; 00035 unsigned long Esp; 00036 unsigned long Eip; 00037 unsigned long Registration; 00038 unsigned long TryLevel; 00039 /* Start of new struct members */ 00040 unsigned long Cookie; 00041 unsigned long UnwindFunc; 00042 unsigned long UnwindData[6]; 00043 } _JUMP_BUFFER; 00044 00045 void 00046 _local_unwind2(MSVCRT_EXCEPTION_FRAME *RegistrationFrame, 00047 LONG TryLevel); 00048 00049 /* 00050 * @implemented 00051 */ 00052 00053 void __stdcall _seh_longjmp_unwind(_JUMP_BUFFER *jmp) 00054 { 00055 _local_unwind2((MSVCRT_EXCEPTION_FRAME*) jmp->Registration, jmp->TryLevel); 00056 } Generated on Sat May 26 2012 04:35:20 for ReactOS by
1.7.6.1
|