aboutsummaryrefslogtreecommitdiff
path: root/gdb/aarch64-linux-tdep.h
diff options
context:
space:
mode:
authorAndreas Arnez <arnez@linux.vnet.ibm.com>2014-04-01 09:42:46 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2014-08-07 17:31:49 +0200
commitd4d793bfeb836e833e36237f9e22d91d629ff0df (patch)
treebfe81fd59be745140b1d5c50f29457da71d5127c /gdb/aarch64-linux-tdep.h
parent99b7da5d7acfeabdd186ee15e9b182db20feabac (diff)
AARCH64 Linux: Fill 'collect_regset' in regset structures.
In order to provide 'collect_regset' support, the generic function regcache_collect_regset is exploited. Since this requires writing appropriate register maps, these can be used for supply_regset as well.
Diffstat (limited to 'gdb/aarch64-linux-tdep.h')
-rw-r--r--gdb/aarch64-linux-tdep.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/gdb/aarch64-linux-tdep.h b/gdb/aarch64-linux-tdep.h
index 48c70929e8..2e1de60eec 100644
--- a/gdb/aarch64-linux-tdep.h
+++ b/gdb/aarch64-linux-tdep.h
@@ -18,9 +18,17 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-struct regcache;
+#include "regset.h"
-extern void aarch64_linux_supply_gregset (struct regcache *regcache,
- const gdb_byte *gregs_buf);
-extern void aarch64_linux_supply_fpregset (struct regcache *regcache,
- const gdb_byte *fpregs_buf);
+/* The general-purpose regset consists of 31 X registers, plus SP, PC,
+ and PSTATE registers, as defined in the AArch64 port of the Linux
+ kernel. */
+#define AARCH64_LINUX_SIZEOF_GREGSET (34 * X_REGISTER_SIZE)
+
+/* The fp regset consists of 32 V registers, plus FPCR and FPSR which
+ are 4 bytes wide each, and the whole structure is padded to 128 bit
+ alignment. */
+#define AARCH64_LINUX_SIZEOF_FPREGSET (33 * V_REGISTER_SIZE)
+
+extern const struct regset aarch64_linux_gregset;
+extern const struct regset aarch64_linux_fpregset;