diff options
Diffstat (limited to 'gdb/sun3-nat.c')
-rw-r--r-- | gdb/sun3-nat.c | 110 |
1 files changed, 57 insertions, 53 deletions
diff --git a/gdb/sun3-nat.c b/gdb/sun3-nat.c index 032b9ef..ed70665 100644 --- a/gdb/sun3-nat.c +++ b/gdb/sun3-nat.c @@ -1,28 +1,29 @@ /* Host-dependent code for Sun-3 for GDB, the GNU debugger. Copyright 1986, 1987, 1989, 1991, 1992 Free Software Foundation, Inc. -This file is part of GDB. + This file is part of GDB. -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 2 of the License, or -(at your option) any later version. + 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 2 of the License, or + (at your option) any later version. -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. + 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 this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ #include "defs.h" #include "inferior.h" #include "gdbcore.h" #include <sys/ptrace.h> -#define KERNEL /* To get floating point reg definitions */ +#define KERNEL /* To get floating point reg definitions */ #include <machine/reg.h> static void fetch_core_registers PARAMS ((char *, unsigned, int, CORE_ADDR)); @@ -37,26 +38,26 @@ fetch_inferior_registers (regno) #endif registers_fetched (); - + ptrace (PTRACE_GETREGS, inferior_pid, - (PTRACE_ARG3_TYPE) &inferior_registers); + (PTRACE_ARG3_TYPE) & inferior_registers); #ifdef FP0_REGNUM ptrace (PTRACE_GETFPREGS, inferior_pid, - (PTRACE_ARG3_TYPE) &inferior_fp_registers); -#endif - + (PTRACE_ARG3_TYPE) & inferior_fp_registers); +#endif + memcpy (registers, &inferior_registers, 16 * 4); #ifdef FP0_REGNUM memcpy (®isters[REGISTER_BYTE (FP0_REGNUM)], &inferior_fp_registers, - sizeof inferior_fp_registers.fps_regs); -#endif - *(int *)®isters[REGISTER_BYTE (PS_REGNUM)] = inferior_registers.r_ps; - *(int *)®isters[REGISTER_BYTE (PC_REGNUM)] = inferior_registers.r_pc; + sizeof inferior_fp_registers.fps_regs); +#endif + *(int *) ®isters[REGISTER_BYTE (PS_REGNUM)] = inferior_registers.r_ps; + *(int *) ®isters[REGISTER_BYTE (PC_REGNUM)] = inferior_registers.r_pc; #ifdef FP0_REGNUM memcpy (®isters[REGISTER_BYTE (FPC_REGNUM)], - &inferior_fp_registers.fps_control, - sizeof inferior_fp_registers - sizeof inferior_fp_registers.fps_regs); -#endif + &inferior_fp_registers.fps_control, + sizeof inferior_fp_registers - sizeof inferior_fp_registers.fps_regs); +#endif } /* Store our register values back into the inferior. @@ -75,22 +76,22 @@ store_inferior_registers (regno) memcpy (&inferior_registers, registers, 16 * 4); #ifdef FP0_REGNUM memcpy (&inferior_fp_registers, ®isters[REGISTER_BYTE (FP0_REGNUM)], - sizeof inferior_fp_registers.fps_regs); + sizeof inferior_fp_registers.fps_regs); #endif - inferior_registers.r_ps = *(int *)®isters[REGISTER_BYTE (PS_REGNUM)]; - inferior_registers.r_pc = *(int *)®isters[REGISTER_BYTE (PC_REGNUM)]; + inferior_registers.r_ps = *(int *) ®isters[REGISTER_BYTE (PS_REGNUM)]; + inferior_registers.r_pc = *(int *) ®isters[REGISTER_BYTE (PC_REGNUM)]; #ifdef FP0_REGNUM memcpy (&inferior_fp_registers.fps_control, - ®isters[REGISTER_BYTE (FPC_REGNUM)], - sizeof inferior_fp_registers - sizeof inferior_fp_registers.fps_regs); + ®isters[REGISTER_BYTE (FPC_REGNUM)], + sizeof inferior_fp_registers - sizeof inferior_fp_registers.fps_regs); #endif ptrace (PTRACE_SETREGS, inferior_pid, - (PTRACE_ARG3_TYPE) &inferior_registers); + (PTRACE_ARG3_TYPE) & inferior_registers); #if FP0_REGNUM ptrace (PTRACE_SETFPREGS, inferior_pid, - (PTRACE_ARG3_TYPE) &inferior_fp_registers); + (PTRACE_ARG3_TYPE) & inferior_fp_registers); #endif } @@ -107,36 +108,39 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr) { struct regs *regs = (struct regs *) core_reg_sect; - if (which == 0) { - if (core_reg_size < sizeof (struct regs)) - error ("Can't find registers in core file"); + if (which == 0) + { + if (core_reg_size < sizeof (struct regs)) + error ("Can't find registers in core file"); - memcpy (registers, (char *)regs, 16 * 4); - supply_register (PS_REGNUM, (char *)®s->r_ps); - supply_register (PC_REGNUM, (char *)®s->r_pc); + memcpy (registers, (char *) regs, 16 * 4); + supply_register (PS_REGNUM, (char *) ®s->r_ps); + supply_register (PC_REGNUM, (char *) ®s->r_pc); - } else if (which == 2) { + } + else if (which == 2) + { #define fpustruct ((struct fpu *) core_reg_sect) - if (core_reg_size >= sizeof (struct fpu)) - { + if (core_reg_size >= sizeof (struct fpu)) + { #ifdef FP0_REGNUM - memcpy (®isters[REGISTER_BYTE (FP0_REGNUM)], - fpustruct->f_fpstatus.fps_regs, - sizeof fpustruct->f_fpstatus.fps_regs); - memcpy (®isters[REGISTER_BYTE (FPC_REGNUM)], - &fpustruct->f_fpstatus.fps_control, - sizeof fpustruct->f_fpstatus - - sizeof fpustruct->f_fpstatus.fps_regs); + memcpy (®isters[REGISTER_BYTE (FP0_REGNUM)], + fpustruct->f_fpstatus.fps_regs, + sizeof fpustruct->f_fpstatus.fps_regs); + memcpy (®isters[REGISTER_BYTE (FPC_REGNUM)], + &fpustruct->f_fpstatus.fps_control, + sizeof fpustruct->f_fpstatus - + sizeof fpustruct->f_fpstatus.fps_regs); #endif - } - else - fprintf_unfiltered (gdb_stderr, "Couldn't read float regs from core file\n"); - } + } + else + fprintf_unfiltered (gdb_stderr, "Couldn't read float regs from core file\n"); + } } - + /* Register that we are able to handle sun3 core file formats. FIXME: is this really bfd_target_unknown_flavour? */ |