-/* Sun-3 Machine-dependent code which would otherwise be in inflow.c and core.c,
- for GDB, the GNU debugger.
- Copyright (C) 1986, 1987, 1989 Free Software Foundation, Inc.
+/* Host-dependent code for Sun-3 for GDB, the GNU debugger.
+ Copyright 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
This file is part of GDB.
-GDB is free software; you can redistribute it and/or modify
+This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
-GDB is distributed in the hope that it will be useful,
+This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GDB; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+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 "param.h"
#include "inferior.h"
+#include "gdbcore.h"
#include <sys/ptrace.h>
#define KERNEL /* To get floating point reg definitions */
#include <machine/reg.h>
-#include "gdbcore.h"
-
extern int errno;
-#if defined (TARGET_SUN3)
+#if defined (GDB_TARGET_IS_SUN3)
/* All of this stuff is only relevant if both host and target are sun3. */
void
-fetch_inferior_registers ()
+fetch_inferior_registers (regno)
+ int regno;
{
struct regs inferior_registers;
#ifdef FP0_REGNUM
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);
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;
{
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
}
/* Machine-dependent code for pulling registers out of a Sun-3 core file. */
void
-fetch_core_registers (core_reg_sect, core_reg_size, which)
+fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
char *core_reg_sect;
unsigned core_reg_size;
int which;
+ unsigned int reg_addr; /* Unused in this version */
{
extern char registers[];
struct regs *regs = (struct regs *) core_reg_sect;
error ("Can't find registers in core file");
bcopy ((char *)regs, registers, 16 * 4);
- supply_register (PS_REGNUM, ®s->r_ps);
- supply_register (PC_REGNUM, ®s->r_pc);
+ supply_register (PS_REGNUM, (char *)®s->r_ps);
+ supply_register (PC_REGNUM, (char *)®s->r_pc);
} else if (which == 2) {
#else /* Not sun3 target. */
/* These functions shouldn't be called when we're cross-debugging. */
+/* ARGSUSED */
void
-fetch_inferior_registers ()
+fetch_inferior_registers (regno)
+ int regno;
{
}
/* ARGSUSED */
+void
store_inferior_registers (regno)
int regno;
{
/* ARGSUSED */
void
-fetch_core_registers (core_reg_sect, core_reg_size, which)
+fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
char *core_reg_sect;
unsigned core_reg_size;
int which;
+ unsigned int reg_addr; /* Unused in this version */
{
}
#endif /* Not sun3 target. */