1 /* FreeBSD/arm target support, prototypes. 2 3 Copyright (C) 2017-2023 Free Software Foundation, Inc. 4 5 This file is part of GDB. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20 #ifndef ARM_FBSD_TDEP_H 21 #define ARM_FBSD_TDEP_H 22 23 #include "regset.h" 24 25 /* The general-purpose regset consists of 13 R registers, plus SP, LR, 26 PC, and CPSR registers. */ 27 #define ARM_FBSD_SIZEOF_GREGSET (17 * 4) 28 29 /* The TLS regset consists of a single register. */ 30 #define ARM_FBSD_SIZEOF_TLSREGSET (4) 31 32 /* The VFP regset consists of 32 D registers plus FPSCR, and the whole 33 structure is padded to 64-bit alignment. */ 34 #define ARM_FBSD_SIZEOF_VFPREGSET (33 * 8) 35 36 extern const struct regset arm_fbsd_gregset; 37 extern const struct regset arm_fbsd_vfpregset; 38 extern const struct regset arm_fbsd_tls_regset; 39 40 /* Flags passed in AT_HWCAP. */ 41 #define HWCAP_VFP 0x00000040 42 #define HWCAP_NEON 0x00001000 43 #define HWCAP_VFPv3 0x00002000 44 #define HWCAP_VFPD32 0x00080000 45 46 /* Lookup a target description based on the AT_HWCAP value in the auxv data 47 AUXV. */ 48 49 extern const struct target_desc * 50 arm_fbsd_read_description_auxv (const gdb::optional<gdb::byte_vector> &auxv, 51 target_ops *target, gdbarch *gdbarch, 52 bool tls); 53 54 /* Same as the above, but read the auxv data from the current inferior. */ 55 56 extern const struct target_desc * 57 arm_fbsd_read_description_auxv (bool tls); 58 59 #endif /* ARM_FBSD_TDEP_H */ 60