along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "linux-low.h"
+#include "tdesc.h"
#ifdef HAVE_SYS_REG_H
#include <sys/reg.h>
/* Defined in auto-generated file reg-ia64.c. */
void init_registers_ia64 (void);
-extern const struct target_desc *tdesc_ia64;
+extern const_target_desc_up tdesc_ia64;
#define ia64_num_regs 462
void
ia64_target::low_arch_setup ()
{
- current_process ()->tdesc = tdesc_ia64;
+ current_process ()->tdesc = tdesc_ia64.get ();
}
/* The linux target ops object. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "linux-low.h"
+#include "tdesc.h"
/* Linux target op definitions for the m68k architecture. */
/* Defined in auto-generated file reg-m68k.c. */
void init_registers_m68k (void);
-extern const struct target_desc *tdesc_m68k;
+extern const_target_desc_up tdesc_m68k;
#ifdef HAVE_SYS_REG_H
#include <sys/reg.h>
void
m68k_target::low_arch_setup ()
{
- current_process ()->tdesc = tdesc_m68k;
+ current_process ()->tdesc = tdesc_m68k.get ();
}
/* The linux target ops object. */
#include <sys/ptrace.h>
#include "gdb_proc_service.h"
-
+#include "tdesc.h"
static int microblaze_regmap[] =
{PT_GPR(0), PT_GPR(1), PT_GPR(2), PT_GPR(3),
/* Defined in auto-generated file microblaze-linux-generated.c. */
void init_registers_microblaze_linux ();
-extern const target_desc *tdesc_microblaze_linux;
+extern const_target_desc_up tdesc_microblaze_linux;
bool
microblaze_target::low_supports_breakpoints ()
void
microblaze_target::low_arch_setup ()
{
- current_process ()->tdesc = tdesc_microblaze_linux;
+ current_process ()->tdesc = tdesc_microblaze_linux.get ();
}
linux_process_target *the_linux_target = &the_microblaze_target;
#include "nat/mips-linux-watch.h"
#include "gdb_proc_service.h"
+#include "tdesc.h"
/* Linux target op definitions for the MIPS architecture. */
/* Defined in auto-generated file mips-linux.c. */
void init_registers_mips_linux (void);
-extern const struct target_desc *tdesc_mips_linux;
+extern const_target_desc_up tdesc_mips_linux;
/* Defined in auto-generated file mips-dsp-linux.c. */
void init_registers_mips_dsp_linux (void);
-extern const struct target_desc *tdesc_mips_dsp_linux;
+extern const_target_desc_up tdesc_mips_dsp_linux;
/* Defined in auto-generated file mips64-linux.c. */
void init_registers_mips64_linux (void);
-extern const struct target_desc *tdesc_mips64_linux;
+extern const_target_desc_up tdesc_mips64_linux;
/* Defined in auto-generated file mips64-dsp-linux.c. */
void init_registers_mips64_dsp_linux (void);
-extern const struct target_desc *tdesc_mips64_dsp_linux;
+extern const_target_desc_up tdesc_mips64_dsp_linux;
#ifdef __mips64
#define tdesc_mips_linux tdesc_mips64_linux
}
}
- return have_dsp ? tdesc_mips_dsp_linux : tdesc_mips_linux;
+ return have_dsp ? tdesc_mips_dsp_linux.get () : tdesc_mips_linux.get ();
}
void
#include "nat/gdb_ptrace.h"
#include <endian.h>
#include "gdb_proc_service.h"
+#include "tdesc.h"
#include <asm/ptrace.h>
#ifndef PTRACE_GET_THREAD_AREA
/* Defined in auto-generated file or1k-linux.c. */
void init_registers_or1k_linux (void);
-extern const struct target_desc *tdesc_or1k_linux;
+extern const_target_desc_up tdesc_or1k_linux;
/* This union is used to convert between int and byte buffer
representations of register contents. */
void
or1k_target::low_arch_setup ()
{
- current_process ()->tdesc = tdesc_or1k_linux;
+ current_process ()->tdesc = tdesc_or1k_linux.get ();
}
/* Implement the low_cannot_fetch_register linux target ops method. */
#include <sys/mman.h>
#include "tracepoint.h"
+#include "tdesc.h"
#include "linux-s390-tdesc.h"
#include <elf.h>
#ifdef HAVE_GETAUXVAL
case S390_TDESC_64:
/* Subtract number of VX regs. */
SET_REGMAP(s390x_ft_collect_regmap, 32);
- return tdesc_s390x_linux64;
+ return tdesc_s390x_linux64.get ();
case S390_TDESC_64V1:
SET_REGMAP(s390x_ft_collect_regmap, 32);
- return tdesc_s390x_linux64v1;
+ return tdesc_s390x_linux64v1.get ();
case S390_TDESC_64V2:
SET_REGMAP(s390x_ft_collect_regmap, 32);
- return tdesc_s390x_linux64v2;
+ return tdesc_s390x_linux64v2.get ();
case S390_TDESC_TE:
SET_REGMAP(s390x_te_ft_collect_regmap, 32);
- return tdesc_s390x_te_linux64;
+ return tdesc_s390x_te_linux64.get ();
case S390_TDESC_VX:
SET_REGMAP(s390x_ft_collect_regmap, 0);
- return tdesc_s390x_vx_linux64;
+ return tdesc_s390x_vx_linux64.get ();
case S390_TDESC_TEVX:
SET_REGMAP(s390x_te_ft_collect_regmap, 0);
- return tdesc_s390x_tevx_linux64;
+ return tdesc_s390x_tevx_linux64.get ();
case S390_TDESC_GS:
SET_REGMAP(s390x_te_ft_collect_regmap, 0);
- return tdesc_s390x_gs_linux64;
+ return tdesc_s390x_gs_linux64.get ();
#else
case S390_TDESC_32:
SET_REGMAP(s390_linux32_ft_collect_regmap, 0);
- return tdesc_s390_linux32;
+ return tdesc_s390_linux32.get ();
case S390_TDESC_32V1:
SET_REGMAP(s390_linux32_ft_collect_regmap, 0);
- return tdesc_s390_linux32v1;
+ return tdesc_s390_linux32v1.get ();
case S390_TDESC_32V2:
SET_REGMAP(s390_linux32_ft_collect_regmap, 0);
- return tdesc_s390_linux32v2;
+ return tdesc_s390_linux32v2.get ();
case S390_TDESC_64:
SET_REGMAP(s390_linux64_ft_collect_regmap, 32);
- return tdesc_s390_linux64;
+ return tdesc_s390_linux64.get ();
case S390_TDESC_64V1:
SET_REGMAP(s390_linux64_ft_collect_regmap, 32);
- return tdesc_s390_linux64v1;
+ return tdesc_s390_linux64v1.get ();
case S390_TDESC_64V2:
SET_REGMAP(s390_linux64_ft_collect_regmap, 32);
- return tdesc_s390_linux64v2;
+ return tdesc_s390_linux64v2.get ();
case S390_TDESC_TE:
SET_REGMAP(s390_te_linux64_ft_collect_regmap, 32);
- return tdesc_s390_te_linux64;
+ return tdesc_s390_te_linux64.get ();
case S390_TDESC_VX:
SET_REGMAP(s390_linux64_ft_collect_regmap, 0);
- return tdesc_s390_vx_linux64;
+ return tdesc_s390_vx_linux64.get ();
case S390_TDESC_TEVX:
SET_REGMAP(s390_te_linux64_ft_collect_regmap, 0);
- return tdesc_s390_tevx_linux64;
+ return tdesc_s390_tevx_linux64.get ();
case S390_TDESC_GS:
SET_REGMAP(s390_te_linux64_ft_collect_regmap, 0);
- return tdesc_s390_gs_linux64;
+ return tdesc_s390_gs_linux64.get ();
#endif
default:
internal_error ("unknown ipa tdesc index: %d", idx);
#ifdef __s390x__
- return tdesc_s390x_linux64;
+ return tdesc_s390x_linux64.get ();
#else
- return tdesc_s390_linux32;
+ return tdesc_s390_linux32.get ();
#endif
}
}
#include <elf.h>
#include <inttypes.h>
+#include "tdesc.h"
#include "linux-s390-tdesc.h"
#ifndef HWCAP_S390_HIGH_GPRS
if (wordsize == 8)
{
if (have_regset_gs)
- tdesc = tdesc_s390x_gs_linux64;
+ tdesc = tdesc_s390x_gs_linux64.get ();
else if (have_regset_vxrs)
- tdesc = (have_regset_tdb ? tdesc_s390x_tevx_linux64 :
- tdesc_s390x_vx_linux64);
+ tdesc = (have_regset_tdb ? tdesc_s390x_tevx_linux64.get () :
+ tdesc_s390x_vx_linux64.get ());
else if (have_regset_tdb)
- tdesc = tdesc_s390x_te_linux64;
+ tdesc = tdesc_s390x_te_linux64.get ();
else if (have_regset_system_call)
- tdesc = tdesc_s390x_linux64v2;
+ tdesc = tdesc_s390x_linux64v2.get ();
else if (have_regset_last_break)
- tdesc = tdesc_s390x_linux64v1;
+ tdesc = tdesc_s390x_linux64v1.get ();
else
- tdesc = tdesc_s390x_linux64;
+ tdesc = tdesc_s390x_linux64.get ();
}
/* For a 31-bit inferior, check whether the kernel supports
{
have_hwcap_s390_high_gprs = 1;
if (have_regset_gs)
- tdesc = tdesc_s390_gs_linux64;
+ tdesc = tdesc_s390_gs_linux64.get ();
else if (have_regset_vxrs)
- tdesc = (have_regset_tdb ? tdesc_s390_tevx_linux64 :
- tdesc_s390_vx_linux64);
+ tdesc = (have_regset_tdb ? tdesc_s390_tevx_linux64.get () :
+ tdesc_s390_vx_linux64.get ());
else if (have_regset_tdb)
- tdesc = tdesc_s390_te_linux64;
+ tdesc = tdesc_s390_te_linux64.get ();
else if (have_regset_system_call)
- tdesc = tdesc_s390_linux64v2;
+ tdesc = tdesc_s390_linux64v2.get ();
else if (have_regset_last_break)
- tdesc = tdesc_s390_linux64v1;
+ tdesc = tdesc_s390_linux64v1.get ();
else
- tdesc = tdesc_s390_linux64;
+ tdesc = tdesc_s390_linux64.get ();
}
else
{
/* Assume 31-bit inferior process. */
if (have_regset_system_call)
- tdesc = tdesc_s390_linux32v2;
+ tdesc = tdesc_s390_linux32v2.get ();
else if (have_regset_last_break)
- tdesc = tdesc_s390_linux32v1;
+ tdesc = tdesc_s390_linux32v1.get ();
else
- tdesc = tdesc_s390_linux32;
+ tdesc = tdesc_s390_linux32.get ();
}
have_hwcap_s390_vx = have_regset_vxrs;
const target_desc *tdesc = current_process ()->tdesc;
#ifdef __s390x__
- if (tdesc == tdesc_s390x_linux64)
+ if (tdesc == tdesc_s390x_linux64.get ())
return S390_TDESC_64;
- if (tdesc == tdesc_s390x_linux64v1)
+ if (tdesc == tdesc_s390x_linux64v1.get ())
return S390_TDESC_64V1;
- if (tdesc == tdesc_s390x_linux64v2)
+ if (tdesc == tdesc_s390x_linux64v2.get ())
return S390_TDESC_64V2;
- if (tdesc == tdesc_s390x_te_linux64)
+ if (tdesc == tdesc_s390x_te_linux64.get ())
return S390_TDESC_TE;
- if (tdesc == tdesc_s390x_vx_linux64)
+ if (tdesc == tdesc_s390x_vx_linux64.get ())
return S390_TDESC_VX;
- if (tdesc == tdesc_s390x_tevx_linux64)
+ if (tdesc == tdesc_s390x_tevx_linux64.get ())
return S390_TDESC_TEVX;
- if (tdesc == tdesc_s390x_gs_linux64)
+ if (tdesc == tdesc_s390x_gs_linux64.get ())
return S390_TDESC_GS;
#endif
- if (tdesc == tdesc_s390_linux32)
+ if (tdesc == tdesc_s390_linux32.get ())
return S390_TDESC_32;
- if (tdesc == tdesc_s390_linux32v1)
+ if (tdesc == tdesc_s390_linux32v1.get ())
return S390_TDESC_32V1;
- if (tdesc == tdesc_s390_linux32v2)
+ if (tdesc == tdesc_s390_linux32v2.get ())
return S390_TDESC_32V2;
- if (tdesc == tdesc_s390_linux64)
+ if (tdesc == tdesc_s390_linux64.get ())
return S390_TDESC_64;
- if (tdesc == tdesc_s390_linux64v1)
+ if (tdesc == tdesc_s390_linux64v1.get ())
return S390_TDESC_64V1;
- if (tdesc == tdesc_s390_linux64v2)
+ if (tdesc == tdesc_s390_linux64v2.get ())
return S390_TDESC_64V2;
- if (tdesc == tdesc_s390_te_linux64)
+ if (tdesc == tdesc_s390_te_linux64.get ())
return S390_TDESC_TE;
- if (tdesc == tdesc_s390_vx_linux64)
+ if (tdesc == tdesc_s390_vx_linux64.get ())
return S390_TDESC_VX;
- if (tdesc == tdesc_s390_tevx_linux64)
+ if (tdesc == tdesc_s390_tevx_linux64.get ())
return S390_TDESC_TEVX;
- if (tdesc == tdesc_s390_gs_linux64)
+ if (tdesc == tdesc_s390_gs_linux64.get ())
return S390_TDESC_GS;
return 0;
/* Defined in auto-generated file s390x-linux64.c. */
void init_registers_s390x_linux64 (void);
-extern const struct target_desc *tdesc_s390x_linux64;
+extern const_target_desc_up tdesc_s390x_linux64;
/* Defined in auto-generated file s390x-linux64v1.c. */
void init_registers_s390x_linux64v1 (void);
-extern const struct target_desc *tdesc_s390x_linux64v1;
+extern const_target_desc_up tdesc_s390x_linux64v1;
/* Defined in auto-generated file s390x-linux64v2.c. */
void init_registers_s390x_linux64v2 (void);
-extern const struct target_desc *tdesc_s390x_linux64v2;
+extern const_target_desc_up tdesc_s390x_linux64v2;
/* Defined in auto-generated file s390x-te-linux64.c. */
void init_registers_s390x_te_linux64 (void);
-extern const struct target_desc *tdesc_s390x_te_linux64;
+extern const_target_desc_up tdesc_s390x_te_linux64;
/* Defined in auto-generated file s390x-vx-linux64.c. */
void init_registers_s390x_vx_linux64 (void);
-extern const struct target_desc *tdesc_s390x_vx_linux64;
+extern const_target_desc_up tdesc_s390x_vx_linux64;
/* Defined in auto-generated file s390x-tevx-linux64.c. */
void init_registers_s390x_tevx_linux64 (void);
-extern const struct target_desc *tdesc_s390x_tevx_linux64;
+extern const_target_desc_up tdesc_s390x_tevx_linux64;
/* Defined in auto-generated file s390x-gs-linux64.c. */
void init_registers_s390x_gs_linux64 (void);
-extern const struct target_desc *tdesc_s390x_gs_linux64;
+extern const_target_desc_up tdesc_s390x_gs_linux64;
#endif
/* Defined in auto-generated file s390-linux32.c. */
void init_registers_s390_linux32 (void);
-extern const struct target_desc *tdesc_s390_linux32;
+extern const_target_desc_up tdesc_s390_linux32;
/* Defined in auto-generated file s390-linux32v1.c. */
void init_registers_s390_linux32v1 (void);
-extern const struct target_desc *tdesc_s390_linux32v1;
+extern const_target_desc_up tdesc_s390_linux32v1;
/* Defined in auto-generated file s390-linux32v2.c. */
void init_registers_s390_linux32v2 (void);
-extern const struct target_desc *tdesc_s390_linux32v2;
+extern const_target_desc_up tdesc_s390_linux32v2;
/* Defined in auto-generated file s390-linux64.c. */
void init_registers_s390_linux64 (void);
-extern const struct target_desc *tdesc_s390_linux64;
+extern const_target_desc_up tdesc_s390_linux64;
/* Defined in auto-generated file s390-linux64v1.c. */
void init_registers_s390_linux64v1 (void);
-extern const struct target_desc *tdesc_s390_linux64v1;
+extern const_target_desc_up tdesc_s390_linux64v1;
/* Defined in auto-generated file s390-linux64v2.c. */
void init_registers_s390_linux64v2 (void);
-extern const struct target_desc *tdesc_s390_linux64v2;
+extern const_target_desc_up tdesc_s390_linux64v2;
/* Defined in auto-generated file s390-te-linux64.c. */
void init_registers_s390_te_linux64 (void);
-extern const struct target_desc *tdesc_s390_te_linux64;
+extern const_target_desc_up tdesc_s390_te_linux64;
/* Defined in auto-generated file s390-vx-linux64.c. */
void init_registers_s390_vx_linux64 (void);
-extern const struct target_desc *tdesc_s390_vx_linux64;
+extern const_target_desc_up tdesc_s390_vx_linux64;
/* Defined in auto-generated file s390-tevx-linux64.c. */
void init_registers_s390_tevx_linux64 (void);
-extern const struct target_desc *tdesc_s390_tevx_linux64;
+extern const_target_desc_up tdesc_s390_tevx_linux64;
/* Defined in auto-generated file s390-gs-linux64.c. */
void init_registers_s390_gs_linux64 (void);
-extern const struct target_desc *tdesc_s390_gs_linux64;
+extern const_target_desc_up tdesc_s390_gs_linux64;
#endif
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "linux-low.h"
+#include "tdesc.h"
/* Linux target op definitions for the SH architecture. */
/* Defined in auto-generated file reg-sh.c. */
void init_registers_sh (void);
-extern const struct target_desc *tdesc_sh;
+extern const_target_desc_up tdesc_sh;
#ifdef HAVE_SYS_REG_H
#include <sys/reg.h>
void
sh_target::low_arch_setup ()
{
- current_process ()->tdesc = tdesc_sh;
+ current_process ()->tdesc = tdesc_sh.get ();
}
/* The linux target ops object. */
#include "nat/gdb_ptrace.h"
#include "gdb_proc_service.h"
+#include "tdesc.h"
/* The stack pointer is offset from the stack frame by a BIAS of 2047
(0x7ff) for 64-bit code. BIAS is likely to be defined on SPARC
/* Defined in auto-generated file reg-sparc64.c. */
void init_registers_sparc64 (void);
-extern const struct target_desc *tdesc_sparc64;
+extern const_target_desc_up tdesc_sparc64;
bool
sparc_target::low_cannot_store_register (int regno)
void
sparc_target::low_arch_setup ()
{
- current_process ()->tdesc = tdesc_sparc64;
+ current_process ()->tdesc = tdesc_sparc64.get ();
}
static struct regset_info sparc_regsets[] = {
#include "linux-low.h"
+#include "tdesc.h"
/* Linux target op definitions for the Xtensa architecture. */
/* Defined in auto-generated file reg-xtensa.c. */
void init_registers_xtensa (void);
-extern const struct target_desc *tdesc_xtensa;
+extern const_target_desc_up tdesc_xtensa;
#include <asm/ptrace.h>
#include <xtensa-config.h>
void
xtensa_target::low_arch_setup ()
{
- current_process ()->tdesc = tdesc_xtensa;
+ current_process ()->tdesc = tdesc_xtensa.get ();
}
const regs_info *