GDB (xrefs)

Macros | Functions | Variables
/tmp/gdb-8.1/gdb/ia64-linux-tdep.c File Reference
`#include "defs.h"`
`#include "ia64-tdep.h"`
`#include "arch-utils.h"`
`#include "gdbcore.h"`
`#include "regcache.h"`
`#include "osabi.h"`
`#include "solib-svr4.h"`
`#include "symtab.h"`
`#include "linux-tdep.h"`
`#include "regset.h"`
`#include <ctype.h>`

Go to the source code of this file.

## Macros
#define | GATE_AREA_START 0xa000000000000100LL
#define | GATE_AREA_END 0xa000000000020000LL
#define | IA64_LINUX_SIGCONTEXT_OFFSET 192
#define | IA64_LINUX_GREGS_SIZE (128 * 8)
#define | IA64_LINUX_FPREGS_SIZE (128 * 16)

## Functions
static int | ia64_linux_pc_in_sigtramp (CORE_ADDR pc)
static CORE_ADDR | ia64_linux_sigcontext_register_address (struct gdbarch *gdbarch, CORE_ADDR sp, int regno)
static void | ia64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
static int | ia64_linux_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
static void | ia64_linux_supply_fpregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *regs, size_t len)
static void | ia64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
static void | ia64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
void | _initialize_ia64_linux_tdep (void)

## Variables
static const struct regcache_map_entry | ia64_linux_gregmap []
static const struct regcache_map_entry | ia64_linux_fpregmap []
static const struct regset | ia64_linux_gregset
static const struct regset | ia64_linux_fpregset

## Macro Definition Documentation

## ◆ GATE_AREA_END

#define GATE_AREA_END 0xa000000000020000LL

Definition at line 39 of file ia64-linux-tdep.c.

Referenced by ia64_linux_pc_in_sigtramp().

## ◆ GATE_AREA_START

#define GATE_AREA_START 0xa000000000000100LL

Definition at line 38 of file ia64-linux-tdep.c.

Referenced by ia64_linux_pc_in_sigtramp().

## ◆ IA64_LINUX_FPREGS_SIZE

#define IA64_LINUX_FPREGS_SIZE (128 * 16)

Definition at line 170 of file ia64-linux-tdep.c.

Referenced by ia64_linux_iterate_over_regset_sections().

## ◆ IA64_LINUX_GREGS_SIZE

#define IA64_LINUX_GREGS_SIZE (128 * 8)

Definition at line 162 of file ia64-linux-tdep.c.

Referenced by ia64_linux_iterate_over_regset_sections().

## ◆ IA64_LINUX_SIGCONTEXT_OFFSET

#define IA64_LINUX_SIGCONTEXT_OFFSET 192

Definition at line 42 of file ia64-linux-tdep.c.

## Function Documentation

## ◆ _initialize_ia64_linux_tdep()

void _initialize_ia64_linux_tdep | ( | void |  | ) |

Definition at line 260 of file ia64-linux-tdep.c.

References GDB_OSABI_LINUX, gdbarch_register_osabi(), and ia64_linux_init_abi().

## ◆ ia64_linux_init_abi()

static void ia64_linux_init_abi | ( | struct gdbarch_info | info,
|  | struct gdbarch * | gdbarch
| ) |  |
| static

Definition at line 215 of file ia64-linux-tdep.c.

References find_solib_trampoline_target(), gdbarch_tdep(), ia64_linux_iterate_over_regset_sections(), ia64_linux_pc_in_sigtramp(), ia64_linux_sigcontext_register_address(), ia64_linux_stap_is_single_operand(), ia64_linux_write_pc(), linux_init_abi(), gdbarch_tdep::pc_in_sigtramp, set_gdbarch_fetch_tls_load_module_address(), set_gdbarch_iterate_over_regset_sections(), set_gdbarch_skip_trampoline_code(), set_gdbarch_stap_gdb_register_prefix(), set_gdbarch_stap_is_single_operand(), set_gdbarch_stap_register_indirection_prefixes(), set_gdbarch_stap_register_indirection_suffixes(), set_gdbarch_stap_register_prefixes(), set_gdbarch_write_pc(), set_solib_svr4_fetch_link_map_offsets(), gdbarch_tdep::sigcontext_register_address, svr4_fetch_objfile_link_map(), and svr4_lp64_fetch_link_map_offsets().

Referenced by _initialize_ia64_linux_tdep().

## ◆ ia64_linux_iterate_over_regset_sections()

static void ia64_linux_iterate_over_regset_sections | ( | struct gdbarch * | gdbarch,
|  | iterate_over_regset_sections_cb * | cb,
|  | void * | cb_data,
|  | const struct regcache * | regcache
| ) |  |
| static

Definition at line 205 of file ia64-linux-tdep.c.

References IA64_LINUX_FPREGS_SIZE, ia64_linux_fpregset, IA64_LINUX_GREGS_SIZE, and ia64_linux_gregset.

Referenced by ia64_linux_init_abi().

## ◆ ia64_linux_pc_in_sigtramp()

static int ia64_linux_pc_in_sigtramp | ( | CORE_ADDR | pc | ) |
| static

Definition at line 45 of file ia64-linux-tdep.c.

References GATE_AREA_END, and GATE_AREA_START.

Referenced by ia64_linux_init_abi().

## ◆ ia64_linux_sigcontext_register_address()

static CORE_ADDR ia64_linux_sigcontext_register_address | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | sp,
|  | int | regno
| ) |  |
| static

Definition at line 56 of file ia64-linux-tdep.c.

References extract_unsigned_integer(), gdbarch_byte_order(), IA64_BR0_REGNUM, IA64_BR7_REGNUM, IA64_BSP_REGNUM, IA64_CCV_REGNUM, IA64_CFM_REGNUM, IA64_FPSR_REGNUM, IA64_FR0_REGNUM, IA64_FR127_REGNUM, IA64_GR0_REGNUM, IA64_GR31_REGNUM, IA64_IP_REGNUM, IA64_LC_REGNUM, IA64_PFS_REGNUM, IA64_PR_REGNUM, IA64_PSR_REGNUM, IA64_RNAT_REGNUM, IA64_UNAT_REGNUM, and read_memory().

Referenced by ia64_linux_init_abi().

## ◆ ia64_linux_stap_is_single_operand()

static int ia64_linux_stap_is_single_operand | ( | struct gdbarch * | gdbarch,
|  | const char * | s
| ) |  |
| static

Definition at line 128 of file ia64-linux-tdep.c.

Referenced by ia64_linux_init_abi().

## ◆ ia64_linux_supply_fpregset()

static void ia64_linux_supply_fpregset | ( | const struct regset * | regset,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | const void * | regs,
|  | size_t | len
| ) |  |
| static

Definition at line 173 of file ia64-linux-tdep.c.

References IA64_FR0_REGNUM, IA64_FR1_REGNUM, regcache_raw_supply(), regcache_supply_regset(), and regnum.

## ◆ ia64_linux_write_pc()

static void ia64_linux_write_pc | ( | struct regcache * | regcache,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 108 of file ia64-linux-tdep.c.

References IA64_GR10_REGNUM, ia64_write_pc(), and regcache_cooked_write_unsigned().

Referenced by ia64_linux_init_abi().

## Variable Documentation

## ◆ ia64_linux_fpregmap

const struct regcache_map_entry ia64_linux_fpregmap[]
| static

Initial value:
=
{
{ 128, IA64_FR0_REGNUM, 16 },
{ 0 }
}
IA64_FR0_REGNUM
#define IA64_FR0_REGNUM
Definition: ia64-tdep.h:50

Definition at line 164 of file ia64-linux-tdep.c.

## ◆ ia64_linux_fpregset

const struct regset ia64_linux_fpregset
| static

Initial value:
=
{
ia64_linux_fpregmap,
ia64_linux_supply_fpregset, regcache_collect_regset
}
ia64_linux_fpregmap
static const struct regcache_map_entry ia64_linux_fpregmap[]
Definition: ia64-linux-tdep.c:164
ia64_linux_supply_fpregset
static void ia64_linux_supply_fpregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *regs, size_t len)
Definition: ia64-linux-tdep.c:173
regcache_collect_regset
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211

Definition at line 198 of file ia64-linux-tdep.c.

Referenced by ia64_linux_iterate_over_regset_sections().

## ◆ ia64_linux_gregmap

const struct regcache_map_entry ia64_linux_gregmap[]
| static

Initial value:
=
{
{ 32, IA64_GR0_REGNUM, 8 },
{ 1, REGCACHE_MAP_SKIP, 8 },
{ 1, IA64_PR_REGNUM, 8 },
{ 8, IA64_BR0_REGNUM, 8 },
{ 1, IA64_IP_REGNUM, 8 },
{ 1, IA64_CFM_REGNUM, 8 },
{ 1, IA64_PSR_REGNUM, 8 },
{ 1, IA64_RSC_REGNUM, 8 },
{ 1, IA64_BSP_REGNUM, 8 },
{ 1, IA64_BSPSTORE_REGNUM, 8 },
{ 1, IA64_RNAT_REGNUM, 8 },
{ 1, IA64_CCV_REGNUM, 8 },
{ 1, IA64_UNAT_REGNUM, 8 },
{ 1, IA64_FPSR_REGNUM, 8 },
{ 1, IA64_PFS_REGNUM, 8 },
{ 1, IA64_LC_REGNUM, 8 },
{ 1, IA64_EC_REGNUM, 8 },
{ 0 }
}
IA64_FPSR_REGNUM
#define IA64_FPSR_REGNUM
Definition: ia64-tdep.h:189
IA64_BSP_REGNUM
#define IA64_BSP_REGNUM
Definition: ia64-tdep.h:176
IA64_RNAT_REGNUM
#define IA64_RNAT_REGNUM
Definition: ia64-tdep.h:178
IA64_RSC_REGNUM
#define IA64_RSC_REGNUM
Definition: ia64-tdep.h:175
IA64_CCV_REGNUM
#define IA64_CCV_REGNUM
Definition: ia64-tdep.h:187
IA64_PFS_REGNUM
#define IA64_PFS_REGNUM
Definition: ia64-tdep.h:191
IA64_BSPSTORE_REGNUM
#define IA64_BSPSTORE_REGNUM
Definition: ia64-tdep.h:177
IA64_GR0_REGNUM
#define IA64_GR0_REGNUM
Definition: ia64-tdep.h:32
IA64_BR0_REGNUM
#define IA64_BR0_REGNUM
Definition: ia64-tdep.h:137
IA64_EC_REGNUM
#define IA64_EC_REGNUM
Definition: ia64-tdep.h:193
IA64_IP_REGNUM
#define IA64_IP_REGNUM
Definition: ia64-tdep.h:161
IA64_PSR_REGNUM
#define IA64_PSR_REGNUM
Definition: ia64-tdep.h:164
IA64_PR_REGNUM
#define IA64_PR_REGNUM
Definition: ia64-tdep.h:158
REGCACHE_MAP_SKIP
Definition: regcache.h:168
IA64_UNAT_REGNUM
#define IA64_UNAT_REGNUM
Definition: ia64-tdep.h:188
IA64_CFM_REGNUM
#define IA64_CFM_REGNUM
Definition: ia64-tdep.h:167
IA64_LC_REGNUM
#define IA64_LC_REGNUM
Definition: ia64-tdep.h:192

Definition at line 137 of file ia64-linux-tdep.c.

## ◆ ia64_linux_gregset

const struct regset ia64_linux_gregset
| static

Initial value:
=
{
ia64_linux_gregmap,
regcache_supply_regset, regcache_collect_regset
}
regcache_supply_regset
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
ia64_linux_gregmap
static const struct regcache_map_entry ia64_linux_gregmap[]
Definition: ia64-linux-tdep.c:137
regcache_collect_regset
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211

Definition at line 192 of file ia64-linux-tdep.c.

Referenced by ia64_linux_iterate_over_regset_sections().