packaging: Add python3-base dependency
[platform/upstream/gdb.git] / gdb / arm-fbsd-tdep.h
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 */