X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsparc-xdep.c;h=a040bf5ffb3717ff12cddacf2bd406c2a21023e9;hb=fe6745b544392b5a8d00cc1fd4fd4db560717491;hp=e85caac1abe8fdee5a7c1770a182cb5b8c828159;hpb=2e00f40a385a94838f7d74c508cedc7975463a22;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sparc-xdep.c b/gdb/sparc-xdep.c index e85caac1ab..a040bf5ffb 100644 --- a/gdb/sparc-xdep.c +++ b/gdb/sparc-xdep.c @@ -1,5 +1,5 @@ /* Host-dependent code for SPARC host systems, for GDB, the GNU debugger. - Copyright 1986, 1987, 1989, 1990, 1991 Free Software Foundation, Inc. + Copyright 1986, 1987, 1989, 1990, 1991, 1992 Free Software Foundation, Inc. This file is part of GDB. @@ -17,8 +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 - /* This code only compiles when we have the definitions in tm-sparc.h. */ #define TM_FILE_OVERRIDE @@ -35,8 +33,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "gdbcore.h" #include -extern char register_valid[]; - /* We don't store all registers immediately when requested, since they get sent over in large chunks anyway. Instead, we accumulate most of the changes and send them over once. "deferred_stores" keeps @@ -47,7 +43,7 @@ extern char register_valid[]; #define STACK_REGS 2 #define FP_REGS 4 -int deferred_stores = 0; /* Cumulates stores we want to do eventually. */ +/* The variable deferred_stores itself is defined in sparc-tdep.c. */ /* Fetch one or more registers from the inferior. REGNO == -1 to get them all. We actually fetch more than requested, when convenient, @@ -75,11 +71,13 @@ 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, ®isters[REGISTER_BYTE (1)], 15 * REGISTER_RAW_SIZE (G0_REGNUM)); + memcpy (®isters[REGISTER_BYTE (1)], &inferior_registers.r_g1, + 15 * REGISTER_RAW_SIZE (G0_REGNUM)); *(int *)®isters[REGISTER_BYTE (PS_REGNUM)] = inferior_registers.r_ps; *(int *)®isters[REGISTER_BYTE (PC_REGNUM)] = inferior_registers.r_pc; *(int *)®isters[REGISTER_BYTE (NPC_REGNUM)] = inferior_registers.r_npc; @@ -102,10 +100,12 @@ 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, ®isters[REGISTER_BYTE (FP0_REGNUM)], - sizeof inferior_fp_registers.fpu_fr); + memcpy (®isters[REGISTER_BYTE (FP0_REGNUM)], &inferior_fp_registers, + sizeof inferior_fp_registers.fpu_fr); /* bcopy (&inferior_fp_registers.Fpu_fsr, ®isters[REGISTER_BYTE (FPS_REGNUM)], sizeof (FPU_FSR_TYPE)); FIXME??? -- gnu@cyg */ @@ -140,7 +140,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; { @@ -181,7 +181,7 @@ store_inferior_registers (regno) else { deferred_stores |= wanna_store; - return 0; + return; } } @@ -210,8 +210,8 @@ store_inferior_registers (regno) { if (!register_valid[G1_REGNUM]) abort(); - bcopy (®isters[REGISTER_BYTE (G1_REGNUM)], - &inferior_registers.r_g1, 15 * REGISTER_RAW_SIZE (G1_REGNUM)); + memcpy (&inferior_registers.r_g1, ®isters[REGISTER_BYTE (G1_REGNUM)], + 15 * REGISTER_RAW_SIZE (G1_REGNUM)); inferior_registers.r_ps = *(int *)®isters[REGISTER_BYTE (PS_REGNUM)]; @@ -222,33 +222,33 @@ store_inferior_registers (regno) inferior_registers.r_y = *(int *)®isters[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"); } if (wanna_store & FP_REGS) { if (!register_valid[FP0_REGNUM+9]) abort(); - bcopy (®isters[REGISTER_BYTE (FP0_REGNUM)], - &inferior_fp_registers, - sizeof inferior_fp_registers.fpu_fr); + memcpy (&inferior_fp_registers, ®isters[REGISTER_BYTE (FP0_REGNUM)], + sizeof inferior_fp_registers.fpu_fr); -/* bcopy (®isters[REGISTER_BYTE (FPS_REGNUM)], - &inferior_fp_registers.Fpu_fsr, - sizeof (FPU_FSR_TYPE)); +/* memcpy (&inferior_fp_registers.Fpu_fsr, + ®isters[REGISTER_BYTE (FPS_REGNUM)], 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"); } - return 0; } void -fetch_core_registers (core_reg_sect, core_reg_size, which) +fetch_core_registers (core_reg_sect, core_reg_size, which, ignore) char *core_reg_sect; unsigned core_reg_size; int which; + unsigned int ignore; /* reg addr, unused in this version */ { if (which == 0) { @@ -260,9 +260,8 @@ fetch_core_registers (core_reg_sect, core_reg_size, which) *(int *)®isters[REGISTER_BYTE (0)] = 0; /* The globals and output registers. */ - bcopy (&gregs->r_g1, - ®isters[REGISTER_BYTE (G1_REGNUM)], - 15 * REGISTER_RAW_SIZE (G1_REGNUM)); + memcpy (®isters[REGISTER_BYTE (G1_REGNUM)], &gregs->r_g1, + 15 * REGISTER_RAW_SIZE (G1_REGNUM)); *(int *)®isters[REGISTER_BYTE (PS_REGNUM)] = gregs->r_ps; *(int *)®isters[REGISTER_BYTE (PC_REGNUM)] = gregs->r_pc; *(int *)®isters[REGISTER_BYTE (NPC_REGNUM)] = gregs->r_npc; @@ -292,12 +291,10 @@ fetch_core_registers (core_reg_sect, core_reg_size, which) #define fpuregs ((struct fpu *) core_reg_sect) if (core_reg_size >= sizeof (struct fpu)) { - bcopy (fpuregs->fpu_regs, - ®isters[REGISTER_BYTE (FP0_REGNUM)], - sizeof (fpuregs->fpu_regs)); - bcopy (&fpuregs->fpu_fsr, - ®isters[REGISTER_BYTE (FPS_REGNUM)], - sizeof (FPU_FSR_TYPE)); + memcpy (®isters[REGISTER_BYTE (FP0_REGNUM)], fpuregs->fpu_regs, + sizeof (fpuregs->fpu_regs)); + memcpy (®isters[REGISTER_BYTE (FPS_REGNUM)], &fpuregs->fpu_fsr, + sizeof (FPU_FSR_TYPE)); } else fprintf (stderr, "Couldn't read float regs from core file\n");