gdb/arm-linux-tdep.h - gdb

Macros defined

Source code

  1. /* GNU/Linux on ARM target support, prototypes.

  2.    Copyright (C) 2006-2015 Free Software Foundation, Inc.

  3.    This file is part of GDB.

  4.    This program is free software; you can redistribute it and/or modify
  5.    it under the terms of the GNU General Public License as published by
  6.    the Free Software Foundation; either version 3 of the License, or
  7.    (at your option) any later version.

  8.    This program is distributed in the hope that it will be useful,
  9.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.    GNU General Public License for more details.

  12.    You should have received a copy of the GNU General Public License
  13.    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

  14. struct regset;
  15. struct regcache;

  16. #define ARM_LINUX_SIZEOF_NWFPE (8 * FP_REGISTER_SIZE \
  17.                                 + 2 * INT_REGISTER_SIZE \
  18.                                 + 8 + INT_REGISTER_SIZE)

  19. /* The index to access CSPR in user_regs defined in GLIBC.  */
  20. #define ARM_CPSR_GREGNUM 16

  21. /* Support for register format used by the NWFPE FPA emulator.  Each
  22.    register takes three words, where either the first one, two, or
  23.    three hold a single, double, or extended precision value (depending
  24.    on the corresponding tag).  The register set is eight registers,
  25.    followed by the fpsr and fpcr, followed by eight tag bytes, and a
  26.    final word flag which indicates whether NWFPE has been
  27.    initialized.  */

  28. #define NWFPE_FPSR_OFFSET (8 * FP_REGISTER_SIZE)
  29. #define NWFPE_FPCR_OFFSET (NWFPE_FPSR_OFFSET + INT_REGISTER_SIZE)
  30. #define NWFPE_TAGS_OFFSET (NWFPE_FPCR_OFFSET + INT_REGISTER_SIZE)
  31. #define NWFPE_INITFLAG_OFFSET (NWFPE_TAGS_OFFSET + 8)

  32. void arm_linux_supply_gregset (const struct regset *regset,
  33.                                struct regcache *regcache,
  34.                                int regnum, const void *gregs_buf, size_t len);
  35. void arm_linux_collect_gregset (const struct regset *regset,
  36.                                 const struct regcache *regcache,
  37.                                 int regnum, void *gregs_buf, size_t len);

  38. void supply_nwfpe_register (struct regcache *regcache, int regno,
  39.                             const gdb_byte *regs);
  40. void collect_nwfpe_register (const struct regcache *regcache, int regno,
  41.                              gdb_byte *regs);

  42. void arm_linux_supply_nwfpe (const struct regset *regset,
  43.                              struct regcache *regcache,
  44.                              int regnum, const void *regs_buf, size_t len);
  45. void arm_linux_collect_nwfpe (const struct regset *regset,
  46.                               const struct regcache *regcache,
  47.                               int regnum, void *regs_buf, size_t len);

  48. /* ARM GNU/Linux HWCAP values.  These are in defined in
  49.    <asm/elf.h> in current kernels.  */
  50. #define HWCAP_VFP       64
  51. #define HWCAP_IWMMXT    512
  52. #define HWCAP_NEON      4096
  53. #define HWCAP_VFPv3     8192
  54. #define HWCAP_VFPv3D16  16384