1 /* GNU/Linux on AArch64 target support, prototypes. 2 3 Copyright (C) 2012-2023 Free Software Foundation, Inc. 4 Contributed by ARM Ltd. 5 6 This file is part of GDB. 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20 21 #ifndef AARCH64_LINUX_TDEP_H 22 #define AARCH64_LINUX_TDEP_H 23 24 #include "regset.h" 25 26 /* The general-purpose regset consists of 31 X registers, plus SP, PC, 27 and PSTATE registers, as defined in the AArch64 port of the Linux 28 kernel. */ 29 #define AARCH64_LINUX_SIZEOF_GREGSET (34 * X_REGISTER_SIZE) 30 31 /* The fp regset consists of 32 V registers, plus FPCR and FPSR which 32 are 4 bytes wide each, and the whole structure is padded to 128 bit 33 alignment. */ 34 #define AARCH64_LINUX_SIZEOF_FPREGSET (33 * V_REGISTER_SIZE) 35 36 /* The pauth regset consists of 2 X sized registers. */ 37 #define AARCH64_LINUX_SIZEOF_PAUTH (2 * X_REGISTER_SIZE) 38 39 /* The MTE regset consists of a 64-bit register. */ 40 #define AARCH64_LINUX_SIZEOF_MTE_REGSET (8) 41 42 extern const struct regset aarch64_linux_gregset; 43 extern const struct regset aarch64_linux_fpregset; 44 45 /* Matches HWCAP_PACA in kernel header arch/arm64/include/uapi/asm/hwcap.h. */ 46 #define AARCH64_HWCAP_PACA (1 << 30) 47 48 #endif /* AARCH64_LINUX_TDEP_H */ 49