[PSEH3]
[reactos.git] / reactos / include / reactos / libs / pseh / pseh2.h
index 2bf817f..f74805d 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef KJK_PSEH2_H_
 #define KJK_PSEH2_H_
 
-#if defined(USE_NATIVE_SEH) || defined(_MSC_VER)
+#if defined(_USE_NATIVE_SEH) || defined(_MSC_VER)
 
 #include <excpt.h>
 #define _SEH2_TRY __try
@@ -36,7 +36,7 @@
 #define _SEH2_YIELD(STMT_) STMT_
 #define _SEH2_LEAVE __leave
 
-#elif defined(USE_DUMMY_PSEH) || defined (__arm__) || defined(__clang__) || defined(_M_AMD64)
+#elif defined(_USE_DUMMY_PSEH) || defined (__arm__) || defined(__clang__) || defined(_M_AMD64)
 
 #define _SEH2_TRY  {
 #define _SEH2_FINALLY }  {
 #define _SEH2_YIELD(STMT_) STMT_
 #define _SEH2_LEAVE
 
+#elif defined(_USE_PSEH3)
+
+#include "pseh3.h"
+
+/* Compatibility macros */
+#define _SEH2_TRY _SEH3_TRY
+#define _SEH2_EXCEPT _SEH3_EXCEPT
+#define _SEH2_FINALLY _SEH3_FINALLY
+#define _SEH2_END _SEH3_END
+#define _SEH2_GetExceptionInformation() ((struct _EXCEPTION_POINTERS*)_exception_info())
+#define _SEH2_GetExceptionCode _exception_code
+#define _SEH2_AbnormalTermination _abnormal_termination
+#define _SEH2_LEAVE _SEH3_LEAVE
+#define _SEH2_YIELD(x) x
+
 #elif defined(__GNUC__)
 
 struct _EXCEPTION_RECORD;