Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygeninternal.h
Go to the documentation of this file.
00001 /* 00002 Copyright (c) 2004/2005 KJK::Hyperion 00003 00004 Permission is hereby granted, free of charge, to any person obtaining a 00005 copy of this software and associated documentation files (the "Software"), 00006 to deal in the Software without restriction, including without limitation 00007 the rights to use, copy, modify, merge, publish, distribute, sublicense, 00008 and/or sell copies of the Software, and to permit persons to whom the 00009 Software is furnished to do so, subject to the following conditions: 00010 00011 The above copyright notice and this permission notice shall be included in 00012 all copies or substantial portions of the Software. 00013 00014 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00015 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00016 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00017 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00018 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00019 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 00020 DEALINGS IN THE SOFTWARE. 00021 */ 00022 00023 #ifndef KJK_PSEH_FRAMEBASED_INTERNAL_H_ 00024 #define KJK_PSEH_FRAMEBASED_INTERNAL_H_ 00025 00026 #define _SEH_DO_TRACE_ENTER_LEAVE (1 << 0) 00027 #define _SEH_DO_TRACE_EXCEPTION_RECORD (1 << 1) 00028 #define _SEH_DO_TRACE_CONTEXT (1 << 2) 00029 #define _SEH_DO_TRACE_UNWIND (1 << 3) 00030 #define _SEH_DO_TRACE_TRYLEVEL (1 << 4) 00031 #define _SEH_DO_TRACE_CALL_FILTER (1 << 5) 00032 #define _SEH_DO_TRACE_FILTER (1 << 6) 00033 #define _SEH_DO_TRACE_CALL_HANDLER (1 << 7) 00034 #define _SEH_DO_TRACE_CALL_FINALLY (1 << 8) 00035 00036 #define _SEH_DO_TRACE_NONE (0) 00037 #define _SEH_DO_TRACE_ALL (-1) 00038 00039 #ifndef _SEH_DO_DEFAULT_TRACING 00040 #define _SEH_DO_DEFAULT_TRACING _SEH_DO_TRACE_NONE 00041 #endif 00042 00043 struct _EXCEPTION_RECORD; 00044 struct _EXCEPTION_POINTERS; 00045 struct _CONTEXT; 00046 00047 typedef int (__cdecl * _SEHFrameHandler_t) 00048 ( 00049 struct _EXCEPTION_RECORD *, 00050 void *, 00051 struct _CONTEXT *, 00052 void * 00053 ); 00054 00055 typedef struct __SEHRegistration 00056 { 00057 struct __SEHRegistration * SER_Prev; 00058 _SEHFrameHandler_t SER_Handler; 00059 } 00060 _SEHRegistration_t; 00061 00062 struct __SEHPortableFrame; 00063 struct __SEHPortableTryLevel; 00064 00065 typedef long (__stdcall * _SEHFilter_t) 00066 ( 00067 struct _EXCEPTION_POINTERS *, 00068 struct __SEHPortableFrame * 00069 ); 00070 00071 typedef void (__stdcall * _SEHHandler_t) 00072 ( 00073 struct __SEHPortableTryLevel * 00074 ); 00075 00076 typedef void (__stdcall * _SEHFinally_t) 00077 ( 00078 struct __SEHPortableFrame * 00079 ); 00080 00081 typedef struct __SEHHandlers 00082 { 00083 _SEHFilter_t SH_Filter; 00084 _SEHFinally_t SH_Finally; 00085 } 00086 _SEHHandlers_t; 00087 00088 typedef struct __SEHPortableTryLevel 00089 { 00090 struct __SEHPortableTryLevel * volatile SPT_Next; 00091 volatile _SEHHandlers_t SPT_Handlers; 00092 } 00093 _SEHPortableTryLevel_t; 00094 00095 typedef struct __SEHPortableFrame 00096 { 00097 _SEHRegistration_t SPF_Registration; 00098 unsigned long SPF_Code; 00099 volatile _SEHHandler_t SPF_Handler; 00100 _SEHPortableTryLevel_t * volatile SPF_TopTryLevel; 00101 volatile int SPF_Tracing; 00102 } 00103 _SEHPortableFrame_t; 00104 00105 #ifdef __cplusplus 00106 extern "C" 00107 { 00108 #endif 00109 00110 extern void __stdcall _SEHEnterFrame_s(_SEHPortableFrame_t *); 00111 extern void __stdcall _SEHLeaveFrame_s(void); 00112 extern void __stdcall _SEHReturn_s(void); 00113 00114 #if !defined(_SEH_NO_FASTCALL) 00115 # ifdef _M_IX86 00116 # define _SEH_FASTCALL __fastcall 00117 # else 00118 # define _SEH_FASTCALL __stdcall 00119 # endif 00120 00121 extern void _SEH_FASTCALL _SEHEnterFrame_f(_SEHPortableFrame_t *); 00122 extern void _SEH_FASTCALL _SEHLeaveFrame_f(void); 00123 extern void _SEH_FASTCALL _SEHReturn_f(void); 00124 00125 # define _SEHEnterFrame _SEHEnterFrame_f 00126 # define _SEHLeaveFrame _SEHLeaveFrame_f 00127 # define _SEHReturn _SEHReturn_f 00128 #else 00129 # define _SEHEnterFrame _SEHEnterFrame_s 00130 # define _SEHLeaveFrame _SEHLeaveFrame_s 00131 # define _SEHReturn _SEHReturn_s 00132 #endif 00133 00134 #ifdef __cplusplus 00135 } 00136 #endif 00137 00138 #endif 00139 00140 /* EOF */ Generated on Fri May 25 2012 04:17:27 for ReactOS by
1.7.6.1
|