ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

unwind.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.