Change how complex types are printed in C
[deliverable/binutils-gdb.git] / gdb / i386-windows-nat.c
index 958c83eafe66526e4d8176eb31ea9a32391305cf..3091fc362825aa2cac685301f99145f608952139 100644 (file)
 
 #include <windows.h>
 
-#define context_offset(x) ((int)&(((CONTEXT *)NULL)->x))
-static const int mappings[] =
+#ifdef __x86_64__
+#define CONTEXT WOW64_CONTEXT
+#endif
+#define context_offset(x) ((int)(size_t)&(((CONTEXT *)NULL)->x))
+const int i386_mappings[] =
 {
   context_offset (Eax),
   context_offset (Ecx),
@@ -70,10 +73,11 @@ static const int mappings[] =
   context_offset (ExtendedRegisters[24])
 };
 #undef context_offset
+#undef CONTEXT
 
 /* segment_register_p_ftype implementation for x86.  */
 
-static int
+int
 i386_windows_segment_register_p (int regnum)
 {
   return regnum >= I386_CS_REGNUM && regnum <= I386_GS_REGNUM;
@@ -83,7 +87,7 @@ void _initialize_i386_windows_nat ();
 void
 _initialize_i386_windows_nat ()
 {
-  windows_set_context_register_offsets (mappings);
-  windows_set_segment_register_p (i386_windows_segment_register_p);
+#ifndef __x86_64__
   x86_set_debug_register_length (4);
+#endif
 }
This page took 0.024642 seconds and 4 git commands to generate.