GDB (xrefs)
Macros | Functions | Variables
/tmp/gdb-8.1/gdb/ia64-linux-nat.c File Reference
#include "defs.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 "nat/gdb_ptrace.h"
#include "gdb_wait.h"
#include <sys/reg.h>
#include <sys/syscall.h>
#include <sys/user.h>
#include <asm/ptrace_offsets.h>
#include <sys/procfs.h>
#include "gregset.h"
#include "inf-ptrace.h"

Go to the source code of this file.

Macros

#define COPY_REG(_idx_, _regi_)
 
#define IA64_PSR_DB   (1UL << 24)
 
#define IA64_PSR_DD   (1UL << 39)
 

Functions

static CORE_ADDR ia64_register_addr (struct gdbarch *gdbarch, int regno)
 
static int ia64_cannot_fetch_register (struct gdbarch *gdbarch, int regno)
 
static int ia64_cannot_store_register (struct gdbarch *gdbarch, int regno)
 
void supply_gregset (struct regcache *regcache, const gregset_t *gregsetp)
 
void fill_gregset (const struct regcache *regcache, gregset_t *gregsetp, int regno)
 
void supply_fpregset (struct regcache *regcache, const fpregset_t *fpregsetp)
 
void fill_fpregset (const struct regcache *regcache, fpregset_t *fpregsetp, int regno)
 
static void enable_watchpoints_in_psr (ptid_t ptid)
 
static void store_debug_register (ptid_t ptid, int idx, long val)
 
static void store_debug_register_pair (ptid_t ptid, int idx, long *dbr_addr, long *dbr_mask)
 
static int is_power_of_2 (int val)
 
static int ia64_linux_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond)
 
static int ia64_linux_remove_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond)
 
static void ia64_linux_new_thread (struct lwp_info *lp)
 
static int ia64_linux_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p)
 
static int ia64_linux_stopped_by_watchpoint (struct target_ops *ops)
 
static int ia64_linux_can_use_hw_breakpoint (struct target_ops *self, enum bptype type, int cnt, int othertype)
 
static void ia64_linux_fetch_register (struct regcache *regcache, int regnum)
 
static void ia64_linux_fetch_registers (struct target_ops *ops, struct regcache *regcache, int regnum)
 
static void ia64_linux_store_register (const struct regcache *regcache, int regnum)
 
static void ia64_linux_store_registers (struct target_ops *ops, struct regcache *regcache, int regnum)
 
static enum target_xfer_status ia64_linux_xfer_partial (struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
 
static int ia64_linux_status_is_event (int status)
 
void _initialize_ia64_linux_nat (void)
 

Variables

static int u_offsets []
 
static long debug_registers [8]
 
static target_xfer_partial_ftypesuper_xfer_partial
 

Macro Definition Documentation

◆ COPY_REG

#define COPY_REG (   _idx_,
  _regi_ 
)
Value:
if ((regno == -1) || regno == _regi_) \
regcache_raw_collect (regcache, _regi_, regp + _idx_)

Referenced by fill_gregset().

◆ IA64_PSR_DB

#define IA64_PSR_DB   (1UL << 24)

Definition at line 490 of file ia64-linux-nat.c.

Referenced by enable_watchpoints_in_psr().

◆ IA64_PSR_DD

#define IA64_PSR_DD   (1UL << 39)

Definition at line 491 of file ia64-linux-nat.c.

Referenced by ia64_linux_stopped_data_address().

Function Documentation

◆ _initialize_ia64_linux_nat()

void _initialize_ia64_linux_nat ( void  )

◆ enable_watchpoints_in_psr()

static void enable_watchpoints_in_psr ( ptid_t  ptid)
static

◆ fill_fpregset()

void fill_fpregset ( const struct regcache regcache,
fpregset_t fpregsetp,
int  regno 
)

Definition at line 477 of file ia64-linux-nat.c.

References IA64_FR0_REGNUM, IA64_FR127_REGNUM, and regcache_raw_collect().

◆ fill_gregset()

void fill_gregset ( const struct regcache regcache,
gregset_t gregsetp,
int  regno 
)

◆ ia64_cannot_fetch_register()

static int ia64_cannot_fetch_register ( struct gdbarch gdbarch,
int  regno 
)
static

Definition at line 321 of file ia64-linux-nat.c.

References gdbarch_num_regs(), and u_offsets.

Referenced by ia64_linux_fetch_register().

◆ ia64_cannot_store_register()

static int ia64_cannot_store_register ( struct gdbarch gdbarch,
int  regno 
)
static

Definition at line 329 of file ia64-linux-nat.c.

References gdbarch_num_regs(), IA64_BSPSTORE_REGNUM, and u_offsets.

Referenced by ia64_linux_store_register().

◆ ia64_linux_can_use_hw_breakpoint()

static int ia64_linux_can_use_hw_breakpoint ( struct target_ops self,
enum bptype  type,
int  cnt,
int  othertype 
)
static

Definition at line 684 of file ia64-linux-nat.c.

Referenced by _initialize_ia64_linux_nat().

◆ ia64_linux_fetch_register()

static void ia64_linux_fetch_register ( struct regcache regcache,
int  regnum 
)
static

◆ ia64_linux_fetch_registers()

static void ia64_linux_fetch_registers ( struct target_ops ops,
struct regcache regcache,
int  regnum 
)
static

◆ ia64_linux_insert_watchpoint()

static int ia64_linux_insert_watchpoint ( struct target_ops self,
CORE_ADDR  addr,
int  len,
enum target_hw_bp_type  type,
struct expression cond 
)
static

◆ ia64_linux_new_thread()

static void ia64_linux_new_thread ( struct lwp_info lp)
static

◆ ia64_linux_remove_watchpoint()

static int ia64_linux_remove_watchpoint ( struct target_ops self,
CORE_ADDR  addr,
int  len,
enum target_hw_bp_type  type,
struct expression cond 
)
static

◆ ia64_linux_status_is_event()

static int ia64_linux_status_is_event ( int  status)
static

Definition at line 888 of file ia64-linux-nat.c.

References status, WIFSTOPPED, and WSTOPSIG.

Referenced by _initialize_ia64_linux_nat().

◆ ia64_linux_stopped_by_watchpoint()

static int ia64_linux_stopped_by_watchpoint ( struct target_ops ops)
static

Definition at line 677 of file ia64-linux-nat.c.

References ia64_linux_stopped_data_address().

Referenced by _initialize_ia64_linux_nat().

◆ ia64_linux_stopped_data_address()

static int ia64_linux_stopped_data_address ( struct target_ops ops,
CORE_ADDR addr_p 
)
static

◆ ia64_linux_store_register()

static void ia64_linux_store_register ( const struct regcache regcache,
int  regnum 
)
static

◆ ia64_linux_store_registers()

static void ia64_linux_store_registers ( struct target_ops ops,
struct regcache regcache,
int  regnum 
)
static

◆ ia64_linux_xfer_partial()

static enum target_xfer_status ia64_linux_xfer_partial ( struct target_ops ops,
enum target_object  object,
const char *  annex,
gdb_byte readbuf,
const gdb_byte writebuf,
ULONGEST  offset,
ULONGEST  len,
ULONGEST xfered_len 
)
static

◆ ia64_register_addr()

static CORE_ADDR ia64_register_addr ( struct gdbarch gdbarch,
int  regno 
)
static

Definition at line 305 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().

◆ is_power_of_2()

static int is_power_of_2 ( int  val)
static

Definition at line 533 of file ia64-linux-nat.c.

Referenced by ia64_linux_insert_watchpoint(), and ia64_linux_remove_watchpoint().

◆ store_debug_register()

static void store_debug_register ( ptid_t  ptid,
int  idx,
long  val 
)
static

◆ store_debug_register_pair()

static void store_debug_register_pair ( ptid_t  ptid,
int  idx,
long *  dbr_addr,
long *  dbr_mask 
)
static

◆ supply_fpregset()

void supply_fpregset ( struct regcache regcache,
const fpregset_t fpregsetp 
)

◆ supply_gregset()

void supply_gregset ( struct regcache regcache,
const gregset_t gregsetp 
)

Variable Documentation

◆ debug_registers

long debug_registers[8]
static

◆ super_xfer_partial

target_xfer_partial_ftype* super_xfer_partial
static

◆ u_offsets

int u_offsets[]
static