* ppcnbsd-nat.c: Include <machine/frame.h>, <machine/pcb.h>,
[deliverable/binutils-gdb.git] / gdb / go32-nat.c
index 307956bd6a057377fef700cd41c2ffb4bc8e8faa..ec3b5aa650b616fab52fdcdd922401e9657c3cff 100644 (file)
@@ -29,7 +29,8 @@
 #include "gdbcmd.h"
 #include "floatformat.h"
 #include "buildsym.h"
-#include "i387-nat.h"
+#include "i387-tdep.h"
+#include "i386-tdep.h"
 #include "value.h"
 #include "regcache.h"
 #include "gdb_string.h"
@@ -182,7 +183,7 @@ static int go32_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len,
 static void go32_files_info (struct target_ops *target);
 static void go32_stop (void);
 static void go32_kill_inferior (void);
-static void go32_create_inferior (char *exec_file, char *args, char **env);
+static void go32_create_inferior (char *exec_file, char *args, char **env, int from_tty);
 static void go32_mourn_inferior (void);
 static int go32_can_run (void);
 
@@ -465,9 +466,10 @@ static void
 fetch_register (int regno)
 {
   if (regno < FP0_REGNUM)
-    supply_register (regno, (char *) &a_tss + regno_mapping[regno].tss_ofs);
-  else if (FP_REGNUM_P (regno) || FPC_REGNUM_P (regno))
-    i387_supply_register (regno, (char *) &npx);
+    regcache_raw_supply (current_regcache, regno,
+                        (char *) &a_tss + regno_mapping[regno].tss_ofs);
+  else if (i386_fp_regnum_p (regno) || i386_fpc_regnum_p (regno))
+    i387_supply_fsave (current_regcache, regno, &npx);
   else
     internal_error (__FILE__, __LINE__,
                    "Invalid register no. %d in fetch_register.", regno);
@@ -482,7 +484,7 @@ go32_fetch_registers (int regno)
     {
       for (regno = 0; regno < FP0_REGNUM; regno++)
        fetch_register (regno);
-      i387_supply_fsave ((char *) &npx);
+      i387_supply_fsave (current_regcache, -1, &npx);
     }
 }
 
@@ -490,8 +492,9 @@ static void
 store_register (int regno)
 {
   if (regno < FP0_REGNUM)
-    regcache_collect (regno, (void *) &a_tss + regno_mapping[regno].tss_ofs);
-  else if (FP_REGNUM_P (regno) || FPC_REGNUM_P (regno))
+    regcache_raw_collect (current_regcache, regno,
+                         (char *) &a_tss + regno_mapping[regno].tss_ofs);
+  else if (i386_fp_regnum_p (regno) || i386_fpc_regnum_p (regno))
     i387_fill_fsave ((char *) &npx, regno);
   else
     internal_error (__FILE__, __LINE__,
@@ -573,7 +576,7 @@ go32_kill_inferior (void)
 }
 
 static void
-go32_create_inferior (char *exec_file, char *args, char **env)
+go32_create_inferior (char *exec_file, char *args, char **env, int from_tty)
 {
   extern char **environ;
   jmp_buf start_state;
@@ -803,7 +806,7 @@ go32_terminal_inferior (void)
   {
     redir_to_debugger (&child_cmd);
     error ("Cannot redirect standard handles for program: %s.",
-          strerror (errno));
+          safe_strerror (errno));
   }
   /* set the console device of the inferior to whatever mode
      (raw or cooked) we found it last time */
@@ -837,7 +840,7 @@ go32_terminal_ours (void)
     {
       redir_to_child (&child_cmd);
       error ("Cannot redirect standard handles for debugger: %s.",
-            strerror (errno));
+            safe_strerror (errno));
     }
   }
 }
@@ -1514,7 +1517,7 @@ go32_sldt (char *arg, int from_tty)
          if (ldt_entry < 0
              || (ldt_entry & 4) == 0
              || (ldt_entry & 3) != (cpl & 3))
-           error ("Invalid LDT entry 0x%03x.", ldt_entry);
+           error ("Invalid LDT entry 0x%03lx.", (unsigned long)ldt_entry);
        }
     }
 
@@ -1552,8 +1555,8 @@ go32_sldt (char *arg, int from_tty)
       if (ldt_entry >= 0)
        {
          if (ldt_entry > limit)
-           error ("Invalid LDT entry %#x: outside valid limits [0..%#x]",
-                  ldt_entry, limit);
+           error ("Invalid LDT entry %#lx: outside valid limits [0..%#x]",
+                  (unsigned long)ldt_entry, limit);
 
          display_descriptor (ldt_descr.stype, base, ldt_entry / 8, 1);
        }
@@ -1583,8 +1586,8 @@ go32_sgdt (char *arg, int from_tty)
        {
          gdt_entry = parse_and_eval_long (arg);
          if (gdt_entry < 0 || (gdt_entry & 7) != 0)
-           error ("Invalid GDT entry 0x%03x: not an integral multiple of 8.",
-                  gdt_entry);
+           error ("Invalid GDT entry 0x%03lx: not an integral multiple of 8.",
+                  (unsigned long)gdt_entry);
        }
     }
 
@@ -1594,8 +1597,8 @@ go32_sgdt (char *arg, int from_tty)
   if (gdt_entry >= 0)
     {
       if (gdt_entry > gdtr.limit)
-       error ("Invalid GDT entry %#x: outside valid limits [0..%#x]",
-              gdt_entry, gdtr.limit);
+       error ("Invalid GDT entry %#lx: outside valid limits [0..%#x]",
+              (unsigned long)gdt_entry, gdtr.limit);
 
       display_descriptor (0, gdtr.base, gdt_entry / 8, 1);
     }
@@ -1624,7 +1627,7 @@ go32_sidt (char *arg, int from_tty)
        {
          idt_entry = parse_and_eval_long (arg);
          if (idt_entry < 0)
-           error ("Invalid (negative) IDT entry %d.", idt_entry);
+           error ("Invalid (negative) IDT entry %ld.", idt_entry);
        }
     }
 
@@ -1636,8 +1639,8 @@ go32_sidt (char *arg, int from_tty)
   if (idt_entry >= 0)
     {
       if (idt_entry > idtr.limit)
-       error ("Invalid IDT entry %#x: outside valid limits [0..%#x]",
-              idt_entry, idtr.limit);
+       error ("Invalid IDT entry %#lx: outside valid limits [0..%#x]",
+              (unsigned long)idt_entry, idtr.limit);
 
       display_descriptor (1, idtr.base, idt_entry, 1);
     }
@@ -1833,7 +1836,7 @@ display_page_table (long n, int force)
 static void
 go32_pte (char *arg, int from_tty)
 {
-  long pde_idx = -1, i;
+  long pde_idx = -1L, i;
 
   if (arg && *arg)
     {
@@ -1844,7 +1847,7 @@ go32_pte (char *arg, int from_tty)
        {
          pde_idx = parse_and_eval_long (arg);
          if (pde_idx < 0 || pde_idx >= 1024)
-           error ("Entry %d is outside valid limits [0..1023].", pde_idx);
+           error ("Entry %ld is outside valid limits [0..1023].", pde_idx);
        }
     }
 
@@ -1904,7 +1907,7 @@ _initialize_go32_nat (void)
   add_target (&go32_ops);
 
   add_prefix_cmd ("dos", class_info, go32_info_dos_command,
-                 "Print information specific to DJGPP (a.k.a. MS-DOS) debugging.",
+                 "Print information specific to DJGPP (aka MS-DOS) debugging.",
                  &info_dos_cmdlist, "info dos ", 0, &infolist);
 
   add_cmd ("sysinfo", class_info, go32_sysinfo,
This page took 0.026166 seconds and 4 git commands to generate.