GDB (xrefs)
|
#include "defs.h"
#include "gdb_string.h"
#include "inferior.h"
#include "target.h"
#include "gdbcore.h"
#include "regcache.h"
#include "ia64-tdep.h"
#include "linux-nat.h"
#include <signal.h>
#include <sys/ptrace.h>
#include "gdb_wait.h"
#include <sys/syscall.h>
#include <sys/user.h>
#include <asm/ptrace_offsets.h>
#include <sys/procfs.h>
#include "gregset.h"
Go to the source code of this file.
#define COPY_REG | ( | _idx_, | |
_regi_ | |||
) |
if ((regno == -1) || regno == _regi_) \ regcache_raw_collect (regcache, _regi_, regp + _idx_)
Referenced by fill_gregset().
#define IA64_PSR_DB (1UL << 24) |
Definition at line 489 of file ia64-linux-nat.c.
Referenced by enable_watchpoints_in_psr().
#define IA64_PSR_DD (1UL << 39) |
Definition at line 490 of file ia64-linux-nat.c.
Referenced by ia64_linux_stopped_data_address().
void _initialize_ia64_linux_nat | ( | void | ) |
Definition at line 869 of file ia64-linux-nat.c.
References ia64_linux_can_use_hw_breakpoint(), ia64_linux_fetch_registers(), ia64_linux_insert_watchpoint(), ia64_linux_new_thread(), ia64_linux_remove_watchpoint(), ia64_linux_status_is_event(), ia64_linux_stopped_by_watchpoint(), ia64_linux_stopped_data_address(), ia64_linux_store_registers(), ia64_linux_xfer_partial(), linux_nat_add_target(), linux_nat_set_new_thread(), linux_nat_set_status_is_event(), linux_target(), super_xfer_partial, target_ops::to_can_use_hw_breakpoint, target_ops::to_fetch_registers, target_ops::to_have_steppable_watchpoint, target_ops::to_insert_watchpoint, target_ops::to_remove_watchpoint, target_ops::to_stopped_by_watchpoint, target_ops::to_stopped_data_address, target_ops::to_store_registers, and target_ops::to_xfer_partial.
static void enable_watchpoints_in_psr | ( | ptid_t | ptid | ) | [static] |
Definition at line 493 of file ia64-linux-nat.c.
References get_thread_regcache(), IA64_PSR_DB, IA64_PSR_REGNUM, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), and ULONGEST.
Referenced by ia64_linux_insert_watchpoint(), and ia64_linux_new_thread().
void fill_fpregset | ( | const struct regcache * | regcache, |
fpregset_t * | fpregsetp, | ||
int | regno | ||
) |
Definition at line 476 of file ia64-linux-nat.c.
References IA64_FR0_REGNUM, IA64_FR127_REGNUM, and regcache_raw_collect().
void fill_gregset | ( | const struct regcache * | regcache, |
gregset_t * | gregsetp, | ||
int | regno | ||
) |
Definition at line 403 of file ia64-linux-nat.c.
References COPY_REG, IA64_BR0_REGNUM, IA64_BR7_REGNUM, IA64_BSP_REGNUM, IA64_BSPSTORE_REGNUM, IA64_CCV_REGNUM, IA64_CFM_REGNUM, IA64_EC_REGNUM, IA64_FPSR_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_RSC_REGNUM, and IA64_UNAT_REGNUM.
static int ia64_cannot_fetch_register | ( | struct gdbarch * | gdbarch, |
int | regno | ||
) | [static] |
Definition at line 320 of file ia64-linux-nat.c.
References gdbarch_num_regs(), and u_offsets.
Referenced by ia64_linux_fetch_register().
static int ia64_cannot_store_register | ( | struct gdbarch * | gdbarch, |
int | regno | ||
) | [static] |
Definition at line 328 of file ia64-linux-nat.c.
References gdbarch_num_regs(), IA64_BSPSTORE_REGNUM, and u_offsets.
Referenced by ia64_linux_store_register().
static int ia64_linux_can_use_hw_breakpoint | ( | int | type, |
int | cnt, | ||
int | othertype | ||
) | [static] |
Definition at line 679 of file ia64-linux-nat.c.
Referenced by _initialize_ia64_linux_nat().
static void ia64_linux_fetch_register | ( | struct regcache * | regcache, |
int | regnum | ||
) | [static] |
Definition at line 688 of file ia64-linux-nat.c.
References _, error(), gdb_assert, gdbarch_register_name(), get_regcache_arch(), ia64_cannot_fetch_register(), IA64_FR0_REGNUM, IA64_FR1_REGNUM, IA64_GR0_REGNUM, ia64_register_addr(), inferior_ptid, PT_READ_U, ptid_get_lwp(), ptid_get_pid(), ptrace(), PTRACE_TYPE_ARG3, PTRACE_TYPE_RET, regcache_raw_supply(), register_size(), safe_strerror(), and size.
Referenced by ia64_linux_fetch_registers().
static void ia64_linux_fetch_registers | ( | struct target_ops * | ops, |
struct regcache * | regcache, | ||
int | regnum | ||
) | [static] |
Definition at line 765 of file ia64-linux-nat.c.
References gdbarch_num_regs(), get_regcache_arch(), and ia64_linux_fetch_register().
Referenced by _initialize_ia64_linux_nat().
static int ia64_linux_insert_watchpoint | ( | CORE_ADDR | addr, |
int | len, | ||
int | rw, | ||
struct expression * | cond | ||
) | [static] |
Definition at line 545 of file ia64-linux-nat.c.
References ALL_LWPS, debug_registers, enable_watchpoints_in_psr(), hw_access, hw_read, hw_write, is_power_of_2(), L, gdb::printing::long, lwp_info::ptid, and store_debug_register_pair().
Referenced by _initialize_ia64_linux_nat().
static void ia64_linux_new_thread | ( | struct lwp_info * | lp | ) | [static] |
Definition at line 632 of file ia64-linux-nat.c.
References debug_registers, enable_watchpoints_in_psr(), lwp_info::ptid, and store_debug_register().
Referenced by _initialize_ia64_linux_nat().
static int ia64_linux_remove_watchpoint | ( | CORE_ADDR | addr, |
int | len, | ||
int | type, | ||
struct expression * | cond | ||
) | [static] |
Definition at line 599 of file ia64-linux-nat.c.
References ALL_LWPS, debug_registers, is_power_of_2(), lwp_info::ptid, and store_debug_register_pair().
Referenced by _initialize_ia64_linux_nat().
static int ia64_linux_status_is_event | ( | int | status | ) | [static] |
Definition at line 860 of file ia64-linux-nat.c.
Referenced by _initialize_ia64_linux_nat().
static int ia64_linux_stopped_by_watchpoint | ( | void | ) | [static] |
Definition at line 672 of file ia64-linux-nat.c.
References current_target, and ia64_linux_stopped_data_address().
Referenced by _initialize_ia64_linux_nat().
static int ia64_linux_stopped_data_address | ( | struct target_ops * | ops, |
CORE_ADDR * | addr_p | ||
) | [static] |
Definition at line 649 of file ia64-linux-nat.c.
References get_current_regcache(), IA64_PSR_DD, IA64_PSR_REGNUM, inferior_ptid, linux_nat_get_siginfo(), regcache_cooked_read_unsigned(), and regcache_cooked_write_unsigned().
Referenced by _initialize_ia64_linux_nat(), and ia64_linux_stopped_by_watchpoint().
static void ia64_linux_store_register | ( | const struct regcache * | regcache, |
int | regnum | ||
) | [static] |
Definition at line 780 of file ia64-linux-nat.c.
References _, error(), gdb_assert, gdbarch_register_name(), get_regcache_arch(), ia64_cannot_store_register(), ia64_register_addr(), inferior_ptid, PT_WRITE_U, ptid_get_lwp(), ptid_get_pid(), ptrace(), PTRACE_TYPE_ARG3, PTRACE_TYPE_RET, regcache_raw_collect(), register_size(), safe_strerror(), and size.
Referenced by ia64_linux_store_registers().
static void ia64_linux_store_registers | ( | struct target_ops * | ops, |
struct regcache * | regcache, | ||
int | regnum | ||
) | [static] |
Definition at line 823 of file ia64-linux-nat.c.
References gdbarch_num_regs(), get_regcache_arch(), and ia64_linux_store_register().
Referenced by _initialize_ia64_linux_nat().
static LONGEST ia64_linux_xfer_partial | ( | struct target_ops * | ops, |
enum target_object | object, | ||
const char * | annex, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf, | ||
ULONGEST | offset, | ||
LONGEST | len | ||
) | [static] |
Definition at line 841 of file ia64-linux-nat.c.
References super_xfer_partial, and TARGET_OBJECT_UNWIND_TABLE.
Referenced by _initialize_ia64_linux_nat().
static CORE_ADDR ia64_register_addr | ( | struct gdbarch * | gdbarch, |
int | regno | ||
) | [static] |
Definition at line 304 of file ia64-linux-nat.c.
References _, error(), gdbarch_num_regs(), and u_offsets.
Referenced by ia64_linux_fetch_register(), and ia64_linux_store_register().
static int is_power_of_2 | ( | int | val | ) | [static] |
Definition at line 532 of file ia64-linux-nat.c.
Referenced by ia64_linux_insert_watchpoint(), and ia64_linux_remove_watchpoint().
static void store_debug_register | ( | ptid_t | ptid, |
int | idx, | ||
long | val | ||
) | [static] |
Definition at line 510 of file ia64-linux-nat.c.
References PT_WRITE_U, ptid_get_lwp(), ptid_get_pid(), ptrace(), and PTRACE_TYPE_ARG3.
Referenced by ia64_linux_new_thread(), and store_debug_register_pair().
static void store_debug_register_pair | ( | ptid_t | ptid, |
int | idx, | ||
long * | dbr_addr, | ||
long * | dbr_mask | ||
) | [static] |
Definition at line 522 of file ia64-linux-nat.c.
References store_debug_register().
Referenced by ia64_linux_insert_watchpoint(), and ia64_linux_remove_watchpoint().
void supply_fpregset | ( | struct regcache * | regcache, |
const fpregset_t * | fpregsetp | ||
) |
Definition at line 446 of file ia64-linux-nat.c.
References from, IA64_FR0_REGNUM, IA64_FR127_REGNUM, IA64_FR1_REGNUM, IA64_FR2_REGNUM, and regcache_raw_supply().
void supply_gregset | ( | struct regcache * | regcache, |
const gregset_t * | gregsetp | ||
) |
Definition at line 366 of file ia64-linux-nat.c.
References IA64_BR0_REGNUM, IA64_BR7_REGNUM, IA64_BSP_REGNUM, IA64_BSPSTORE_REGNUM, IA64_CCV_REGNUM, IA64_CFM_REGNUM, IA64_EC_REGNUM, IA64_FPSR_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_RSC_REGNUM, IA64_UNAT_REGNUM, and regcache_raw_supply().
long debug_registers[8] [static] |
Definition at line 507 of file ia64-linux-nat.c.
Referenced by ia64_linux_insert_watchpoint(), ia64_linux_new_thread(), and ia64_linux_remove_watchpoint().
LONGEST(* super_xfer_partial)(struct target_ops *, enum target_object, const char *, gdb_byte *, const gdb_byte *, ULONGEST, LONGEST) [static] |
Definition at line 836 of file ia64-linux-nat.c.
Referenced by _initialize_ia64_linux_nat(), and ia64_linux_xfer_partial().
Definition at line 50 of file ia64-linux-nat.c.
Referenced by ia64_cannot_fetch_register(), ia64_cannot_store_register(), and ia64_register_addr().