*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / i386aix-nat.c
index a874dd00507d39d035864eb853b00db6e979ceed..2d8d7b9c71034c9832c37c77eb78dfb15b3fc715 100644 (file)
@@ -1,5 +1,6 @@
 /* Intel 386 native support.
-   Copyright (C) 1988, 1989, 1991, 1992 Free Software Foundation, Inc.
+   Copyright 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
+   2000, 2001 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,6 +24,7 @@
 #include "inferior.h"
 #include "language.h"
 #include "gdbcore.h"
+#include "regcache.h"
 
 #ifdef USG
 #include <sys/types.h>
@@ -52,7 +54,7 @@ extern int errno;
 
 #include "target.h"
 
-static void fetch_core_registers PARAMS ((char *, unsigned, int, CORE_ADDR));
+static void fetch_core_registers (char *, unsigned, int, CORE_ADDR);
 \f
 
 /* this table must line up with REGISTER_NAMES in tm-i386v.h */
@@ -70,9 +72,7 @@ static int regmap[] =
  */
 
 int
-i386_register_u_addr (blockend, regnum)
-     int blockend;
-     int regnum;
+i386_register_u_addr (int blockend, int regnum)
 {
 #if 0
   /* this will be needed if fp registers are reinstated */
@@ -115,9 +115,7 @@ struct env387
 };
 
 static
-print_387_status (status, ep)
-     unsigned short status;
-     struct env387 *ep;
+print_387_status (unsigned short status, struct env387 *ep)
 {
   int i;
   int bothstatus;
@@ -183,7 +181,7 @@ print_387_status (status, ep)
 static struct env387 core_env387;
 
 void
-i386_float_info ()
+i386_float_info (void)
 {
   struct env387 fps;
   int fpsaved = 0;
@@ -192,12 +190,13 @@ i386_float_info ()
   struct env387 fps_fixed;
   int i;
 
-  if (inferior_pid)
+  if (! ptid_equal (inferior_ptid, null_ptid))
     {
       char buf[10];
       unsigned short status;
 
-      ptrace (PT_READ_FPR, inferior_pid, buf, offsetof (struct env387, status));
+      ptrace (PT_READ_FPR, PIDGET (inferior_ptid), buf,
+              offsetof (struct env387, status));
       memcpy (&status, buf, sizeof (status));
       fpsaved = status;
     }
@@ -213,13 +212,13 @@ i386_float_info ()
       return;
     }
 
-  if (inferior_pid)
+  if (! ptid_equal (inferior_ptid, null_ptid))
     {
       int offset;
       for (offset = 0; offset < sizeof (fps); offset += 10)
        {
          char buf[10];
-         ptrace (PT_READ_FPR, inferior_pid, buf, offset);
+         ptrace (PT_READ_FPR, PIDGET (inferior_ptid), buf, offset);
          memcpy ((char *) &fps.control + offset, buf,
                  MIN (10, sizeof (fps) - offset));
        }
@@ -232,22 +231,20 @@ i386_float_info ()
 
 /* Fetch one register.  */
 static void
-fetch_register (regno)
-     int regno;
+fetch_register (int regno)
 {
   char buf[MAX_REGISTER_RAW_SIZE];
   if (regno < FP0_REGNUM)
-    *(int *) buf = ptrace (PT_READ_GPR, inferior_pid,
+    *(int *) buf = ptrace (PT_READ_GPR, PIDGET (inferior_ptid),
                           PT_REG (regmap[regno]), 0, 0);
   else
-    ptrace (PT_READ_FPR, inferior_pid, buf,
+    ptrace (PT_READ_FPR, PIDGET (inferior_ptid), buf,
            (regno - FP0_REGNUM) * 10 + offsetof (struct env387, regs));
   supply_register (regno, buf);
 }
 
 void
-fetch_inferior_registers (regno)
-     int regno;
+fetch_inferior_registers (int regno)
 {
   if (regno < 0)
     for (regno = 0; regno < NUM_REGS; regno++)
@@ -258,16 +255,16 @@ fetch_inferior_registers (regno)
 
 /* store one register */
 static void
-store_register (regno)
-     int regno;
+store_register (int regno)
 {
   char buf[80];
   errno = 0;
   if (regno < FP0_REGNUM)
-    ptrace (PT_WRITE_GPR, inferior_pid, PT_REG (regmap[regno]),
+    ptrace (PT_WRITE_GPR, PIDGET (inferior_ptid), PT_REG (regmap[regno]),
            *(int *) &registers[REGISTER_BYTE (regno)], 0);
   else
-    ptrace (PT_WRITE_FPR, inferior_pid, &registers[REGISTER_BYTE (regno)],
+    ptrace (PT_WRITE_FPR, PIDGET (inferior_ptid),
+            &registers[REGISTER_BYTE (regno)],
            (regno - FP0_REGNUM) * 10 + offsetof (struct env387, regs));
 
   if (errno != 0)
@@ -281,8 +278,7 @@ store_register (regno)
    If REGNO is -1, do this for all registers.
    Otherwise, REGNO specifies which register (so we can save time).  */
 void
-store_inferior_registers (regno)
-     int regno;
+store_inferior_registers (int regno)
 {
   if (regno < 0)
     for (regno = 0; regno < NUM_REGS; regno++)
@@ -322,12 +318,21 @@ static int core_regmap[] =
   CD_DS, CD_ES, CD_FS, CD_GS,
 };
 
+/* Provide registers to GDB from a core file.
+
+   CORE_REG_SECT points to an array of bytes, which were obtained from
+   a core file which BFD thinks might contain register contents. 
+   CORE_REG_SIZE is its size.
+
+   WHICH says which register set corelow suspects this is:
+     0 --- the general-purpose register set
+     2 --- the floating-point register set
+
+   REG_ADDR isn't used.  */
+
 static void
-fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
-     char *core_reg_sect;
-     unsigned core_reg_size;
-     int which;
-     CORE_ADDR reg_addr;       /* ignored */
+fetch_core_registers (char *core_reg_sect, unsigned core_reg_size,
+                     int which, CORE_ADDR reg_addr)
 {
 
   if (which == 0)
@@ -358,13 +363,15 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
 
 static struct core_fns i386aix_core_fns =
 {
-  bfd_target_unknown_flavour,
-  fetch_core_registers,
-  NULL
+  bfd_target_unknown_flavour,          /* core_flavour */
+  default_check_format,                        /* check_format */
+  default_core_sniffer,                        /* core_sniffer */
+  fetch_core_registers,                        /* core_read_registers */
+  NULL                                 /* next */
 };
 
 void
-_initialize_core_i386aix ()
+_initialize_core_i386aix (void)
 {
   add_core_fns (&i386aix_core_fns);
 }
This page took 0.025289 seconds and 4 git commands to generate.