X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsparc64-tdep.h;h=202bf2efea1139b1c7f25a5c5cda08da0acbe00b;hb=7d7167ce1b93f8bb151daa2572314987eaeb9e3c;hp=776964dd5392702d56f1023ed1a2bde3d97fa49a;hpb=01f0fe5e0450edf168c1f612feb93cf588e4e7ea;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sparc64-tdep.h b/gdb/sparc64-tdep.h index 776964dd53..202bf2efea 100644 --- a/gdb/sparc64-tdep.h +++ b/gdb/sparc64-tdep.h @@ -1,12 +1,12 @@ /* Target-dependent code for UltraSPARC. - Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2003-2019 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 + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,9 +15,7 @@ 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., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #ifndef SPARC64_TDEP_H #define SPARC64_TDEP_H 1 @@ -25,7 +23,7 @@ struct frame_info; struct gdbarch; struct regcache; -struct sparc_gregset; +struct sparc_gregmap; struct trad_frame_saved_reg; #include "sparc-tdep.h" @@ -58,9 +56,12 @@ enum sparc64_regnum SPARC64_FSR_REGNUM, /* %fsr */ SPARC64_FPRS_REGNUM, /* %fprs */ SPARC64_Y_REGNUM, /* %y */ +}; - /* Pseudo registers. */ - SPARC64_CWP_REGNUM, /* %cwp */ +/* Pseudo registers. */ +enum sparc64_pseudo_regnum +{ + SPARC64_CWP_REGNUM = 0, /* %cwp */ SPARC64_PSTATE_REGNUM, /* %pstate */ SPARC64_ASI_REGNUM, /* %asi */ SPARC64_CCR_REGNUM, /* %ccr */ @@ -84,40 +85,59 @@ enum sparc64_regnum = SPARC64_Q0_REGNUM + 15 }; +/* Processor state bits. */ +#define SPARC64_PSTATE_AG 0x001 +#define SPARC64_PSTATE_IE 0x002 +#define SPARC64_PSTATE_PRIV 0x004 +#define SPARC64_PSTATE_AM 0x008 +#define SPARC64_PSTATE_PEF 0x010 +#define SPARC64_PSTATE_RED 0x020 +#define SPARC64_PSTATE_TLE 0x100 +#define SPARC64_PSTATE_CLE 0x200 +#define SPARC64_PSTATE_PID0 0x400 +#define SPARC64_PSTATE_PID1 0x800 + extern void sparc64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch); -extern void sparc64_supply_gregset (const struct sparc_gregset *gregset, +extern void sparc64_supply_gregset (const struct sparc_gregmap *gregmap, struct regcache *regcache, int regnum, const void *gregs); -extern void sparc64_collect_gregset (const struct sparc_gregset *gregset, +extern void sparc64_collect_gregset (const struct sparc_gregmap *gregmap, const struct regcache *regcache, int regnum, void *gregs); -extern void sparc64_supply_fpregset (struct regcache *regcache, +extern void sparc64_supply_fpregset (const struct sparc_fpregmap *fpregmap, + struct regcache *regcache, int regnum, const void *fpregs); -extern void sparc64_collect_fpregset (const struct regcache *regcache, +extern void sparc64_collect_fpregset (const struct sparc_fpregmap *fpregmap, + const struct regcache *regcache, int regnum, void *fpregs); /* Functions and variables exported from sparc64-sol2-tdep.c. */ /* Register offsets for Solaris 2. */ -extern const struct sparc_gregset sparc64_sol2_gregset; +extern const struct sparc_gregmap sparc64_sol2_gregmap; +extern const struct sparc_fpregmap sparc64_sol2_fpregmap; extern void sparc64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch); -/* Variables exported from sparc64fbsd-tdep.c. */ +/* Variables exported from sparc64-fbsd-tdep.c. */ /* Register offsets for FreeBSD/sparc64. */ -extern const struct sparc_gregset sparc64fbsd_gregset; +extern const struct sparc_gregmap sparc64fbsd_gregmap; -/* Functions and variables exported from sparc64nbsd-tdep.c. */ +/* Functions and variables exported from sparc64-nbsd-tdep.c. */ /* Register offsets for NetBSD/sparc64. */ -extern const struct sparc_gregset sparc64nbsd_gregset; +extern const struct sparc_gregmap sparc64nbsd_gregmap; extern struct trad_frame_saved_reg * sparc64nbsd_sigcontext_saved_regs (CORE_ADDR sigcontext_addr, struct frame_info *next_frame); +extern const struct sparc_fpregmap sparc64_bsd_fpregmap; + +extern void sparc64_forget_process (pid_t pid); + #endif /* sparc64-tdep.h */