* Makefile.in (VERSION): Bump to 4.5.6.
authorFred Fish <fnf@specifix.com>
Wed, 24 Jun 1992 04:49:48 +0000 (04:49 +0000)
committerFred Fish <fnf@specifix.com>
Wed, 24 Jun 1992 04:49:48 +0000 (04:49 +0000)
* coffread.c (coff_end_symtab):  Cast 2nd arg of complain() to
correct type.
* defs.h (NORETURN):  Define away for Lucid compiler.
* remote.c (remote_timer, remote_interrupt):  Signal handlers
take one int arg.
* ser-termios.c (serial_write, serial_close):  Return whatever
value the write/close call returns, rather than falling off end.
* inferior.h (PTRACE_ARG3_TYPE):  Third arg to ptrace is int on
more systems than it is "char *".  Define PTRACE_ARG3_TYPE to
default to int.
* infptrace.c, hppabsd-xdep.c, hppahpux-xdep.c, i386-xdep.c,
inferior.h (call_ptrace):  Use PTRACE_ARG3_TYPE to declare type
of third arg.
* a68v-xdep.c, arm-xdep.c, convex-xdep.c, hp300ux-xdep.c, infrun.c,
m88k-xdep.c, mach386-xdep.c, mips-xdep.c, os68k-xdep.c, pyr-tdep.c,
pyr-xdep.c, rs6000-xdep.c, sparc-xdep.c, sun3-xdep.c, sun386-xdep.c,
symm-xdep.c, ultra3-xdep.c:  Use PTRACE_ARG3_TYPE to cast ptrace
argument 3.
* sparc-xdep.c, a68v-xdep.c (fetch_inferior_registers,
store_inferior_registers): Supply missing fourth argument to
ptrace().

32 files changed:
gdb/ChangeLog
gdb/Makefile.in
gdb/a68v-xdep.c
gdb/arm-xdep.c
gdb/coffread.c
gdb/convex-xdep.c
gdb/defs.h
gdb/hp300ux-xdep.c
gdb/hppabsd-xdep.c
gdb/hppahpux-xdep.c
gdb/i386-xdep.c
gdb/inflow.c
gdb/infptrace.c
gdb/infrun.c
gdb/m88k-xdep.c
gdb/mach386-xdep.c
gdb/mips-xdep.c
gdb/os68k-xdep.c
gdb/procfs.c
gdb/pyr-tdep.c
gdb/pyr-xdep.c
gdb/remote.c
gdb/rs6000-tdep.c
gdb/rs6000-xdep.c
gdb/ser-termios.c
gdb/sparc-xdep.c
gdb/sun3-xdep.c
gdb/sun386-xdep.c
gdb/symm-xdep.c
gdb/tm-rs6000.h
gdb/ultra3-xdep.c
gdb/xm-sun4os4.h

index 0c8aa7c86c567d57e7c0ba5135e8b07a449f8ed0..517543476bf6892c4ecbcb61cd016a63f8c958e3 100644 (file)
@@ -1,3 +1,28 @@
+Tue Jun 23 21:46:26 1992  Fred Fish  (fnf@cygnus.com)
+
+       * Makefile.in (VERSION):  Bump to 4.5.6.
+       * coffread.c (coff_end_symtab):  Cast 2nd arg of complain() to
+       correct type.
+       * defs.h (NORETURN):  Define away for Lucid compiler.
+       * remote.c (remote_timer, remote_interrupt):  Signal handlers
+       take one int arg.
+       * ser-termios.c (serial_write, serial_close):  Return whatever
+       value the write/close call returns, rather than falling off end.
+       * inferior.h (PTRACE_ARG3_TYPE):  Third arg to ptrace is int on
+       more systems than it is "char *".  Define PTRACE_ARG3_TYPE to
+       default to int.
+       * infptrace.c, hppabsd-xdep.c, hppahpux-xdep.c, i386-xdep.c,
+       inferior.h (call_ptrace):  Use PTRACE_ARG3_TYPE to declare type
+       of third arg.
+       * a68v-xdep.c, arm-xdep.c, convex-xdep.c, hp300ux-xdep.c, infrun.c,
+       m88k-xdep.c, mach386-xdep.c, mips-xdep.c, os68k-xdep.c, pyr-tdep.c,
+       pyr-xdep.c, rs6000-xdep.c, sparc-xdep.c, sun3-xdep.c, sun386-xdep.c,
+       symm-xdep.c, ultra3-xdep.c:  Use PTRACE_ARG3_TYPE to cast ptrace
+       argument 3.
+       * sparc-xdep.c, a68v-xdep.c (fetch_inferior_registers,
+       store_inferior_registers): Supply missing fourth argument to
+       ptrace().
+
 Mon Jun 22 20:18:06 1992  Fred Fish  (fnf@cygnus.com)
 
        * command.c (add_abbrev_prefix_cmd):  Fix misspelling in comment.
index c1b0b5062c8eb3649b0343f53abe75e34a10d5e9..b78657eaed7478e3742cddae65d21f393c264e0a 100644 (file)
@@ -163,7 +163,7 @@ CDEPS = ${XM_CDEPS} ${TM_CDEPS} ${BFD_LIB} ${MMALLOC_LIB} ${LIBIBERTY} \
 ADD_FILES = ${REGEX} ${ALLOCA} ${XM_ADD_FILES} ${TM_ADD_FILES}
 ADD_DEPS = ${REGEX1} ${ALLOCA1} ${XM_ADD_FILES} ${TM_ADD_FILES}
 
-VERSION = 4.5.5
+VERSION = 4.5.6
 DIST=gdb
 
 LINT=/usr/5bin/lint
index 036ef7bc0fa53a7f848a31bded4e62d9ce4cc896..9aa6aff6130fe74e950087f8fbd0ea45af6ea2ef 100644 (file)
@@ -36,9 +36,11 @@ fetch_inferior_registers ()
 
   registers_fetched ();
   
-  ptrace (PTRACE_GETREGS, inferior_pid, &inferior_registers);
+  ptrace (PTRACE_GETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers, 0);
 #ifdef FP0_REGNUM
-  ptrace (PTRACE_GETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_GETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers, 0);
 #endif 
   
   bcopy (&inferior_registers, registers, 16 * 4);
@@ -82,9 +84,11 @@ store_inferior_registers (regno)
         sizeof inferior_fp_registers - sizeof inferior_fp_registers.fps_regs);
 #endif
 
-  ptrace (PTRACE_SETREGS, inferior_pid, &inferior_registers);
+  ptrace (PTRACE_SETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers, 0);
 #if FP0_REGNUM
-  ptrace (PTRACE_SETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_SETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers, 0);
 #endif
 }
 
index 149b30fd3cd01e6e3a552c9e61d7c1f1059b66e7..64aa0d8c33da7813ce9151b46a63e46ca15e7753 100644 (file)
@@ -50,29 +50,33 @@ fetch_inferior_registers (regno)
 
   struct user u;
   unsigned int offset = (char *) &u.u_ar0 - (char *) &u;
-  offset = ptrace (PT_READ_U, inferior_pid, offset, 0) - KERNEL_U_ADDR;
+  offset = ptrace (PT_READ_U, inferior_pid, (PTRACE_ARG3_TYPE) offset, 0)
+      - KERNEL_U_ADDR;
 
   registers_fetched ();
   
   for (regno = 0; regno < 16; regno++)
     {
       regaddr = offset + regno * 4;
-      *(int *)&buf[0] = ptrace (PT_READ_U, inferior_pid, regaddr, 0);
+      *(int *)&buf[0] = ptrace (PT_READ_U, inferior_pid,
+                               (PTRACE_ARG3_TYPE) regaddr, 0);
       if (regno == PC_REGNUM)
          *(int *)&buf[0] = GET_PC_PART(*(int *)&buf[0]);
       supply_register (regno, buf);
     }
-  *(int *)&buf[0] = ptrace (PT_READ_U, inferior_pid, offset + PC*4);
+  *(int *)&buf[0] = ptrace (PT_READ_U, inferior_pid,
+                           (PTRACE_ARG3_TYPE) (offset + PC*4), 0);
   supply_register (PS_REGNUM, buf); /* set virtual register ps same as pc */
 
   /* read the floating point registers */
   offset = (char *) &u.u_fp_regs - (char *)&u;
-  *(int *)buf = ptrace (PT_READ_U, inferior_pid, offset, 0);
+  *(int *)buf = ptrace (PT_READ_U, inferior_pid, (PTRACE_ARG3_TYPE) offset, 0);
   supply_register (FPS_REGNUM, buf);
   for (regno = 16; regno < 24; regno++) {
       regaddr = offset + 4 + 12 * (regno - 16);
       for (i = 0; i < 12; i += sizeof(int))
-         *(int *) &buf[i] = ptrace (PT_READ_U, inferior_pid, regaddr + i, 0);
+         *(int *) &buf[i] = ptrace (PT_READ_U, inferior_pid,
+                                    (PTRACE_ARG3_TYPE) (regaddr + i), 0);
       supply_register (regno, buf);
   }
 }
@@ -91,7 +95,8 @@ store_inferior_registers (regno)
   struct user u;
   unsigned long value;
   unsigned int offset = (char *) &u.u_ar0 - (char *) &u;
-  offset = ptrace (PT_READ_U, inferior_pid, offset, 0) - KERNEL_U_ADDR;
+  offset = ptrace (PT_READ_U, inferior_pid, (PTRACE_ARG3_TYPE) offset, 0)
+      - KERNEL_U_ADDR;
 
   if (regno >= 0) {
       if (regno >= 16) return;
@@ -100,7 +105,7 @@ store_inferior_registers (regno)
       value = read_register(regno);
       if (regno == PC_REGNUM)
          value = SET_PC_PART(read_register (PS_REGNUM), value);
-      ptrace (PT_WRITE_U, inferior_pid, regaddr, value);
+      ptrace (PT_WRITE_U, inferior_pid, (PTRACE_ARG3_TYPE) regaddr, value);
       if (errno != 0)
        {
          sprintf (buf, "writing register number %d", regno);
@@ -114,7 +119,7 @@ store_inferior_registers (regno)
       value = read_register(regno);
       if (regno == PC_REGNUM)
          value = SET_PC_PART(read_register (PS_REGNUM), value);
-      ptrace (6, inferior_pid, regaddr, value);
+      ptrace (6, inferior_pid, (PTRACE_ARG3_TYPE) regaddr, value);
       if (errno != 0)
        {
          sprintf (buf, "writing all regs, number %d", regno);
index ee9b9e87cc858bf89da3a7d32d7ef4c9d0191c20..75468f7224e5bbf8e8cb58fd8effb438860dd333 100644 (file)
@@ -614,7 +614,8 @@ coff_end_symtab (objfile)
 
          if (BLOCK_START(pb->block) < BLOCK_START(pbnext->block)) {
            struct block *tmp = pb->block;
-           complain (&misordered_blocks_complaint, BLOCK_START (pb->block));
+           complain (&misordered_blocks_complaint,
+                     (char *) BLOCK_START (pb->block));
            pb->block = pbnext->block;
            pbnext->block = tmp;
            swapped = 1;
index 6bd57ab80791a904cf4791df68312a636405fcca..ba4da80218e4f102b628d5ab4acfa2311d6cf4bd 100644 (file)
@@ -218,7 +218,9 @@ static ptr_cmp ();
 
 int
 call_ptrace (request, pid, procaddr, buf)
-     int request, pid, procaddr, buf;
+     int request, pid;
+     PTRACE_ARG3_TYPE procaddr;
+     int buf;
 {
   if (request == 0)
     return;
index 35151c7134efd1adc3d055a353829d435e760f21..1ea3a1e7766e5f02f502d6c1aac8190d9de6d9dd 100644 (file)
@@ -223,6 +223,9 @@ n_spaces PARAMS ((int));
 extern void
 printchar PARAMS ((int, FILE *, int));
 
+extern char *
+strdup_demangled PARAMS ((const char *));
+
 extern void
 fprint_symbol PARAMS ((FILE *, char *));
 
@@ -407,7 +410,11 @@ local_hex_string_custom PARAMS ((int, char *));    /* language.c */
    to keep them happy */
 
 #ifndef NORETURN
-# define NORETURN volatile
+# ifdef __lucid
+#   define NORETURN /*nothing*/
+# else
+#   define NORETURN volatile
+# endif
 #endif
 
 /* Defaults for system-wide constants (if not defined by xm.h, we fake it).  */
@@ -558,7 +565,7 @@ mmtrace PARAMS ((void));
 extern int
 parse_escape PARAMS ((char **));
 
-extern char *reg_names[];
+extern const char * const reg_names[];
 
 extern NORETURN void                   /* Does not return to the caller.  */
 error ();
@@ -688,7 +695,9 @@ strerror PARAMS ((int));                            /* 4.11.6.2 */
 #  ifdef sparc
 #   include <alloca.h>
 #  endif
-   extern char *alloca ();
+#  ifndef alloca               /* May be macro, with args, in <alloca.h> */
+    extern char *alloca ();
+#  endif
 # endif
 #endif
 
index 6c30766cff8dfcd24ecb8650d6dd462db4f14ec4..f043accd0b0517c83128e3da7013674a9d24c2f3 100644 (file)
@@ -41,7 +41,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define INFERIOR_AR0(u)                                                        \
   ((ptrace                                                             \
-    (PT_RUAREA, inferior_pid, ((char *) &u.u_ar0 - (char *) &u), 0))   \
+    (PT_RUAREA, inferior_pid,                                          \
+     (PTRACE_ARG3_TYPE) ((char *) &u.u_ar0 - (char *) &u), 0))         \
    - KERNEL_U_ADDR)
 
 static void
@@ -55,7 +56,8 @@ fetch_inferior_register (regno, regaddr)
       union { int i; short s[2]; } ps_val;
       int regval;
       
-      ps_val.i = (ptrace (PT_RUAREA, inferior_pid, regaddr, 0));
+      ps_val.i = (ptrace (PT_RUAREA, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
+                         0));
       regval = ps_val.s[0];
       supply_register (regno, &regval);
     }
@@ -67,7 +69,8 @@ fetch_inferior_register (regno, regaddr)
       
       for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
        {
-         *(int *) &buf[i] = ptrace (PT_RUAREA, inferior_pid, regaddr, 0);
+         *(int *) &buf[i] = ptrace (PT_RUAREA, inferior_pid,
+                                    (PTRACE_ARG3_TYPE) regaddr, 0);
          regaddr += sizeof (int);
        }
       supply_register (regno, buf);
@@ -82,7 +85,7 @@ store_inferior_register_1 (regno, regaddr, value)
      int value;
 {
   errno = 0;
-  ptrace (PT_WUAREA, inferior_pid, regaddr, value);
+  ptrace (PT_WUAREA, inferior_pid, (PTRACE_ARG3_TYPE) regaddr, value);
 #if 0
   /* HP-UX randomly sets errno to non-zero for regno == 25.
      However, the value is correctly written, so ignore errno. */
@@ -107,7 +110,8 @@ store_inferior_register (regno, regaddr)
     {
       union { int i; short s[2]; } ps_val;
       
-      ps_val.i = (ptrace (PT_RUAREA, inferior_pid, regaddr, 0));
+      ps_val.i = (ptrace (PT_RUAREA, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
+                         0));
       ps_val.s[0] = (read_register (regno));
       store_inferior_register_1 (regno, regaddr, ps_val.i);
     }
index ca3d10e610ff863a7effeaeb936b7fc4670760c5..3c1b1ea2b287b05755099434d62791aa31870806 100644 (file)
@@ -60,7 +60,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
    machine-dependent file. */
 int
 call_ptrace (request, pid, addr, data)
-     int request, pid, *addr, data;
+     int request, pid;
+     PTRACE_ARG3_TYPE addr;
+     int data;
 {
   return ptrace (request, pid, addr, data);
 }
@@ -78,7 +80,7 @@ kill_inferior_fast ()
 {
   if (inferior_pid == 0)
     return;
-  ptrace (PT_KILL, inferior_pid, 0, 0);
+  ptrace (PT_KILL, inferior_pid, (PTRACE_ARG3_TYPE) 0, 0);
   wait ((int *)0);
 }
 
@@ -100,14 +102,14 @@ child_resume (step, signal)
 {
   errno = 0;
 
-  /* An address of (int *)1 tells ptrace to continue from where it was. 
-     (If GDB wanted it to start some other way, we have already written
-     a new PC value to the child.)  */
+  /* An address of (PTRACE_ARG3_TYPE) 1 tells ptrace to continue from where
+     it was. (If GDB wanted it to start some other way, we have already
+     written a new PC value to the child.)  */
 
   if (step)
-    ptrace (PT_STEP, inferior_pid, (int *)1, signal);
+    ptrace (PT_STEP, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal);
   else
-    ptrace (PT_CONTINUE, inferior_pid, (int *)1, signal);
+    ptrace (PT_CONTINUE, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal);
 
   if (errno)
     perror_with_name ("ptrace");
@@ -124,7 +126,7 @@ attach (pid)
      int pid;
 {
   errno = 0;
-  ptrace (PT_ATTACH, pid, 0, 0);
+  ptrace (PT_ATTACH, pid, (PTRACE_ARG3_TYPE) 0, 0);
   if (errno)
     perror_with_name ("ptrace");
   attach_flag = 1;
@@ -140,7 +142,7 @@ detach (signal)
      int signal;
 {
   errno = 0;
-  ptrace (PT_DETACH, inferior_pid, 1, signal);
+  ptrace (PT_DETACH, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal);
   if (errno)
     perror_with_name ("ptrace");
   attach_flag = 0;
@@ -202,7 +204,8 @@ void _initialize_kernel_u_addr ()
 #if !defined (U_REGS_OFFSET)
 #define U_REGS_OFFSET \
   ptrace (PT_READ_U, inferior_pid, \
-          (int *)(offsetof (struct user, u_ar0)), 0) - KERNEL_U_ADDR
+          (PTRACE_ARG3_TYPE) (offsetof (struct user, u_ar0)), 0) \
+    - KERNEL_U_ADDR
 #endif
 
 /* Registers we shouldn't try to fetch.  */
@@ -237,7 +240,8 @@ fetch_register (regno)
   for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
     {
       errno = 0;
-      *(int *) &buf[i] = ptrace (PT_RUREGS, inferior_pid, (int *)regaddr, 0);
+      *(int *) &buf[i] = ptrace (PT_RUREGS, inferior_pid,
+                                (PTRACE_ARG3_TYPE) regaddr, 0);
       regaddr += sizeof (int);
       if (errno != 0)
        {
@@ -290,7 +294,7 @@ store_inferior_registers (regno)
       for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof(int))
        {
          errno = 0;
-         ptrace (PT_WRITE_U, inferior_pid, (int *)regaddr,
+         ptrace (PT_WRITE_U, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
                  *(int *) &registers[REGISTER_BYTE (regno) + i]);
          if (errno != 0)
            {
@@ -310,7 +314,7 @@ store_inferior_registers (regno)
          for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof(int))
            {
              errno = 0;
-             ptrace (PT_WRITE_U, inferior_pid, (int *)regaddr,
+             ptrace (PT_WRITE_U, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
                      *(int *) &registers[REGISTER_BYTE (regno) + i]);
              if (errno != 0)
                {
@@ -363,14 +367,16 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
 
       if (addr != memaddr || len < (int)sizeof (int)) {
        /* Need part of initial word -- fetch it.  */
-        buffer[0] = ptrace (PT_READ_I, inferior_pid, (int *)addr, 0);
+        buffer[0] = ptrace (PT_READ_I, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+                           0);
       }
 
       if (count > 1)           /* FIXME, avoid if even boundary */
        {
          buffer[count - 1]
            = ptrace (PT_READ_I, inferior_pid,
-                     (int *)(addr + (count - 1) * sizeof (int)), 0);
+                     (PTRACE_ARG3_TYPE) (addr + (count - 1) * sizeof (int)),
+                     0);
        }
 
       /* Copy data to be written over corresponding part of buffer */
@@ -382,13 +388,15 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
       for (i = 0; i < count; i++, addr += sizeof (int))
        {
          errno = 0;
-         ptrace (PT_WRITE_D, inferior_pid, (int *)addr, buffer[i]);
+         ptrace (PT_WRITE_D, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+                 buffer[i]);
          if (errno)
            {
              /* Using the appropriate one (I or D) is necessary for
                 Gould NP1, at least.  */
              errno = 0;
-             ptrace (PT_WRITE_I, inferior_pid, (int *)addr, buffer[i]);
+             ptrace (PT_WRITE_I, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+                     buffer[i]);
            }
          if (errno)
            return 0;
@@ -400,7 +408,8 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
       for (i = 0; i < count; i++, addr += sizeof (int))
        {
          errno = 0;
-         buffer[i] = ptrace (PT_READ_I, inferior_pid, (int *)addr, 0);
+         buffer[i] = ptrace (PT_READ_I, inferior_pid,
+                             (PTRACE_ARG3_TYPE) addr, 0);
          if (errno)
            return 0;
          QUIT;
index d5fa3c4a96ab7bbc03d84394d4a8a9354303ab62..cd32c4e1cae6a21f6ebb9b9ce6a6f564753e8bd5 100644 (file)
@@ -59,7 +59,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
    machine-dependent file. */
 int
 call_ptrace (request, pid, addr, data)
-     int request, pid, *addr, data;
+     int request, pid;
+     PTRACE_ARG3_TYPE addr;
+     int data;
 {
   return ptrace (request, pid, addr, data, 0);
 }
@@ -77,7 +79,7 @@ kill_inferior_fast ()
 {
   if (inferior_pid == 0)
     return;
-  ptrace (PT_EXIT, inferior_pid, 0, 0, 0); /* PT_EXIT = PT_KILL ? */
+  ptrace (PT_EXIT, inferior_pid, (PTRACE_ARG3_TYPE) 0, 0, 0); /* PT_EXIT = PT_KILL ? */
   wait ((int *)0);
 }
 
@@ -99,14 +101,14 @@ child_resume (step, signal)
 {
   errno = 0;
 
-  /* An address of (int *)1 tells ptrace to continue from where it was. 
-     (If GDB wanted it to start some other way, we have already written
-     a new PC value to the child.)  */
+  /* An address of (PTRACE_ARG3_TYPE) 1 tells ptrace to continue from where
+     it was. (If GDB wanted it to start some other way, we have already
+     written a new PC value to the child.)  */
 
   if (step)
-    ptrace (PT_SINGLE, inferior_pid, (int *)1, signal, 0);
+    ptrace (PT_SINGLE, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal, 0);
   else
-    ptrace (PT_CONTIN, inferior_pid, (int *)1, signal, 0);
+    ptrace (PT_CONTIN, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal, 0);
 
   if (errno)
     perror_with_name ("ptrace");
@@ -123,7 +125,7 @@ attach (pid)
      int pid;
 {
   errno = 0;
-  ptrace (PT_ATTACH, pid, 0, 0, 0);
+  ptrace (PT_ATTACH, pid, (PTRACE_ARG3_TYPE) 0, 0, 0);
   if (errno)
     perror_with_name ("ptrace");
   attach_flag = 1;
@@ -139,7 +141,7 @@ detach (signal)
      int signal;
 {
   errno = 0;
-  ptrace (PT_DETACH, inferior_pid, 1, signal, 0);
+  ptrace (PT_DETACH, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal, 0);
   if (errno)
     perror_with_name ("ptrace");
   attach_flag = 0;
@@ -201,7 +203,8 @@ void _initialize_kernel_u_addr ()
 #if !defined (U_REGS_OFFSET)
 #define U_REGS_OFFSET \
   ptrace (PT_READ_U, inferior_pid, \
-          (int *)(offsetof (struct user, u_ar0)), 0, 0) - KERNEL_U_ADDR
+          (PTRACE_ARG3_TYPE) (offsetof (struct user, u_ar0)), 0, 0) \
+    - KERNEL_U_ADDR
 #endif
 
 /* Registers we shouldn't try to fetch.  */
@@ -236,7 +239,8 @@ fetch_register (regno)
   for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
     {
       errno = 0;
-      *(int *) &buf[i] = ptrace (PT_RUREGS, inferior_pid, (int *)regaddr, 0, 0);
+      *(int *) &buf[i] = ptrace (PT_RUREGS, inferior_pid,
+                                (PTRACE_ARG3_TYPE) regaddr, 0, 0);
       regaddr += sizeof (int);
       if (errno != 0)
        {
@@ -289,7 +293,7 @@ store_inferior_registers (regno)
       for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof(int))
        {
          errno = 0;
-         ptrace (PT_WUAREA, inferior_pid, (int *)regaddr,
+         ptrace (PT_WUAREA, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
                  *(int *) &registers[REGISTER_BYTE (regno) + i], 0);
          if (errno != 0)
            {
@@ -309,7 +313,7 @@ store_inferior_registers (regno)
          for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof(int))
            {
              errno = 0;
-             ptrace (PT_WUAREA, inferior_pid, (int *)regaddr,
+             ptrace (PT_WUAREA, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
                      *(int *) &registers[REGISTER_BYTE (regno) + i], 0);
              if (errno != 0)
                {
@@ -362,14 +366,16 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
 
       if (addr != memaddr || len < (int)sizeof (int)) {
        /* Need part of initial word -- fetch it.  */
-        buffer[0] = ptrace (PT_RIUSER, inferior_pid, (int *)addr, 0, 0);
+        buffer[0] = ptrace (PT_RIUSER, inferior_pid,
+                           (PTRACE_ARG3_TYPE) addr, 0, 0);
       }
 
       if (count > 1)           /* FIXME, avoid if even boundary */
        {
          buffer[count - 1]
            = ptrace (PT_RIUSER, inferior_pid,
-                     (int *)(addr + (count - 1) * sizeof (int)), 0, 0);
+                     (PTRACE_ARG3_TYPE) (addr + (count - 1) * sizeof (int)),
+                     0, 0);
        }
 
       /* Copy data to be written over corresponding part of buffer */
@@ -381,13 +387,15 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
       for (i = 0; i < count; i++, addr += sizeof (int))
        {
          errno = 0;
-         ptrace (PT_WDUSER, inferior_pid, (int *)addr, buffer[i], 0);
+         ptrace (PT_WDUSER, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+                 buffer[i], 0);
          if (errno)
            {
              /* Using the appropriate one (I or D) is necessary for
                 Gould NP1, at least.  */
              errno = 0;
-             ptrace (PT_WIUSER, inferior_pid, (int *)addr, buffer[i], 0);
+             ptrace (PT_WIUSER, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+                     buffer[i], 0);
            }
          if (errno)
            return 0;
@@ -399,7 +407,8 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
       for (i = 0; i < count; i++, addr += sizeof (int))
        {
          errno = 0;
-         buffer[i] = ptrace (PT_RIUSER, inferior_pid, (int *)addr, 0, 0);
+         buffer[i] = ptrace (PT_RIUSER, inferior_pid,
+                             (PTRACE_ARG3_TYPE) addr, 0, 0);
          if (errno)
            return 0;
          QUIT;
index 65bba6fd1032efb20f2dfe70fb5cd53f61b96f22..38ba8f037af7eb7232447f2911f641bed1745e06 100644 (file)
@@ -194,7 +194,7 @@ i386_float_info ()
       unsigned int mask;
       
       rounded_addr = uaddr & -sizeof (int);
-      data = ptrace (3, inferior_pid, rounded_addr, 0);
+      data = ptrace (3, inferior_pid, (PTRACE_ARG3_TYPE) rounded_addr, 0);
       mask = 0xff << ((uaddr - rounded_addr) * 8);
       
       fpvalid = ((data & mask) != 0);
@@ -229,7 +229,7 @@ i386_float_info ()
       ip = (int *)buf;
       for (i = 0; i < rounded_size; i++) 
        {
-         *ip++ = ptrace (3, inferior_pid, rounded_addr, 0);
+         *ip++ = ptrace (3, inferior_pid, (PTRACE_ARG3_TYPE) rounded_addr, 0);
          rounded_addr += sizeof (int);
        }
     } 
index 22b4968c573be675bf22185f5c28a50f700e4ade..8d9a6aac1534a75f6031fc802f49bb5970dd1618 100644 (file)
@@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-#include <stdio.h>
 #include "defs.h"
 #include "frame.h"
 #include "inferior.h"
@@ -37,7 +36,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include <sys/param.h>
 #include <signal.h>
 
-extern char *strerror();               /* strings corresponding to errno */
+static void
+kill_command PARAMS ((char *, int));
+
+static void
+terminal_ours_1 PARAMS ((int));
 
 extern struct target_ops child_ops;
 
@@ -51,10 +54,10 @@ int attach_flag;
 
 /* Does GDB have a terminal (on stdin)?  */
 int gdb_has_a_terminal;
-
+#if !defined(__GO32__)
 static TERMINAL sg_inferior;
 static TERMINAL sg_ours;
-
+#endif
 static int tflags_inferior;
 static int tflags_ours;
 
@@ -111,6 +114,7 @@ static void terminal_ours_1 ();
 void
 terminal_init_inferior ()
 {
+#if !defined(__GO32__)
   sg_inferior = sg_ours;
   tflags_inferior = tflags_ours;
 
@@ -129,7 +133,7 @@ terminal_init_inferior ()
 #ifdef TIOCGPGRP
   pgrp_inferior = inferior_pid;
 #endif /* TIOCGPGRP */
-
+#endif
   terminal_is_ours = 1;
 }
 
@@ -139,6 +143,7 @@ terminal_init_inferior ()
 void
 terminal_inferior ()
 {
+#if !defined(__GO32__)
   int result;
 
   if (gdb_has_a_terminal && terminal_is_ours && inferior_thisrun_terminal == 0)
@@ -175,6 +180,7 @@ terminal_inferior ()
       sigquit_ours = (void (*) ()) signal (SIGQUIT, SIG_IGN);
 #endif /* TIOCGPGRP */
     }
+#endif
   terminal_is_ours = 0;
 }
 
@@ -206,6 +212,7 @@ static void
 terminal_ours_1 (output_only)
      int output_only;
 {
+#if !defined(__GO32__)
   int result;
 #ifdef TIOCGPGRP
   /* Ignore this signal since it will happen when we try to set the pgrp.  */
@@ -278,6 +285,9 @@ terminal_ours_1 (output_only)
 #else /* not HAVE_TERMIO */
   sg_ours.sg_flags &= ~RAW & ~CBREAK;
 #endif /* not HAVE_TERMIO */
+
+  result = result;     /* lint */
+#endif
 }
 
 /* ARGSUSED */
@@ -301,7 +311,7 @@ child_terminal_info (args, from_tty)
     printf_filtered ("This GDB does not control a terminal.\n");
     return;
   }
-
+#if !defined(__GO32__)
 #ifdef TIOCGPGRP
   printf_filtered ("Inferior's terminal status (currently saved by GDB):\n");
 
@@ -343,6 +353,10 @@ child_terminal_info (args, from_tty)
 #ifdef TIOCLGET
   printf_filtered ("lmode:  0x%x\n", lmode_inferior);
 #endif
+#else
+  printf_filtered("This is a DOS machine; there is no terminal state\n");
+#endif
+
 }
 \f
 /* NEW_TTY_PREFORK is called before forking a new child process,
@@ -367,17 +381,22 @@ void
 new_tty ()
 {
   register int tty;
+  void (*osigttou) ();
 
   if (inferior_thisrun_terminal == 0)
     return;
-
+#if !defined(__GO32__)
 #ifdef TIOCNOTTY
-  /* Disconnect the child process from our controlling terminal.  */
+  /* Disconnect the child process from our controlling terminal.  On some
+     systems (SVR4 for example), this may cause a SIGTTOU, so temporarily
+     ignore SIGTTOU. */
   tty = open("/dev/tty", O_RDWR);
   if (tty > 0)
     {
+      osigttou = (void (*)()) signal(SIGTTOU, SIG_IGN);
       ioctl(tty, TIOCNOTTY, 0);
       close(tty);
+      (void) signal(SIGTTOU, osigttou);
     }
 #endif
 
@@ -403,6 +422,7 @@ new_tty ()
     { close (2); dup (tty); }
   if (tty > 2)
     close(tty);
+#endif /* !go32*/o
 }
 \f
 /* Kill the inferior process.  Make us have no inferior.  */
@@ -492,8 +512,8 @@ try_writing_regs_command (arg, from_tty)
     {
       QUIT;
       errno = 0;
-      value = call_ptrace (3, inferior_pid, i, 0);
-      call_ptrace (6, inferior_pid, i, value);
+      value = call_ptrace (3, inferior_pid, (PTRACE_ARG3_TYPE) i, 0);
+      call_ptrace (6, inferior_pid, (PTRACE_ARG3_TYPE) i, value);
       if (errno == 0)
        {
          printf (" Succeeded with address 0x%x; value 0x%x (%d).\n",
@@ -527,8 +547,8 @@ Report which ones can be written.");
   /* Get all the current tty settings (including whether we have a tty at
      all!).  */
 
+#if !defined(__GO32__)
   tflags_ours = fcntl (0, F_GETFL, 0);
-  OOPSY ("fcntl F_GETFL");             /* Should always work */
 
   result = ioctl (0, TIOCGETP, &sg_ours);
   if (result == 0) {
@@ -549,6 +569,10 @@ Report which ones can be written.");
   } else {
     gdb_has_a_terminal = 0;
   }
+#else
+  gdb_has_a_terminal = 0;
+#endif
+
 
   terminal_is_ours = 1;
 }
index 3c26c870955f10bfe50fe85b6d4774bb68edd73c..52461579cbb16f2017d9f21fcbfb8485e9f48687 100644 (file)
@@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-#include <stdio.h>
 #include "defs.h"
 #include "frame.h"
 #include "inferior.h"
@@ -66,13 +65,16 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include <a.out.h>             /* For struct nlist */
 #endif /* KERNEL_U_ADDR_BSD.  */
 #endif /* !FETCH_INFERIOR_REGISTERS */
+
 \f
 /* This function simply calls ptrace with the given arguments.  
    It exists so that all calls to ptrace are isolated in this 
    machine-dependent file. */
 int
 call_ptrace (request, pid, addr, data)
-     int request, pid, *addr, data;
+     int request, pid;
+     PTRACE_ARG3_TYPE addr;
+     int data;
 {
   return ptrace (request, pid, addr, data);
 }
@@ -90,7 +92,7 @@ kill_inferior_fast ()
 {
   if (inferior_pid == 0)
     return;
-  ptrace (PT_KILL, inferior_pid, 0, 0);
+  ptrace (PT_KILL, inferior_pid, (PTRACE_ARG3_TYPE) 0, 0);
   wait ((int *)0);
 }
 
@@ -112,14 +114,22 @@ child_resume (step, signal)
 {
   errno = 0;
 
-  /* An address of (int *)1 tells ptrace to continue from where it was. 
-     (If GDB wanted it to start some other way, we have already written
-     a new PC value to the child.)  */
+  /* An address of (PTRACE_ARG3_TYPE)1 tells ptrace to continue from where
+     it was.  (If GDB wanted it to start some other way, we have already
+     written a new PC value to the child.)  */
 
   if (step)
-    ptrace (PT_STEP, inferior_pid, (int *)1, signal);
+#ifdef NO_SINGLE_STEP
+    single_step (signal);
+#else    
+    ptrace (PT_STEP, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal);
+#endif
   else
-    ptrace (PT_CONTINUE, inferior_pid, (int *)1, signal);
+#ifdef AIX_BUGGY_PTRACE_CONTINUE
+    AIX_BUGGY_PTRACE_CONTINUE;
+#else
+    ptrace (PT_CONTINUE, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal);
+#endif
 
   if (errno)
     perror_with_name ("ptrace");
@@ -136,7 +146,7 @@ attach (pid)
      int pid;
 {
   errno = 0;
-  ptrace (PT_ATTACH, pid, 0, 0);
+  ptrace (PT_ATTACH, pid, (PTRACE_ARG3_TYPE) 0, 0);
   if (errno)
     perror_with_name ("ptrace");
   attach_flag = 1;
@@ -152,7 +162,7 @@ detach (signal)
      int signal;
 {
   errno = 0;
-  ptrace (PT_DETACH, inferior_pid, 1, signal);
+  ptrace (PT_DETACH, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal);
   if (errno)
     perror_with_name ("ptrace");
   attach_flag = 0;
@@ -211,7 +221,8 @@ void _initialize_kernel_u_addr ()
 #if !defined (U_REGS_OFFSET)
 #define U_REGS_OFFSET \
   ptrace (PT_READ_U, inferior_pid, \
-         (int *)(offsetof (struct user, u_ar0)), 0) - KERNEL_U_ADDR
+         (PTRACE_ARG3_TYPE) (offsetof (struct user, u_ar0)), 0) \
+    - KERNEL_U_ADDR
 #endif
 
 /* Registers we shouldn't try to fetch.  */
@@ -246,7 +257,8 @@ fetch_register (regno)
   for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
     {
       errno = 0;
-      *(int *) &buf[i] = ptrace (PT_READ_U, inferior_pid, (int *)regaddr, 0);
+      *(int *) &buf[i] = ptrace (PT_READ_U, inferior_pid,
+                                (PTRACE_ARG3_TYPE) regaddr, 0);
       regaddr += sizeof (int);
       if (errno != 0)
        {
@@ -280,7 +292,7 @@ fetch_inferior_registers (regno)
    If REGNO is -1, do this for all registers.
    Otherwise, REGNO specifies which register (so we can save time).  */
 
-int
+void
 store_inferior_registers (regno)
      int regno;
 {
@@ -288,7 +300,6 @@ store_inferior_registers (regno)
   char buf[80];
   extern char registers[];
   register int i;
-  int result = 0;
 
   unsigned int offset = U_REGS_OFFSET;
 
@@ -298,13 +309,12 @@ store_inferior_registers (regno)
       for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof(int))
        {
          errno = 0;
-         ptrace (PT_WRITE_U, inferior_pid, (int *)regaddr,
+         ptrace (PT_WRITE_U, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
                  *(int *) &registers[REGISTER_BYTE (regno) + i]);
          if (errno != 0)
            {
              sprintf (buf, "writing register number %d(%d)", regno, i);
              perror_with_name (buf);
-             result = -1;
            }
          regaddr += sizeof(int);
        }
@@ -319,19 +329,17 @@ store_inferior_registers (regno)
          for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof(int))
            {
              errno = 0;
-             ptrace (PT_WRITE_U, inferior_pid, (int *)regaddr,
+             ptrace (PT_WRITE_U, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
                      *(int *) &registers[REGISTER_BYTE (regno) + i]);
              if (errno != 0)
                {
                  sprintf (buf, "writing register number %d(%d)", regno, i);
                  perror_with_name (buf);
-                 result = -1;
                }
              regaddr += sizeof(int);
            }
        }
     }
-  return result;
 }
 #endif /* !defined (FETCH_INFERIOR_REGISTERS).  */
 \f
@@ -373,14 +381,16 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
 
       if (addr != memaddr || len < (int)sizeof (int)) {
        /* Need part of initial word -- fetch it.  */
-        buffer[0] = ptrace (PT_READ_I, inferior_pid, (int *)addr, 0);
+        buffer[0] = ptrace (PT_READ_I, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+                           0);
       }
 
       if (count > 1)           /* FIXME, avoid if even boundary */
        {
          buffer[count - 1]
            = ptrace (PT_READ_I, inferior_pid,
-                     (int *)(addr + (count - 1) * sizeof (int)), 0);
+                     (PTRACE_ARG3_TYPE) (addr + (count - 1) * sizeof (int)),
+                     0);
        }
 
       /* Copy data to be written over corresponding part of buffer */
@@ -392,13 +402,15 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
       for (i = 0; i < count; i++, addr += sizeof (int))
        {
          errno = 0;
-         ptrace (PT_WRITE_D, inferior_pid, (int *)addr, buffer[i]);
+         ptrace (PT_WRITE_D, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+                 buffer[i]);
          if (errno)
            {
              /* Using the appropriate one (I or D) is necessary for
                 Gould NP1, at least.  */
              errno = 0;
-             ptrace (PT_WRITE_I, inferior_pid, (int *)addr, buffer[i]);
+             ptrace (PT_WRITE_I, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+                     buffer[i]);
            }
          if (errno)
            return 0;
@@ -410,7 +422,8 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
       for (i = 0; i < count; i++, addr += sizeof (int))
        {
          errno = 0;
-         buffer[i] = ptrace (PT_READ_I, inferior_pid, (int *)addr, 0);
+         buffer[i] = ptrace (PT_READ_I, inferior_pid,
+                             (PTRACE_ARG3_TYPE) addr, 0);
          if (errno)
            return 0;
          QUIT;
index e23f5016d050105e3ffcaf63167b6b91bf859e47..924bfcd63203f35d58dd7614d4ebd5d957afa53c 100644 (file)
@@ -581,9 +581,11 @@ child_create_inferior (exec_file, allargs, env)
         for the inferior.  */
 
 #ifdef USE_PROC_FS
-      proc_set_exec_trap ();           /* Use SVR4 /proc interface */
+      /* Use SVR4 /proc interface */
+      proc_set_exec_trap ();
 #else
-      call_ptrace (0, 0, 0, 0);                /* "Trace me, Dr. Memory!" */
+      /* "Trace me, Dr. Memory!" */
+      call_ptrace (0, 0, (PTRACE_ARG3_TYPE) 0, 0);
 #endif
 
       /* There is no execlpe call, so we have to set the environment
index d2d338dae1fd7858388c5bc6fd552bf7a386f329..9c4d1c558532978377ca448361ca647a18e5a208 100644 (file)
@@ -78,7 +78,7 @@ fetch_inferior_registers (regno)
   offset = (char *) &u.pt_r0 - (char *) &u; 
   regaddr = offset; /* byte offset to r0;*/
 
-/*  offset = ptrace (3, inferior_pid, offset, 0) - KERNEL_U_ADDR; */
+/*  offset = ptrace (3, inferior_pid, (PTRACE_ARG3_TYPE) offset, 0) - KERNEL_U_ADDR; */
   for (regno = 0; regno < NUM_REGS; regno++)
     {
       /*regaddr = register_addr (regno, offset);*/
@@ -86,17 +86,21 @@ fetch_inferior_registers (regno)
         
       for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
        {
-         *(int *) &buf[i] = ptrace (3, inferior_pid, regaddr, 0);
+         *(int *) &buf[i] = ptrace (3, inferior_pid,
+                                    (PTRACE_ARG3_TYPE) regaddr, 0);
          regaddr += sizeof (int);
        }
       supply_register (regno, buf);
     }
     /* now load up registers 36 - 38; special pc registers */
-    *(int *) &buf[0] = ptrace (3,inferior_pid,SXIP_OFFSET ,0);
+    *(int *) &buf[0] = ptrace (3,inferior_pid,
+                              (PTRACE_ARG3_TYPE) SXIP_OFFSET ,0);
     supply_register (SXIP_REGNUM, buf);
-    *(int *) &buf[0] = ptrace (3, inferior_pid,SNIP_OFFSET,0);
+    *(int *) &buf[0] = ptrace (3, inferior_pid,
+                              (PTRACE_ARG3_TYPE) SNIP_OFFSET,0);
     supply_register (SNIP_REGNUM, buf);
-    *(int *) &buf[0] = ptrace (3, inferior_pid,SFIP_OFFSET,0);
+    *(int *) &buf[0] = ptrace (3, inferior_pid,
+                              (PTRACE_ARG3_TYPE) SFIP_OFFSET,0);
     supply_register (SFIP_REGNUM, buf);
 }
 
@@ -125,7 +129,8 @@ store_inferior_registers (regno)
            { 
             regaddr = offset + regno * sizeof (int);
              errno = 0;
-             ptrace (6, inferior_pid, regaddr, read_register (regno));
+             ptrace (6, inferior_pid,
+                    (PTRACE_ARG3_TYPE) regaddr, read_register (regno));
              if (errno != 0)
               {
                 sprintf (buf, "writing register number %d", regno);
@@ -133,11 +138,14 @@ store_inferior_registers (regno)
               }
            }
        else if (regno == SXIP_REGNUM)
-             ptrace (6, inferior_pid, SXIP_OFFSET, read_register(regno));
+             ptrace (6, inferior_pid,
+                    (PTRACE_ARG3_TYPE) SXIP_OFFSET, read_register(regno));
        else if (regno == SNIP_REGNUM)
-            ptrace (6, inferior_pid, SNIP_OFFSET, read_register(regno));
+            ptrace (6, inferior_pid,
+                    (PTRACE_ARG3_TYPE) SNIP_OFFSET, read_register(regno));
        else if (regno == SFIP_REGNUM)
-            ptrace (6, inferior_pid, SFIP_OFFSET, read_register(regno));
+            ptrace (6, inferior_pid,
+                    (PTRACE_ARG3_TYPE) SFIP_OFFSET, read_register(regno));
        else printf ("Bad register number for store_inferior routine\n");
     }
   else { 
@@ -146,16 +154,20 @@ store_inferior_registers (regno)
       /*      regaddr = register_addr (regno, offset); */
               errno = 0;
               regaddr = offset + regno * sizeof (int);
-              ptrace (6, inferior_pid, regaddr, read_register (regno));
+              ptrace (6, inferior_pid,
+                     (PTRACE_ARG3_TYPE) regaddr, read_register (regno));
               if (errno != 0)
                {
                  sprintf (buf, "writing register number %d", regno);
                  perror_with_name (buf);
                }
            }
-        ptrace (6,inferior_pid,SXIP_OFFSET,read_register(SXIP_REGNUM));
-        ptrace (6,inferior_pid,SNIP_OFFSET,read_register(SNIP_REGNUM));
-        ptrace (6,inferior_pid,SFIP_OFFSET,read_register(SFIP_REGNUM));
+        ptrace (6,inferior_pid,
+                (PTRACE_ARG3_TYPE) SXIP_OFFSET,read_register(SXIP_REGNUM));
+        ptrace (6,inferior_pid,
+                (PTRACE_ARG3_TYPE) SNIP_OFFSET,read_register(SNIP_REGNUM));
+        ptrace (6,inferior_pid,
+                (PTRACE_ARG3_TYPE) SFIP_OFFSET,read_register(SFIP_REGNUM));
        }       
            
 
index 10777857c6ccf1726889b68d2a0b28b3cbb1b286..8f7ca166a47f3a9bc460d1b0f1f278539deebc6d 100644 (file)
@@ -49,8 +49,10 @@ fetch_inferior_registers (regno)
 
   registers_fetched ();
 
-  ptrace (PTRACE_GETREGS, inferior_pid, &inferior_registers);
-  ptrace (PTRACE_GETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_GETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers);
+  ptrace (PTRACE_GETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 
   bcopy (&inferior_registers, registers, sizeof inferior_registers);
 
@@ -87,20 +89,24 @@ store_inferior_registers (regno)
        instruction that moves eax into ebp gets single-stepped.  */
     {
       int stack = inferior_registers.r_reg[SP_REGNUM];
-      int stuff = ptrace (PTRACE_PEEKDATA, inferior_pid, stack);
+      int stuff = ptrace (PTRACE_PEEKDATA, inferior_pid,
+                         (PTRACE_ARG3_TYPE) stack);
       int reg = inferior_registers.r_reg[EAX];
       inferior_registers.r_reg[EAX] =
        inferior_registers.r_reg[FP_REGNUM];
-      ptrace (PTRACE_SETREGS, inferior_pid, &inferior_registers);
-      ptrace (PTRACE_POKEDATA, inferior_pid, stack, 0xc589);
-      ptrace (PTRACE_SINGLESTEP, inferior_pid, stack, 0);
+      ptrace (PTRACE_SETREGS, inferior_pid,
+             (PTRACE_ARG3_TYPE) &inferior_registers);
+      ptrace (PTRACE_POKEDATA, inferior_pid, (PTRACE_ARG3_TYPE) stack, 0xc589);
+      ptrace (PTRACE_SINGLESTEP, inferior_pid, (PTRACE_ARG3_TYPE) stack, 0);
       wait (0);
-      ptrace (PTRACE_POKEDATA, inferior_pid, stack, stuff);
+      ptrace (PTRACE_POKEDATA, inferior_pid, (PTRACE_ARG3_TYPE) stack, stuff);
       inferior_registers.r_reg[EAX] = reg;
     }
 #endif
-  ptrace (PTRACE_SETREGS, inferior_pid, &inferior_registers);
-  ptrace (PTRACE_SETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_SETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers);
+  ptrace (PTRACE_SETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 }
 
 #else /* Not mach386 target.  */
index e08ee6fc16b6de7d1b754ee38e0d47836723eefb..511c8c5f803517976c9caff3104e47a460fc3ca5 100644 (file)
@@ -105,7 +105,8 @@ fetch_inferior_registers (regno)
       regaddr = REGISTER_PTRACE_ADDR (regno);
       for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
        {
-         *(int *) &buf[i] = ptrace (3, inferior_pid, regaddr, 0);
+         *(int *) &buf[i] = ptrace (3, inferior_pid,
+                                    (PTRACE_ARG3_TYPE) regaddr, 0);
          regaddr += sizeof (int);
        }
       supply_register (regno, buf);
@@ -130,7 +131,8 @@ store_inferior_registers (regno)
     {
       regaddr = REGISTER_PTRACE_ADDR (regno);
       errno = 0;
-      ptrace (6, inferior_pid, regaddr, read_register (regno));
+      ptrace (6, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
+             read_register (regno));
       if (errno != 0)
        {
          sprintf (buf, "writing register number %d", regno);
@@ -148,7 +150,8 @@ store_inferior_registers (regno)
            continue;
          regaddr = register_addr (regno, 1);
          errno = 0;
-         ptrace (6, inferior_pid, regaddr, read_register (regno));
+         ptrace (6, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
+                 read_register (regno));
          if (errno != 0)
            {
              sprintf (buf, "writing all regs, number %d", regno);
index 02530127a83aa34964802f8d7bff2d00778289e9..da7150c19be94117eb66c453b53bd6f7b1f0e83d 100644 (file)
@@ -40,9 +40,11 @@ fetch_inferior_registers ()
 
   registers_fetched ();
   
-  ptrace (PTRACE_GETREGS, inferior_pid, &inferior_registers);
+  ptrace (PTRACE_GETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers);
 #ifdef FP0_REGNUM
-  ptrace (PTRACE_GETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_GETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 #endif 
   
   bcopy (&inferior_registers, registers, 16 * 4);
@@ -86,9 +88,11 @@ store_inferior_registers (regno)
         sizeof inferior_fp_registers - sizeof inferior_fp_registers.fps_regs);
 #endif
 
-  ptrace (PTRACE_SETREGS, inferior_pid, &inferior_registers);
+  ptrace (PTRACE_SETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers);
 #if FP0_REGNUM
-  ptrace (PTRACE_SETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_SETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 #endif
 }
 
index aa4561a3e86aa6dda9ad0ee6a4d62461c30e1dac..251ddb4786ac49c546229e7a26c57f827dd712b9 100644 (file)
@@ -1007,7 +1007,7 @@ GLOBAL FUNCTION
 
 SYNOPSIS
 
-       int ptrace (int request, int pid, int arg3, int arg4)
+       int ptrace (int request, int pid, PTRACE_ARG3_TYPE arg3, int arg4)
 
 DESCRIPTION
 
@@ -1022,7 +1022,7 @@ int
 ptrace (request, pid, arg3, arg4)
      int request;
      int pid;
-     int arg3;
+     PTRACE_ARG3_TYPE arg3;
      int arg4;
 {
   error ("internal error - there is a call to ptrace() somewhere");
index 7dc2f47b71d1cb5adaf01b57d8800d47c82a0aa5..69b84eb521330ae29e96c98ca8c679e9ade34f86 100644 (file)
@@ -37,11 +37,11 @@ pyr_print_registers(reg_buf, regnum)
                     reg_names[regno+48], reg_buf[regno+48]);
   }
   usp = ptrace (3, inferior_pid,
-                     ((char *)&u.u_pcb.pcb_usp) -
-                     ((char *)&u), 0);
+               (PTRACE_ARG3_TYPE) ((char *)&u.u_pcb.pcb_usp) -
+               ((char *)&u), 0);
   ksp = ptrace (3, inferior_pid,
-                     ((char *)&u.u_pcb.pcb_ksp) -
-                     ((char *)&u), 0);
+               (PTRACE_ARG3_TYPE) ((char *)&u.u_pcb.pcb_ksp) -
+               ((char *)&u), 0);
   printf/*_filtered*/ ("\n%6.6s: %8x  %6.6s: %8x (%08x) %6.6s %8x\n",
                   reg_names[CSP_REGNUM],reg_buf[CSP_REGNUM],
                   reg_names[KSP_REGNUM], reg_buf[KSP_REGNUM], ksp,
index 4517c0b2224c080146c9bff09f919c3d198ba23e..84b01565a880621a24dabe92309f88e265d2d92e 100644 (file)
@@ -46,7 +46,7 @@ fetch_inferior_registers (regno)
   registers_fetched ();
   
   for (regno = 0; regno < 64; regno++) {
-    reg_buf[regno] = ptrace (3, inferior_pid, regno, 0);
+    reg_buf[regno] = ptrace (3, inferior_pid, (PTRACE_ARG3_TYPE) regno, 0);
     
 #if defined(PYRAMID_CONTROL_FRAME_DEBUGGING)
     printf ("Fetching %s from inferior, got %0x\n",
@@ -63,8 +63,8 @@ fetch_inferior_registers (regno)
   }
   /* that leaves regs 64, 65, and 66 */
   datum = ptrace (3, inferior_pid,
-                 ((char *)&u.u_pcb.pcb_csp) -
-                 ((char *)&u), 0);
+                 (PTRACE_ARG3_TYPE) (((char *)&u.u_pcb.pcb_csp) -
+                 ((char *)&u)), 0);
   
   
   
@@ -100,7 +100,8 @@ fetch_inferior_registers (regno)
   
   while (1) {
     register int inferior_saved_pc;
-    inferior_saved_pc = ptrace (1, inferior_pid, datum+((32+15)*4), 0);
+    inferior_saved_pc = ptrace (1, inferior_pid,
+                               (PTRACE_ARG3_TYPE) (datum+((32+15)*4)), 0);
     if (inferior_saved_pc > 0) break;
 #if defined(PYRAMID_CONTROL_FRAME_DEBUGGING)
     printf("skipping kernel frame %08x, pc=%08x\n", datum,
@@ -138,7 +139,8 @@ store_inferior_registers (regno)
        /*regaddr = register_addr (regno, offset);*/
        regaddr = regno;
        errno = 0;
-       ptrace (6, inferior_pid, regaddr, read_register (regno));
+       ptrace (6, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
+               read_register (regno));
        if (errno != 0)
          {
            sprintf (buf, "writing register number %d", regno);
@@ -153,7 +155,8 @@ store_inferior_registers (regno)
          /*regaddr = register_addr (regno, offset);*/
          regaddr = regno;
          errno = 0;
-         ptrace (6, inferior_pid, regaddr, read_register (regno));
+         ptrace (6, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
+                 read_register (regno));
          if (errno != 0)
            {
              sprintf (buf, "writing all regs, number %d", regno);
index 681a3145305c6bcbf7ff11ba917aa9c3cc7efc53..f38a02e85e02108976dd1d3ddd91c6d5dd1fcc77 100644 (file)
@@ -174,7 +174,8 @@ int remote_desc = -1;
 /* Called when SIGALRM signal sent due to alarm() timeout.  */
 #ifndef HAVE_TERMIO
 void
-remote_timer ()
+remote_timer (signo)
+     int signo;
 {
   if (kiodebug)
     printf ("remote_timer called\n");
@@ -391,7 +392,8 @@ remote_resume (step, siggnal)
 /* Send ^C to target to halt it.  Target will respond, and send us a
    packet.  */
 
-void remote_interrupt()
+void remote_interrupt(signo)
+     int signo;
 {
   
   if (kiodebug)
index 1a26ab2e3ac000ad90db1ae8d7ca7ed7f7f94599..290fb7747e756e2b3a740bd974502f9a6371b54b 100644 (file)
@@ -143,7 +143,7 @@ int signal;
     }  
 
     one_stepped = 1;
-    ptrace (PT_CONTINUE, inferior_pid, 1, signal, 0);
+    ptrace (PT_CONTINUE, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal, 0);
   }
   else {
 
index 516331da20e8b04282542fee62666f148dfd75fd..b4a1851e390d564d467cbbc2638156f28219cb62 100644 (file)
@@ -75,18 +75,20 @@ fetch_inferior_registers (regno)
 
     for (ii=0; ii < 32; ++ii)
       *(int*)&registers[REGISTER_BYTE (ii)] = 
-       ptrace (PT_READ_GPR, inferior_pid, ii, 0, 0);
+       ptrace (PT_READ_GPR, inferior_pid, (PTRACE_ARG3_TYPE) ii, 0, 0);
 
     /* read general purpose floating point registers. */
 
     for (ii=0; ii < 32; ++ii)
       ptrace (PT_READ_FPR, inferior_pid, 
-       (int*)&registers [REGISTER_BYTE (FP0_REGNUM+ii)], FPR0+ii, 0);
+       (PTRACE_ARG3_TYPE) &registers [REGISTER_BYTE (FP0_REGNUM+ii)],
+             FPR0+ii, 0);
 
     /* read special registers. */
     for (ii=0; ii <= LAST_SP_REGNUM-FIRST_SP_REGNUM; ++ii)
       *(int*)&registers[REGISTER_BYTE (FIRST_SP_REGNUM+ii)] = 
-       ptrace (PT_READ_GPR, inferior_pid, special_regs[ii], 0, 0);
+       ptrace (PT_READ_GPR, inferior_pid, (PTRACE_ARG3_TYPE) special_regs[ii],
+               0, 0);
 
     registers_fetched ();
     return;
@@ -96,16 +98,17 @@ fetch_inferior_registers (regno)
 
   else if (regno < FP0_REGNUM) {               /* a GPR */
     *(int*)&registers[REGISTER_BYTE (regno)] =
-       ptrace (PT_READ_GPR, inferior_pid, regno, 0, 0);
+       ptrace (PT_READ_GPR, inferior_pid, (PTRACE_ARG3_TYPE) regno, 0, 0);
   }
   else if (regno <= FPLAST_REGNUM) {           /* a FPR */
     ptrace (PT_READ_FPR, inferior_pid,
-       (int*)&registers [REGISTER_BYTE (regno)], (regno-FP0_REGNUM+FPR0), 0);
+       (PTRACE_ARG3_TYPE) &registers [REGISTER_BYTE (regno)],
+           (regno-FP0_REGNUM+FPR0), 0);
   }
   else if (regno <= LAST_SP_REGNUM) {          /* a special register */
     *(int*)&registers[REGISTER_BYTE (regno)] =
        ptrace (PT_READ_GPR, inferior_pid,
-               special_regs[regno-FIRST_SP_REGNUM], 0, 0);
+               (PTRACE_ARG3_TYPE) special_regs[regno-FIRST_SP_REGNUM], 0, 0);
   }
   else
     fprintf (stderr, "gdb error: register no %d not implemented.\n", regno);
@@ -137,7 +140,7 @@ store_inferior_registers (regno)
 
       /* write general purpose registers first! */
       for ( ii=GPR0; ii<=GPR31; ++ii) {
-       ptrace (PT_WRITE_GPR, inferior_pid, ii,
+       ptrace (PT_WRITE_GPR, inferior_pid, (PTRACE_ARG3_TYPE) ii,
                *(int*)&registers[REGISTER_BYTE (ii)], 0);
        if ( errno ) { 
          perror ("ptrace write_gpr"); errno = 0;
@@ -147,7 +150,8 @@ store_inferior_registers (regno)
       /* write floating point registers now. */
       for ( ii=0; ii < 32; ++ii) {
        ptrace (PT_WRITE_FPR, inferior_pid, 
-                 (int*)&registers[REGISTER_BYTE (FP0_REGNUM+ii)], FPR0+ii, 0);
+                 (PTRACE_ARG3_TYPE) &registers[REGISTER_BYTE (FP0_REGNUM+ii)],
+               FPR0+ii, 0);
         if ( errno ) {
          perror ("ptrace write_fpr"); errno = 0;
         }
@@ -155,8 +159,9 @@ store_inferior_registers (regno)
 
       /* write special registers. */
       for (ii=0; ii <= LAST_SP_REGNUM-FIRST_SP_REGNUM; ++ii) {
-        ptrace (PT_WRITE_GPR, inferior_pid, special_regs[ii],
-                *(int*)&registers[REGISTER_BYTE (FIRST_SP_REGNUM+ii)], 0);
+        ptrace (PT_WRITE_GPR, inferior_pid,
+               (PTRACE_ARG3_TYPE) special_regs[ii],
+               *(int*)&registers[REGISTER_BYTE (FIRST_SP_REGNUM+ii)], 0);
        if ( errno ) {
          perror ("ptrace write_gpr"); errno = 0;
        }
@@ -167,19 +172,21 @@ store_inferior_registers (regno)
 
   else if (regno < FP0_REGNUM) {               /* a GPR */
 
-    ptrace (PT_WRITE_GPR, inferior_pid, regno,
+    ptrace (PT_WRITE_GPR, inferior_pid, (PTRACE_ARG3_TYPE) regno,
                *(int*)&registers[REGISTER_BYTE (regno)], 0);
   }
 
   else if (regno <= FPLAST_REGNUM) {           /* a FPR */
     ptrace (PT_WRITE_FPR, inferior_pid, 
-       (int*)&registers[REGISTER_BYTE (regno)], regno-FP0_REGNUM+FPR0, 0);
+           (PTRACE_ARG3_TYPE) &registers[REGISTER_BYTE (regno)],
+           regno-FP0_REGNUM+FPR0, 0);
   }
 
   else if (regno <= LAST_SP_REGNUM) {          /* a special register */
 
-    ptrace (PT_WRITE_GPR, inferior_pid, special_regs [regno-FIRST_SP_REGNUM],
-               *(int*)&registers[REGISTER_BYTE (regno)], 0);
+    ptrace (PT_WRITE_GPR, inferior_pid,
+           (PTRACE_ARG3_TYPE) special_regs [regno-FIRST_SP_REGNUM],
+           *(int*)&registers[REGISTER_BYTE (regno)], 0);
   }
 
   else
@@ -382,7 +389,8 @@ unsigned int pid;
     usleep (36000);
 
     errno = 0;
-    ptrace(PT_LDINFO, pid, ldi, MAX_LOAD_SEGS * sizeof(*ldi), ldi);
+    ptrace(PT_LDINFO, pid, (PTRACE_ARG3_TYPE) ldi,
+          MAX_LOAD_SEGS * sizeof(*ldi), ldi);
     if (errno) {
       perror_with_name ("ptrace ldinfo");
       return 0;
@@ -497,7 +505,7 @@ exec_one_dummy_insn ()
   target_insert_breakpoint (DUMMY_INSN_ADDR, &shadow);
 
   errno = 0;
-  ptrace (PT_CONTINUE, inferior_pid, DUMMY_INSN_ADDR, 0, 0);
+  ptrace (PT_CONTINUE, inferior_pid, (PTRACE_ARG3_TYPE) DUMMY_INSN_ADDR, 0, 0);
   if (errno)
     perror ("pt_continue");
 
index d9376241a2baeca58f0c2a670714453a71bdd019..3bf8f172bb19675e7137a2970a79dc72351c2d1a 100644 (file)
@@ -197,12 +197,12 @@ DEFUN(serial_write,(str, len),
       CONST char *str AND
       int len)
 {
-  write (desc, str, len);
+  return (write (desc, str, len));
 }
 
 
 int
 DEFUN_VOID(serial_close)
 {
-close(desc);
+  return (close(desc));
 }
index 01ae20410f72bd9ba93d4c5895acbd208f0a4c71..2cc150e19e8d347326d402d4a3f367661bfa0dc9 100644 (file)
@@ -71,8 +71,9 @@ fetch_inferior_registers (regno)
       || regno >= Y_REGNUM
       || (!register_valid[SP_REGNUM] && regno < I7_REGNUM))
     {
-      if (0 != ptrace (PTRACE_GETREGS, inferior_pid, &inferior_registers))
-           perror("ptrace_getregs");
+      if (0 != ptrace (PTRACE_GETREGS, inferior_pid,
+                      (PTRACE_ARG3_TYPE) &inferior_registers, 0))
+       perror("ptrace_getregs");
       
       registers[REGISTER_BYTE (0)] = 0;
       bcopy (&inferior_registers.r_g1, &registers[REGISTER_BYTE (1)], 15 * REGISTER_RAW_SIZE (G0_REGNUM));
@@ -98,7 +99,9 @@ fetch_inferior_registers (regno)
   /* Floating point registers */
   if (regno == -1 || (regno >= FP0_REGNUM && regno <= FP0_REGNUM + 31))
     {
-      if (0 != ptrace (PTRACE_GETFPREGS, inferior_pid, &inferior_fp_registers))
+      if (0 != ptrace (PTRACE_GETFPREGS, inferior_pid,
+                      (PTRACE_ARG3_TYPE) &inferior_fp_registers,
+                      0))
            perror("ptrace_getfpregs");
       bcopy (&inferior_fp_registers, &registers[REGISTER_BYTE (FP0_REGNUM)],
             sizeof inferior_fp_registers.fpu_fr);
@@ -218,7 +221,8 @@ store_inferior_registers (regno)
       inferior_registers.r_y =
        *(int *)&registers[REGISTER_BYTE (Y_REGNUM)];
 
-      if (0 != ptrace (PTRACE_SETREGS, inferior_pid, &inferior_registers))
+      if (0 != ptrace (PTRACE_SETREGS, inferior_pid,
+                      (PTRACE_ARG3_TYPE) &inferior_registers, 0))
        perror("ptrace_setregs");
     }
 
@@ -234,7 +238,8 @@ store_inferior_registers (regno)
             sizeof (FPU_FSR_TYPE));
 ****/
       if (0 !=
-        ptrace (PTRACE_SETFPREGS, inferior_pid, &inferior_fp_registers))
+        ptrace (PTRACE_SETFPREGS, inferior_pid,
+                (PTRACE_ARG3_TYPE) &inferior_fp_registers, 0))
         perror("ptrace_setfpregs");
     }
 }
index f6db72da0ec650c3d4b9cd29a25c62e02356e7a9..03cc3ae4913893f1766a0bcdfa69c8a0a94fe232 100644 (file)
@@ -41,9 +41,11 @@ fetch_inferior_registers (regno)
 
   registers_fetched ();
   
-  ptrace (PTRACE_GETREGS, inferior_pid, &inferior_registers);
+  ptrace (PTRACE_GETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers);
 #ifdef FP0_REGNUM
-  ptrace (PTRACE_GETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_GETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 #endif 
   
   bcopy (&inferior_registers, registers, 16 * 4);
@@ -88,9 +90,11 @@ store_inferior_registers (regno)
         sizeof inferior_fp_registers - sizeof inferior_fp_registers.fps_regs);
 #endif
 
-  ptrace (PTRACE_SETREGS, inferior_pid, &inferior_registers);
+  ptrace (PTRACE_SETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers);
 #if FP0_REGNUM
-  ptrace (PTRACE_SETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_SETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 #endif
 }
 
index e24111400ec5708e61db96c0770693710ccd2418..7da605b7f74ce82e72dd76706f0fc6ecfd97a15f 100644 (file)
@@ -51,8 +51,10 @@ fetch_inferior_registers (regno)
 
   registers_fetched ();
 
-  ptrace (PTRACE_GETREGS, inferior_pid, &inferior_registers);
-  ptrace (PTRACE_GETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_GETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers);
+  ptrace (PTRACE_GETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 
   bcopy (&inferior_registers, registers, sizeof inferior_registers);
 
@@ -89,20 +91,27 @@ store_inferior_registers (regno)
        instruction that moves eax into ebp gets single-stepped.  */
     {
       int stack = inferior_registers.r_reg[SP_REGNUM];
-      int stuff = ptrace (PTRACE_PEEKDATA, inferior_pid, stack);
+      int stuff = ptrace (PTRACE_PEEKDATA, inferior_pid,
+                         (PTRACE_ARG3_TYPE) stack);
       int reg = inferior_registers.r_reg[EAX];
       inferior_registers.r_reg[EAX] =
        inferior_registers.r_reg[FP_REGNUM];
-      ptrace (PTRACE_SETREGS, inferior_pid, &inferior_registers);
-      ptrace (PTRACE_POKEDATA, inferior_pid, stack, 0xc589);
-      ptrace (PTRACE_SINGLESTEP, inferior_pid, stack, 0);
+      ptrace (PTRACE_SETREGS, inferior_pid, 
+             (PTRACE_ARG3_TYPE) &inferior_registers);
+      ptrace (PTRACE_POKEDATA, inferior_pid, (PTRACE_ARG3_TYPE) stack,
+             0xc589);
+      ptrace (PTRACE_SINGLESTEP, inferior_pid, (PTRACE_ARG3_TYPE) stack,
+             0);
       wait (0);
-      ptrace (PTRACE_POKEDATA, inferior_pid, stack, stuff);
+      ptrace (PTRACE_POKEDATA, inferior_pid, (PTRACE_ARG3_TYPE) stack,
+             stuff);
       inferior_registers.r_reg[EAX] = reg;
     }
 #endif
-  ptrace (PTRACE_SETREGS, inferior_pid, &inferior_registers);
-  ptrace (PTRACE_SETFPREGS, inferior_pid, &inferior_fp_registers);
+  ptrace (PTRACE_SETREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_registers);
+  ptrace (PTRACE_SETFPREGS, inferior_pid,
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 }
 
 /* Machine-dependent code which would otherwise be in core.c */
index 65cab3494c931b4f73b835e7d16ea0259e0608c0..4ce743a521e9ecb1aa2af44020765f4bbc72d762 100644 (file)
@@ -70,7 +70,7 @@ int regno;
   else
     {
       reg_tmp = *(int *)&registers[REGISTER_BYTE(regno)];
-      ptrace(XPT_RREGS, inferior_pid, &regs, 0);
+      ptrace(XPT_RREGS, inferior_pid, (PTRACE_ARG3_TYPE) &regs, 0);
       switch (regno)
        {
        case 0:
@@ -106,7 +106,7 @@ int regno;
        }
     }
 #endif /* 0 */
-  ptrace(XPT_WREGS, inferior_pid, &regs, 0);
+  ptrace(XPT_WREGS, inferior_pid, (PTRACE_ARG3_TYPE) &regs, 0);
 }
 
 void
@@ -119,7 +119,7 @@ fetch_inferior_registers (regno)
 
     registers_fetched ();
     
-    ptrace(XPT_RREGS, inferior_pid, &regs, 0);
+    ptrace(XPT_RREGS, inferior_pid, (PTRACE_ARG3_TYPE) &regs, 0);
     *(int *)&registers[REGISTER_BYTE(0)] = regs.pr_eax;
     *(int *)&registers[REGISTER_BYTE(5)] = regs.pr_ebx;
     *(int *)&registers[REGISTER_BYTE(2)] = regs.pr_ecx;
@@ -427,7 +427,7 @@ i386_float_info ()
     extern int corechan;
     
     if (have_inferior_p()) {
-       call_ptrace(XPT_RREGS, inferior_pid, &regset, 0);
+       call_ptrace(XPT_RREGS, inferior_pid, (PTRACE_ARG3_TYPE) &regset, 0);
     } else {
        if (lseek (corechan, 0, 0) < 0) {
            perror ("seek on core file");
index dd27da6fa295ee607a3a574784b6c94e908d2005..43eb2d3ebb1fcecaad80c64b412204face41decf 100644 (file)
@@ -25,7 +25,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define AIX_BUGGY_PTRACE_CONTINUE      \
 { \
-  int ret = ptrace (PT_CONTINUE, inferior_pid, (int *)1, signal, 0); \
+  int ret = ptrace (PT_CONTINUE, inferior_pid, \
+                   (PTRACE_ARG3_TYPE) 1, signal, 0); \
   if (errno) { \
 /*    printf ("ret: %d, errno: %d, signal: %d\n", ret, errno, signal); */ \
     errno = 0; } \
index 82ad2867b42cf6e52ea64c9eafa62819ba1a550d..3fff182c506760785a5222502e4173274d203516 100644 (file)
@@ -72,7 +72,8 @@ fetch_register (regno)
     supply_register (regno, &val);
   } else {
     errno = 0;
-    val = ptrace (PT_READ_U, inferior_pid, (int*)register_addr(regno,0), 0);
+    val = ptrace (PT_READ_U, inferior_pid,
+                 (PTRACE_ARG3_TYPE) register_addr(regno,0), 0);
     if (errno != 0) {
       sprintf(buf,"reading register %s (#%d)",reg_names[regno],regno);
       perror_with_name (buf);
@@ -103,8 +104,9 @@ fetch_inferior_registers (regno)
 /* Global Registers */
 #ifdef ULTRA3
   errno = 0;
-  ptrace (PT_READ_STRUCT, inferior_pid, (int*)register_addr(GR96_REGNUM,0), 
-                                       (int)&pt_struct.pt_gr[0], 32*4);
+  ptrace (PT_READ_STRUCT, inferior_pid,
+         (PTRACE_ARG3_TYPE) register_addr(GR96_REGNUM,0), 
+         (int)&pt_struct.pt_gr[0], 32*4);
   if (errno != 0) {
       perror_with_name ("reading global registers");
       ret_val = -1;
@@ -119,8 +121,9 @@ fetch_inferior_registers (regno)
 /* Local Registers */
 #ifdef ULTRA3
   errno = 0;
-  ptrace (PT_READ_STRUCT, inferior_pid, (int*)register_addr(LR0_REGNUM,0), 
-                                       (int)&pt_struct.pt_lr[0], 128*4);
+  ptrace (PT_READ_STRUCT, inferior_pid,
+         (PTRACE_ARG3_TYPE) register_addr(LR0_REGNUM,0), 
+         (int)&pt_struct.pt_lr[0], 128*4);
   if (errno != 0) {
       perror_with_name ("reading local registers");
       ret_val = -1;
@@ -168,7 +171,8 @@ store_inferior_registers (regno)
        return;
       regaddr = register_addr (regno, 0);
       errno = 0;
-      ptrace (PT_WRITE_U, inferior_pid,(int*)regaddr,read_register(regno));
+      ptrace (PT_WRITE_U, inferior_pid,
+             (PTRACE_ARG3_TYPE) regaddr, read_register(regno));
       if (errno != 0)
        {
          sprintf (buf, "writing register %s (#%d)", reg_names[regno],regno);
@@ -184,8 +188,9 @@ store_inferior_registers (regno)
       for (regno = LR0_REGNUM; regno < LR0_REGNUM+128; regno++)
        pt_struct.pt_gr[regno] = read_register(regno);
       errno = 0;
-      ptrace (PT_WRITE_STRUCT, inferior_pid, (int*)register_addr(GR1_REGNUM,0), 
-                               (int)&pt_struct.pt_gr1,(1*32*128)*4);
+      ptrace (PT_WRITE_STRUCT, inferior_pid,
+             (PTRACE_ARG3_TYPE) register_addr(GR1_REGNUM,0), 
+             (int)&pt_struct.pt_gr1,(1*32*128)*4);
       if (errno != 0)
        {
           sprintf (buf, "writing all local/global registers");
@@ -202,8 +207,9 @@ store_inferior_registers (regno)
       pt_struct.pt_bp  = read_register(BP_REGNUM);
       pt_struct.pt_fc  = read_register(FC_REGNUM);
       errno = 0;
-      ptrace (PT_WRITE_STRUCT, inferior_pid, (int*)register_addr(CPS_REGNUM,0), 
-                               (int)&pt_struct.pt_psr,(10)*4);
+      ptrace (PT_WRITE_STRUCT, inferior_pid,
+             (PTRACE_ARG3_TYPE) register_addr(CPS_REGNUM,0), 
+             (int)&pt_struct.pt_psr,(10)*4);
       if (errno != 0)
        {
           sprintf (buf, "writing all special registers");
index b20a602eba11847677bc0adc7c64952c6426f35c..4a6133c544b98ed77dc3179d415634af0cdd5f7a 100644 (file)
@@ -48,3 +48,6 @@ extern char* malloc PARAMS (());
 extern char* realloc PARAMS (());
 extern int free PARAMS (());
 
+/* SunOS 4.x uses nonstandard "char *" as type of third argument to ptrace() */
+
+#define PTRACE_ARG3_TYPE char*