Sync to trunk r39350.
[reactos.git] / reactos / include / reactos / windbgkd.h
index 1e03a5c..0d829fc 100644 (file)
@@ -261,7 +261,13 @@ typedef struct _DBGKD_ANY_CONTROL_SET
 } DBGKD_ANY_CONTROL_SET, *PDBGKD_ANY_CONTROL_SET;
 #include <poppack.h>
 
+#if defined(_M_X86)
 typedef X86_DBGKD_CONTROL_SET DBGKD_CONTROL_SET, *PDBGKD_CONTROL_SET;
+#elif defined(_M_AMD64)
+typedef AMD64_DBGKD_CONTROL_SET DBGKD_CONTROL_SET, *PDBGKD_CONTROL_SET;
+#else
+#error unsupported architecture
+#endif
 
 //
 // DBGKM Structure for Exceptions
@@ -321,7 +327,13 @@ typedef struct _AMD64_DBGKD_CONTROL_REPORT
     USHORT SegFs;
 } AMD64_DBGKD_CONTROL_REPORT, *PAMD64_DBGKD_CONTROL_REPORT;
 
-typedef X86_DBGKD_CONTROL_REPORT DBGKD_CONTROL_REPORT;
+#if defined(_M_X86)
+typedef X86_DBGKD_CONTROL_REPORT DBGKD_CONTROL_REPORT, *PDBGKD_CONTROL_REPORT;
+#elif defined(_M_AMD64)
+typedef AMD64_DBGKD_CONTROL_REPORT DBGKD_CONTROL_REPORT, *PDBGKD_CONTROL_REPORT;
+#else
+#error unsupported architecture
+#endif
 
 typedef struct _DBGKD_ANY_CONTROL_REPORT
 {
@@ -853,4 +865,12 @@ ExceptionRecord32To64(IN PEXCEPTION_RECORD32 Ex32,
     }
 }
 
+#ifdef _WIN64
+#define ExceptionRecordTo64(Ex, Ex64) \
+            (*(Ex64)) = (*(PEXCEPTION_RECORD64)(Ex))
+#else
+#define ExceptionRecordTo64(Ex, Ex64) \
+            ExceptionRecord32To64((PEXCEPTION_RECORD32)Ex, Ex64)
+#endif
+
 #endif