* configure.host, configure.tgt (powerpc-*-netbsd*): New entry.
* config/powerpc/nbsd.mh, config/powerpc/nbsd.mt, config/powerpc/tm-nbsd.h, config/powerpc/nm-nbsd.h, config/powerpc/xm-nbsd.h: New files.
This commit is contained in:
parent
24a39d88a2
commit
e42180d7b4
9 changed files with 230 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2000-05-18 J.T. Conklin <jtc@redback.com>
|
||||
|
||||
* configure.host, configure.tgt (powerpc-*-netbsd*): New entry.
|
||||
* config/powerpc/nbsd.mh, config/powerpc/nbsd.mt,
|
||||
config/powerpc/tm-nbsd.h, config/powerpc/nm-nbsd.h,
|
||||
config/powerpc/xm-nbsd.h: New files.
|
||||
|
||||
2000-05-17 Eli Zaretskii <eliz@is.elta.co.il>
|
||||
|
||||
* gdb/config/djgpp/README: Fine-tune installation instructions
|
||||
|
|
5
gdb/config/powerpc/nbsd.mh
Normal file
5
gdb/config/powerpc/nbsd.mh
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Host: PowerPC, running NetBSD
|
||||
XDEPFILES= ser-tcp.o
|
||||
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o solib.o ppcnbsd-nat.o
|
||||
XM_FILE= xm-nbsd.h
|
||||
NAT_FILE= nm-nbsd.h
|
3
gdb/config/powerpc/nbsd.mt
Normal file
3
gdb/config/powerpc/nbsd.mt
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Target: Sun 4 or Sparcstation, running NetBSD
|
||||
TDEPFILES= rs6000-tdep.o # ppcnbsd-tdep.o
|
||||
TM_FILE= tm-nbsd.h
|
29
gdb/config/powerpc/nm-nbsd.h
Normal file
29
gdb/config/powerpc/nm-nbsd.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* Native-dependent definitions for PowerPC running NetBSD ELF, for GDB.
|
||||
Copyright (C) 2000, Free Software Foundation, Inc.
|
||||
|
||||
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 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. */
|
||||
|
||||
#ifndef NM_NBSD_H
|
||||
#define NM_NBSD_H
|
||||
|
||||
#define SVR4_SHARED_LIBS
|
||||
|
||||
/* Get generic NetBSD native definitions. */
|
||||
#include "nm-nbsd.h"
|
||||
|
||||
#endif
|
27
gdb/config/powerpc/tm-nbsd.h
Normal file
27
gdb/config/powerpc/tm-nbsd.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* Macro definitions for PowerPC running under NetBSD.
|
||||
Copyright 2000 Free Software Foundation, Inc.
|
||||
|
||||
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 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. */
|
||||
|
||||
#ifndef TM_NBSD_H
|
||||
#define TM_NBSD_H
|
||||
|
||||
#include "powerpc/tm-ppc-eabi.h"
|
||||
#include "tm-nbsd.h"
|
||||
|
||||
#endif /* TM_NBSD_H */
|
22
gdb/config/powerpc/xm-nbsd.h
Normal file
22
gdb/config/powerpc/xm-nbsd.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* Parameters for execution on a PowerPC running NetBSD, for GDB.
|
||||
Copyright 2000 Free Software Foundation, Inc.
|
||||
|
||||
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 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. */
|
||||
|
||||
/* Get generic NetBSD host definitions. */
|
||||
#include "xm-nbsd.h"
|
|
@ -135,6 +135,7 @@ powerpc-*-aix*) gdb_host=aix ;;
|
|||
powerpcle-*-cygwin*) gdb_host=cygwin ;;
|
||||
powerpcle-*-solaris*) gdb_host=solaris ;;
|
||||
powerpc-*-linux*) gdb_host=linux ;;
|
||||
powerpc-*-netbsd*) gdb_host=nbsd ;;
|
||||
|
||||
# OBSOLETE pn-*-*) gdb_host=pn ;;
|
||||
|
||||
|
|
|
@ -217,6 +217,7 @@ ns32k-utek-sysv*) gdb_target=merlin ;;
|
|||
ns32k-utek-*) gdb_target=umax ;;
|
||||
|
||||
powerpc-*-macos*) gdb_target=macos ;;
|
||||
powerpc-*-netbsd*) gdb_target=nbsd ;;
|
||||
powerpc-*-netware*) gdb_target=ppc-nw
|
||||
configdirs="${configdirs} nlm" ;;
|
||||
|
||||
|
|
135
gdb/ppcnbsd-nat.c
Normal file
135
gdb/ppcnbsd-nat.c
Normal file
|
@ -0,0 +1,135 @@
|
|||
/* Native-dependent code for PowerPC's running NetBSD, for GDB.
|
||||
Copyright 1988, 1989, 1991, 1992, 1994, 1996, 2000 Free Software Foundation, Inc.
|
||||
|
||||
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 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. */
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <machine/reg.h>
|
||||
#include <machine/frame.h>
|
||||
|
||||
#include "defs.h"
|
||||
#include "inferior.h"
|
||||
#include "gdbcore.h"
|
||||
|
||||
#define RF(dst, src) \
|
||||
memcpy(®isters[REGISTER_BYTE(dst)], &src, sizeof(src))
|
||||
|
||||
#define RS(src, dst) \
|
||||
memcpy(&dst, ®isters[REGISTER_BYTE(src)], sizeof(dst))
|
||||
|
||||
void
|
||||
fetch_inferior_registers (regno)
|
||||
int regno;
|
||||
{
|
||||
struct reg inferior_registers;
|
||||
struct fpreg inferior_fp_registers;
|
||||
int i;
|
||||
|
||||
ptrace (PT_GETREGS, inferior_pid,
|
||||
(PTRACE_ARG3_TYPE) & inferior_registers, 0);
|
||||
for (i = 0; i < 32; i++)
|
||||
RF (i, inferior_registers.fixreg[i]);
|
||||
RF (LR_REGNUM, inferior_registers.lr);
|
||||
RF (CR_REGNUM, inferior_registers.cr);
|
||||
RF (XER_REGNUM, inferior_registers.xer);
|
||||
RF (CTR_REGNUM, inferior_registers.ctr);
|
||||
RF (PC_REGNUM, inferior_registers.pc);
|
||||
|
||||
ptrace (PT_GETFPREGS, inferior_pid,
|
||||
(PTRACE_ARG3_TYPE) & inferior_fp_registers, 0);
|
||||
for (i = 0; i < 32; i++)
|
||||
RF (FP0_REGNUM + i, inferior_fp_registers.r_regs[i]);
|
||||
|
||||
registers_fetched ();
|
||||
}
|
||||
|
||||
void
|
||||
store_inferior_registers (regno)
|
||||
int regno;
|
||||
{
|
||||
struct reg inferior_registers;
|
||||
struct fpreg inferior_fp_registers;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
RS (i, inferior_registers.fixreg[i]);
|
||||
RS (LR_REGNUM, inferior_registers.lr);
|
||||
RS (CR_REGNUM, inferior_registers.cr);
|
||||
RS (XER_REGNUM, inferior_registers.xer);
|
||||
RS (CTR_REGNUM, inferior_registers.ctr);
|
||||
RS (PC_REGNUM, inferior_registers.pc);
|
||||
|
||||
ptrace (PT_SETREGS, inferior_pid,
|
||||
(PTRACE_ARG3_TYPE) & inferior_registers, 0);
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
RS (FP0_REGNUM + i, inferior_fp_registers.r_regs[i]);
|
||||
ptrace (PT_SETFPREGS, inferior_pid,
|
||||
(PTRACE_ARG3_TYPE) & inferior_fp_registers, 0);
|
||||
}
|
||||
|
||||
struct md_core
|
||||
{
|
||||
struct reg intreg;
|
||||
struct fpreg freg;
|
||||
};
|
||||
|
||||
void
|
||||
fetch_core_registers (core_reg_sect, core_reg_size, which, ignore)
|
||||
char *core_reg_sect;
|
||||
unsigned core_reg_size;
|
||||
int which;
|
||||
CORE_ADDR ignore;
|
||||
{
|
||||
struct md_core *core_reg = (struct md_core *) core_reg_sect;
|
||||
int i;
|
||||
|
||||
/* Integer registers */
|
||||
for (i = 0; i < 32; i++)
|
||||
RF (i, core_reg->intreg.fixreg[i]);
|
||||
RF (LR_REGNUM, core_reg->intreg.lr);
|
||||
RF (CR_REGNUM, core_reg->intreg.cr);
|
||||
RF (XER_REGNUM, core_reg->intreg.xer);
|
||||
RF (CTR_REGNUM, core_reg->intreg.ctr);
|
||||
RF (PC_REGNUM, core_reg->intreg.pc);
|
||||
|
||||
/* Floating point registers */
|
||||
for (i = 0; i < 32; i++)
|
||||
RF (FP0_REGNUM + i, core_reg->freg.r_regs[i]);
|
||||
|
||||
registers_fetched ();
|
||||
}
|
||||
|
||||
/* Register that we are able to handle ppcnbsd core file formats.
|
||||
FIXME: is this really bfd_target_unknown_flavour? */
|
||||
|
||||
static struct core_fns ppcnbsd_core_fns =
|
||||
{
|
||||
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_ppcnbsd_nat ()
|
||||
{
|
||||
add_core_fns (&ppcnbsd_core_fns);
|
||||
}
|
Loading…
Reference in a new issue