GDB (xrefs)

Classes | Macros | Typedefs | Functions | Variables
/tmp/gdb-8.1/gdb/ppc-linux-nat.c File Reference
`#include "defs.h"`
`#include "observer.h"`
`#include "frame.h"`
`#include "inferior.h"`
`#include "gdbthread.h"`
`#include "gdbcore.h"`
`#include "regcache.h"`
`#include "target.h"`
`#include "linux-nat.h"`
`#include <sys/types.h>`
`#include <signal.h>`
`#include <sys/user.h>`
`#include <sys/ioctl.h>`
`#include "gdb_wait.h"`
`#include <fcntl.h>`
`#include <sys/procfs.h>`
`#include "nat/gdb_ptrace.h"`
`#include "inf-ptrace.h"`
`#include "gregset.h"`
`#include "ppc-tdep.h"`
`#include "ppc-linux-tdep.h"`
`#include "elf/common.h"`
`#include "auxv.h"`
`#include "nat/ppc-linux.h"`

Go to the source code of this file.

## Classes
struct | ppc_debug_info
struct | ppc_hw_breakpoint
struct | gdb_evrregset_t
struct | hw_break_tuple
struct | thread_points

## Macros
#define | PTRACE_GET_DEBUGREG 25
#define | PTRACE_SET_DEBUGREG 26
#define | PTRACE_GETSIGINFO 0x4202
#define | PPC_PTRACE_GETHWDBGINFO 0x89
#define | PPC_PTRACE_SETHWDEBUG 0x88
#define | PPC_PTRACE_DELHWDEBUG 0x87
#define | PPC_DEBUG_FEATURE_INSN_BP_RANGE 0x1
#define | PPC_DEBUG_FEATURE_INSN_BP_MASK 0x2
#define | PPC_DEBUG_FEATURE_DATA_BP_RANGE 0x4
#define | PPC_DEBUG_FEATURE_DATA_BP_MASK 0x8
#define | PPC_BREAKPOINT_TRIGGER_EXECUTE 0x1
#define | PPC_BREAKPOINT_TRIGGER_READ 0x2
#define | PPC_BREAKPOINT_TRIGGER_WRITE 0x4
#define | PPC_BREAKPOINT_TRIGGER_RW 0x6
#define | PPC_BREAKPOINT_MODE_EXACT 0x0
#define | PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE 0x1
#define | PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE 0x2
#define | PPC_BREAKPOINT_MODE_MASK 0x3
#define | PPC_BREAKPOINT_CONDITION_NONE 0x0
#define | PPC_BREAKPOINT_CONDITION_AND 0x1
#define | PPC_BREAKPOINT_CONDITION_EXACT 0x1
#define | PPC_BREAKPOINT_CONDITION_OR 0x2
#define | PPC_BREAKPOINT_CONDITION_AND_OR 0x3
#define | PPC_BREAKPOINT_CONDITION_BE_ALL 0x00ff0000
#define | PPC_BREAKPOINT_CONDITION_BE_SHIFT 16
#define | PPC_BREAKPOINT_CONDITION_BE(n) (1<<((n)+PPC_BREAKPOINT_CONDITION_BE_SHIFT))
#define | PPC_DEBUG_FEATURE_DATA_BP_DAWR 0x10
#define | PTRACE_GETREGS 12
#define | PTRACE_SETREGS 13
#define | PTRACE_GETFPREGS 14
#define | PTRACE_SETFPREGS 15
#define | SIZEOF_VRREGS 33*16+4
#define | SIZEOF_VSXREGS 32*8
#define | PPC_DEBUG_CURRENT_VERSION 1

## Typedefs
typedef char | gdb_vrregset_t[SIZEOF_VRREGS]
typedef char | gdb_vsxregset_t[SIZEOF_VSXREGS]
typedef struct thread_points * | thread_points_p

## Functions
static int | ppc_register_u_addr (struct gdbarch *gdbarch, int regno)
static void | fetch_vsx_register (struct regcache *regcache, int tid, int regno)
static void | fetch_altivec_register (struct regcache *regcache, int tid, int regno)
static void | get_spe_registers (int tid, struct gdb_evrregset_t *evrregset)
static void | fetch_spe_register (struct regcache *regcache, int tid, int regno)
static void | fetch_register (struct regcache *regcache, int tid, int regno)
static void | supply_vsxregset (struct regcache *regcache, gdb_vsxregset_t *vsxregsetp)
static void | supply_vrregset (struct regcache *regcache, gdb_vrregset_t *vrregsetp)
static void | fetch_vsx_registers (struct regcache *regcache, int tid)
static void | fetch_altivec_registers (struct regcache *regcache, int tid)
static int | fetch_all_gp_regs (struct regcache *regcache, int tid)
static void | fetch_gp_regs (struct regcache *regcache, int tid)
static int | fetch_all_fp_regs (struct regcache *regcache, int tid)
static void | fetch_fp_regs (struct regcache *regcache, int tid)
static void | fetch_ppc_registers (struct regcache *regcache, int tid)
static void | ppc_linux_fetch_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno)
static void | store_vsx_register (const struct regcache *regcache, int tid, int regno)
static void | store_altivec_register (const struct regcache *regcache, int tid, int regno)
static void | set_spe_registers (int tid, struct gdb_evrregset_t *evrregset)
static void | store_spe_register (const struct regcache *regcache, int tid, int regno)
static void | store_register (const struct regcache *regcache, int tid, int regno)
static void | fill_vsxregset (const struct regcache *regcache, gdb_vsxregset_t *vsxregsetp)
static void | fill_vrregset (const struct regcache *regcache, gdb_vrregset_t *vrregsetp)
static void | store_vsx_registers (const struct regcache *regcache, int tid)
static void | store_altivec_registers (const struct regcache *regcache, int tid)
static int | store_all_gp_regs (const struct regcache *regcache, int tid, int regno)
static void | store_gp_regs (const struct regcache *regcache, int tid, int regno)
static int | store_all_fp_regs (const struct regcache *regcache, int tid, int regno)
static void | store_fp_regs (const struct regcache *regcache, int tid, int regno)
static void | store_ppc_registers (const struct regcache *regcache, int tid)
static unsigned long | ppc_linux_get_hwcap (void)
| DEF_VEC_P (thread_points_p)
| VEC (thread_points_p)
static int | ppc_linux_can_use_hw_breakpoint (struct target_ops *self, enum bptype type, int cnt, int ot)
static int | ppc_linux_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR addr, int len)
static int | hwdebug_point_cmp (struct ppc_hw_breakpoint *a, struct ppc_hw_breakpoint *b)
static struct thread_points * | hwdebug_find_thread_points_by_tid (int tid, int alloc_new)
static void | hwdebug_insert_point (struct ppc_hw_breakpoint *b, int tid)
static void | hwdebug_remove_point (struct ppc_hw_breakpoint *b, int tid)
static int | ppc_linux_ranged_break_num_registers (struct target_ops *target)
static int | ppc_linux_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static int | ppc_linux_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static int | get_trigger_type (enum target_hw_bp_type type)
static int | ppc_linux_insert_mask_watchpoint (struct target_ops *ops, CORE_ADDR addr, CORE_ADDR mask, enum target_hw_bp_type rw)
static int | ppc_linux_remove_mask_watchpoint (struct target_ops *ops, CORE_ADDR addr, CORE_ADDR mask, enum target_hw_bp_type rw)
static int | can_use_watchpoint_cond_accel (void)
static void | calculate_dvc (CORE_ADDR addr, int len, CORE_ADDR data_value, uint32_t *condition_mode, uint64_t *condition_value)
static int | num_memory_accesses (struct value *v)
static int | check_condition (CORE_ADDR watch_addr, struct expression *cond, CORE_ADDR *data_value, int *len)
static int | ppc_linux_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR addr, int len, int rw, struct expression *cond)
static void | create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond, int insert)
static int | ppc_linux_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond)
static int | ppc_linux_remove_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond)
static void | ppc_linux_new_thread (struct lwp_info *lp)
static void | ppc_linux_thread_exit (struct thread_info *tp, int silent)
static int | ppc_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
static int | ppc_linux_stopped_by_watchpoint (struct target_ops *ops)
static int | ppc_linux_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr, CORE_ADDR start, int length)
static int | ppc_linux_masked_watch_num_registers (struct target_ops *target, CORE_ADDR addr, CORE_ADDR mask)
static void | ppc_linux_store_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno)
void | supply_gregset (struct regcache *regcache, const gdb_gregset_t *gregsetp)
void | fill_gregset (const struct regcache *regcache, gdb_gregset_t *gregsetp, int regno)
void | supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregsetp)
void | fill_fpregset (const struct regcache *regcache, gdb_fpregset_t *fpregsetp, int regno)
static int | ppc_linux_target_wordsize (void)
static int | ppc_linux_auxv_parse (struct target_ops *ops, gdb_byte **readptr, gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp)
static const struct target_desc * | ppc_linux_read_description (struct target_ops *ops)
void | _initialize_ppc_linux_nat (void)

## Variables
int | have_ptrace_getsetvsxregs = 1
int | have_ptrace_getvrregs = 1
int | have_ptrace_getsetevrregs = 1
int | have_ptrace_getsetregs = 1
int | have_ptrace_getsetfpregs = 1
static long | saved_dabr_value
static struct ppc_debug_info | hwdebug_info
static size_t | max_slots_number = 0

## Macro Definition Documentation

## ◆ PPC_BREAKPOINT_CONDITION_AND

#define PPC_BREAKPOINT_CONDITION_AND 0x1

Definition at line 117 of file ppc-linux-nat.c.

Referenced by calculate_dvc().

## ◆ PPC_BREAKPOINT_CONDITION_AND_OR

#define PPC_BREAKPOINT_CONDITION_AND_OR 0x3

Definition at line 120 of file ppc-linux-nat.c.

## ◆ PPC_BREAKPOINT_CONDITION_BE

#define PPC_BREAKPOINT_CONDITION_BE | ( |  | n | ) | (1<<((n)+PPC_BREAKPOINT_CONDITION_BE_SHIFT))

Definition at line 123 of file ppc-linux-nat.c.

Referenced by calculate_dvc().

## ◆ PPC_BREAKPOINT_CONDITION_BE_ALL

#define PPC_BREAKPOINT_CONDITION_BE_ALL 0x00ff0000

Definition at line 121 of file ppc-linux-nat.c.

## ◆ PPC_BREAKPOINT_CONDITION_BE_SHIFT

#define PPC_BREAKPOINT_CONDITION_BE_SHIFT 16

Definition at line 122 of file ppc-linux-nat.c.

## ◆ PPC_BREAKPOINT_CONDITION_EXACT

#define PPC_BREAKPOINT_CONDITION_EXACT 0x1

Definition at line 118 of file ppc-linux-nat.c.

## ◆ PPC_BREAKPOINT_CONDITION_NONE

#define PPC_BREAKPOINT_CONDITION_NONE 0x0

Definition at line 116 of file ppc-linux-nat.c.

Referenced by can_use_watchpoint_cond_accel(), create_watchpoint_request(), ppc_linux_insert_hw_breakpoint(), ppc_linux_insert_mask_watchpoint(), ppc_linux_remove_hw_breakpoint(), and ppc_linux_remove_mask_watchpoint().

## ◆ PPC_BREAKPOINT_CONDITION_OR

#define PPC_BREAKPOINT_CONDITION_OR 0x2

Definition at line 119 of file ppc-linux-nat.c.

## ◆ PPC_BREAKPOINT_MODE_EXACT

#define PPC_BREAKPOINT_MODE_EXACT 0x0

Definition at line 110 of file ppc-linux-nat.c.

Referenced by create_watchpoint_request(), ppc_linux_insert_hw_breakpoint(), and ppc_linux_remove_hw_breakpoint().

## ◆ PPC_BREAKPOINT_MODE_MASK

#define PPC_BREAKPOINT_MODE_MASK 0x3

Definition at line 113 of file ppc-linux-nat.c.

Referenced by ppc_linux_insert_mask_watchpoint(), and ppc_linux_remove_mask_watchpoint().

## ◆ PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE

#define PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE 0x2

Definition at line 112 of file ppc-linux-nat.c.

## ◆ PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE

#define PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE 0x1

Definition at line 111 of file ppc-linux-nat.c.

Referenced by create_watchpoint_request(), ppc_linux_insert_hw_breakpoint(), and ppc_linux_remove_hw_breakpoint().

## ◆ PPC_BREAKPOINT_TRIGGER_EXECUTE

#define PPC_BREAKPOINT_TRIGGER_EXECUTE 0x1

Definition at line 104 of file ppc-linux-nat.c.

Referenced by ppc_linux_insert_hw_breakpoint(), ppc_linux_remove_hw_breakpoint(), and ppc_linux_stopped_data_address().

## ◆ PPC_BREAKPOINT_TRIGGER_READ

#define PPC_BREAKPOINT_TRIGGER_READ 0x2

Definition at line 105 of file ppc-linux-nat.c.

Referenced by get_trigger_type().

## ◆ PPC_BREAKPOINT_TRIGGER_RW

#define PPC_BREAKPOINT_TRIGGER_RW 0x6

Definition at line 107 of file ppc-linux-nat.c.

## ◆ PPC_BREAKPOINT_TRIGGER_WRITE

#define PPC_BREAKPOINT_TRIGGER_WRITE 0x4

Definition at line 106 of file ppc-linux-nat.c.

Referenced by get_trigger_type().

## ◆ PPC_DEBUG_CURRENT_VERSION

#define PPC_DEBUG_CURRENT_VERSION 1

Referenced by create_watchpoint_request(), ppc_linux_insert_hw_breakpoint(), ppc_linux_insert_mask_watchpoint(), ppc_linux_remove_hw_breakpoint(), and ppc_linux_remove_mask_watchpoint().

## ◆ PPC_DEBUG_FEATURE_DATA_BP_DAWR

#define PPC_DEBUG_FEATURE_DATA_BP_DAWR 0x10

Definition at line 130 of file ppc-linux-nat.c.

Referenced by ppc_linux_region_ok_for_hw_watchpoint().

## ◆ PPC_DEBUG_FEATURE_DATA_BP_MASK

#define PPC_DEBUG_FEATURE_DATA_BP_MASK 0x8

Definition at line 90 of file ppc-linux-nat.c.

Referenced by ppc_linux_masked_watch_num_registers().

## ◆ PPC_DEBUG_FEATURE_DATA_BP_RANGE

#define PPC_DEBUG_FEATURE_DATA_BP_RANGE 0x4

Definition at line 89 of file ppc-linux-nat.c.

Referenced by create_watchpoint_request(), and ppc_linux_region_ok_for_hw_watchpoint().

## ◆ PPC_DEBUG_FEATURE_INSN_BP_MASK

#define PPC_DEBUG_FEATURE_INSN_BP_MASK 0x2

Definition at line 88 of file ppc-linux-nat.c.

## ◆ PPC_DEBUG_FEATURE_INSN_BP_RANGE

#define PPC_DEBUG_FEATURE_INSN_BP_RANGE 0x1

Definition at line 87 of file ppc-linux-nat.c.

Referenced by ppc_linux_ranged_break_num_registers().

## ◆ PPC_PTRACE_DELHWDEBUG

#define PPC_PTRACE_DELHWDEBUG 0x87

Definition at line 73 of file ppc-linux-nat.c.

Referenced by hwdebug_remove_point(), and ppc_linux_new_thread().

## ◆ PPC_PTRACE_GETHWDBGINFO

#define PPC_PTRACE_GETHWDBGINFO 0x89

Definition at line 71 of file ppc-linux-nat.c.

Referenced by VEC().

## ◆ PPC_PTRACE_SETHWDEBUG

#define PPC_PTRACE_SETHWDEBUG 0x88

Definition at line 72 of file ppc-linux-nat.c.

Referenced by hwdebug_insert_point().

## ◆ PTRACE_GET_DEBUGREG

#define PTRACE_GET_DEBUGREG 25

Definition at line 53 of file ppc-linux-nat.c.

## ◆ PTRACE_GETFPREGS

#define PTRACE_GETFPREGS 14

Definition at line 142 of file ppc-linux-nat.c.

Referenced by amd64_linux_fetch_inferior_registers(), amd64_linux_store_inferior_registers(), fetch_all_fp_regs(), fetch_fpregs(), mips64_linux_regsets_fetch_registers(), mips64_linux_regsets_store_registers(), store_all_fp_regs(), and store_fpregs().

## ◆ PTRACE_GETREGS

#define PTRACE_GETREGS 12

Definition at line 136 of file ppc-linux-nat.c.

Referenced by amd64_linux_fetch_inferior_registers(), amd64_linux_store_inferior_registers(), fetch_all_gp_regs(), fetch_gregs(), fetch_inferior_registers(), fetch_regs(), linux_ptrace_test_ret_to_nx(), mips64_linux_regsets_fetch_registers(), mips64_linux_regsets_store_registers(), ps_get_thread_area(), store_all_gp_regs(), store_gregs(), store_inferior_registers(), and store_regs().

## ◆ PTRACE_GETSIGINFO

#define PTRACE_GETSIGINFO 0x4202

Definition at line 59 of file ppc-linux-nat.c.

## ◆ PTRACE_SET_DEBUGREG

#define PTRACE_SET_DEBUGREG 26

Definition at line 56 of file ppc-linux-nat.c.

Referenced by ppc_linux_can_use_hw_breakpoint(), ppc_linux_insert_watchpoint(), ppc_linux_new_thread(), and ppc_linux_remove_watchpoint().

## ◆ PTRACE_SETFPREGS

#define PTRACE_SETFPREGS 15

Definition at line 145 of file ppc-linux-nat.c.

Referenced by amd64_linux_store_inferior_registers(), mips64_linux_regsets_store_registers(), store_all_fp_regs(), and store_fpregs().

## ◆ PTRACE_SETREGS

#define PTRACE_SETREGS 13

Definition at line 139 of file ppc-linux-nat.c.

Referenced by amd64_linux_store_inferior_registers(), mips64_linux_regsets_store_registers(), store_all_gp_regs(), store_gregs(), store_inferior_registers(), and store_regs().

## ◆ SIZEOF_VRREGS

#define SIZEOF_VRREGS 33*16+4

Definition at line 175 of file ppc-linux-nat.c.

## ◆ SIZEOF_VSXREGS

#define SIZEOF_VSXREGS 32*8

Definition at line 211 of file ppc-linux-nat.c.

## Typedef Documentation

## ◆ gdb_vrregset_t

typedef char gdb_vrregset_t[SIZEOF_VRREGS]

Definition at line 177 of file ppc-linux-nat.c.

## ◆ gdb_vsxregset_t

typedef char gdb_vsxregset_t[SIZEOF_VSXREGS]

Definition at line 213 of file ppc-linux-nat.c.

## ◆ thread_points_p

typedef struct thread_points * thread_points_p

## Function Documentation

## ◆ _initialize_ppc_linux_nat()

void _initialize_ppc_linux_nat | ( | void |  | ) |

Definition at line 2472 of file ppc-linux-nat.c.

References linux_nat_add_target(), linux_nat_set_new_thread(), linux_target(), observer_attach_thread_exit(), ppc_linux_auxv_parse(), ppc_linux_can_accel_watchpoint_condition(), ppc_linux_can_use_hw_breakpoint(), ppc_linux_fetch_inferior_registers(), ppc_linux_insert_hw_breakpoint(), ppc_linux_insert_mask_watchpoint(), ppc_linux_insert_watchpoint(), ppc_linux_masked_watch_num_registers(), ppc_linux_new_thread(), ppc_linux_ranged_break_num_registers(), ppc_linux_read_description(), ppc_linux_region_ok_for_hw_watchpoint(), ppc_linux_remove_hw_breakpoint(), ppc_linux_remove_mask_watchpoint(), ppc_linux_remove_watchpoint(), ppc_linux_stopped_by_watchpoint(), ppc_linux_stopped_data_address(), ppc_linux_store_inferior_registers(), ppc_linux_thread_exit(), ppc_linux_watchpoint_addr_within_range(), target_ops::to_auxv_parse, target_ops::to_can_accel_watchpoint_condition, target_ops::to_can_use_hw_breakpoint, target_ops::to_fetch_registers, target_ops::to_insert_hw_breakpoint, target_ops::to_insert_mask_watchpoint, target_ops::to_insert_watchpoint, target_ops::to_masked_watch_num_registers, target_ops::to_ranged_break_num_registers, target_ops::to_read_description, target_ops::to_region_ok_for_hw_watchpoint, target_ops::to_remove_hw_breakpoint, target_ops::to_remove_mask_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_watchpoint_addr_within_range.

## ◆ calculate_dvc()

static void calculate_dvc | ( | CORE_ADDR | addr,
|  | int | len,
|  | CORE_ADDR | data_value,
|  | uint32_t * | condition_mode,
|  | uint64_t * | condition_value
| ) |  |
| static

Definition at line 1801 of file ppc-linux-nat.c.

References hwdebug_info, PPC_BREAKPOINT_CONDITION_AND, PPC_BREAKPOINT_CONDITION_BE, and ppc_debug_info::sizeof_condition.

Referenced by create_watchpoint_request().

## ◆ can_use_watchpoint_cond_accel()

static int can_use_watchpoint_cond_accel | ( | void |  | ) |
| static

Definition at line 1764 of file ppc-linux-nat.c.

References ppc_hw_breakpoint::condition_mode, hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_find_thread_points_by_tid(), hwdebug_info, inferior_ptid, max_slots_number, ppc_debug_info::num_condition_regs, PPC_BREAKPOINT_CONDITION_NONE, ptid_get_lwp(), and selftests::ptid::tid.

Referenced by create_watchpoint_request().

## ◆ check_condition()

static int check_condition | ( | CORE_ADDR | watch_addr,
|  | struct expression * | cond,
|  | CORE_ADDR * | data_value,
|  | int * | len
| ) |  |
| static

Definition at line 1891 of file ppc-linux-nat.c.

References check_typedef(), expression::elts, fetch_subexp_value(), free_value_chain(), lval_memory, num_memory_accesses(), exp_element::opcode, TYPE_LENGTH, value_address(), value_as_long(), VALUE_LVAL, and value_type().

Referenced by create_watchpoint_request(), and ppc_linux_can_accel_watchpoint_condition().

## ◆ create_watchpoint_request()

static void create_watchpoint_request | ( | struct ppc_hw_breakpoint * | p,
|  | CORE_ADDR | addr,
|  | int | len,
|  | enum target_hw_bp_type | type,
|  | struct expression * | cond,
|  | int | insert
| ) |  |
| static

Definition at line 1976 of file ppc-linux-nat.c.

References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, calculate_dvc(), can_use_watchpoint_cond_accel(), check_condition(), ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, ppc_debug_info::features, get_trigger_type(), hwdebug_info, ppc_debug_info::num_condition_regs, PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_EXACT, PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE, PPC_DEBUG_CURRENT_VERSION, PPC_DEBUG_FEATURE_DATA_BP_RANGE, ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.

Referenced by ppc_linux_insert_watchpoint(), and ppc_linux_remove_watchpoint().

## ◆ DEF_VEC_P()

DEF_VEC_P | ( | thread_points_p |  | ) |

## ◆ fetch_all_fp_regs()

static int fetch_all_fp_regs | ( | struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 723 of file ppc-linux-nat.c.

References _, have_ptrace_getsetfpregs, perror_with_name(), ptrace(), PTRACE_GETFPREGS, supply_fpregset(), and selftests::ptid::tid.

Referenced by fetch_fp_regs().

## ◆ fetch_all_gp_regs()

static int fetch_all_gp_regs | ( | struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 669 of file ppc-linux-nat.c.

References _, regcache::arch(), gdbarch_tdep(), gdbarch_tdep::gregset, have_ptrace_getsetregs, perror_with_name(), ptrace(), PTRACE_GETREGS, supply_gregset(), and selftests::ptid::tid.

Referenced by fetch_gp_regs().

## ◆ fetch_altivec_register()

static void fetch_altivec_register | ( | struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 386 of file ppc-linux-nat.c.

References _, regcache::arch(), gdbarch_tdep(), have_ptrace_getvrregs, offset, perror_with_name(), gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, ptrace(), PTRACE_GETVRREGS, regcache_raw_supply(), register_size(), gdbarch_tdep::regs, and selftests::ptid::tid.

Referenced by fetch_register().

## ◆ fetch_altivec_registers()

static void fetch_altivec_registers | ( | struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 642 of file ppc-linux-nat.c.

References _, have_ptrace_getvrregs, perror_with_name(), ptrace(), PTRACE_GETVRREGS, gdbarch_tdep::regs, supply_vrregset(), and selftests::ptid::tid.

Referenced by fetch_ppc_registers().

## ◆ fetch_fp_regs()

static void fetch_fp_regs | ( | struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 749 of file ppc-linux-nat.c.

References regcache::arch(), fetch_all_fp_regs(), fetch_register(), gdbarch_tdep(), have_ptrace_getsetfpregs, gdbarch_tdep::ppc_fp0_regnum, ppc_num_fprs, and selftests::ptid::tid.

Referenced by fetch_ppc_registers().

## ◆ fetch_gp_regs()

static void fetch_gp_regs | ( | struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 697 of file ppc-linux-nat.c.

References regcache::arch(), fetch_all_gp_regs(), fetch_register(), gdbarch_tdep(), have_ptrace_getsetregs, gdbarch_tdep::ppc_gp0_regnum, ppc_num_gprs, and selftests::ptid::tid.

Referenced by fetch_ppc_registers().

## ◆ fetch_ppc_registers()

static void fetch_ppc_registers | ( | struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 767 of file ppc-linux-nat.c.

References regcache::arch(), fetch_altivec_registers(), fetch_fp_regs(), fetch_gp_regs(), fetch_register(), fetch_spe_register(), fetch_vsx_registers(), gdbarch_pc_regnum(), gdbarch_tdep(), have_ptrace_getsetvsxregs, have_ptrace_getvrregs, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_fpscr_regnum, ppc_linux_trap_reg_p(), gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, PPC_ORIG_R3_REGNUM, gdbarch_tdep::ppc_ps_regnum, PPC_TRAP_REGNUM, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, gdbarch_tdep::ppc_vsr0_upper_regnum, gdbarch_tdep::ppc_xer_regnum, and selftests::ptid::tid.

Referenced by ppc_linux_fetch_inferior_registers().

## ◆ fetch_register()

static void fetch_register | ( | struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 492 of file ppc-linux-nat.c.

References _, altivec_register_p(), regcache::arch(), fetch_altivec_register(), fetch_spe_register(), fetch_vsx_register(), gdbarch_byte_order(), gdbarch_register_name(), gdbarch_tdep(), have_ptrace_getsetvsxregs, have_ptrace_getvrregs, internal_error(), gdb.printer.bound_registers::long, memset(), offset, perror_with_name(), PPC_MAX_REGISTER_SIZE, ppc_register_u_addr(), ptrace(), PTRACE_TYPE_ARG3, regcache_raw_supply(), register_size(), spe_register_p(), selftests::ptid::tid, vsx_register_p(), and xsnprintf().

Referenced by fetch_fp_regs(), fetch_gp_regs(), fetch_ppc_registers(), and ppc_linux_fetch_inferior_registers().

## ◆ fetch_spe_register()

static void fetch_spe_register | ( | struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 453 of file ppc-linux-nat.c.

References gdb_evrregset_t::acc, regcache::arch(), gdb_evrregset_t::evr, gdb_assert, gdbarch_tdep(), get_spe_registers(), gdbarch_tdep::ppc_acc_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, ppc_num_gprs, gdbarch_tdep::ppc_spefscr_regnum, regcache_raw_supply(), register_size(), gdb_evrregset_t::spefscr, and selftests::ptid::tid.

Referenced by fetch_ppc_registers(), and fetch_register().

## ◆ fetch_vsx_register()

static void fetch_vsx_register | ( | struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 358 of file ppc-linux-nat.c.

References _, regcache::arch(), gdbarch_tdep(), have_ptrace_getsetvsxregs, perror_with_name(), gdbarch_tdep::ppc_vsr0_upper_regnum, ptrace(), PTRACE_GETVSXREGS, regcache_raw_supply(), register_size(), gdbarch_tdep::regs, and selftests::ptid::tid.

Referenced by fetch_register().

## ◆ fetch_vsx_registers()

static void fetch_vsx_registers | ( | struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 623 of file ppc-linux-nat.c.

References _, have_ptrace_getsetvsxregs, perror_with_name(), ptrace(), PTRACE_GETVSXREGS, gdbarch_tdep::regs, supply_vsxregset(), and selftests::ptid::tid.

Referenced by fetch_ppc_registers().

## ◆ fill_fpregset()

void fill_fpregset | ( | const struct regcache * | regcache,
|  | gdb_fpregset_t * | fpregsetp,
|  | int | regno
| ) |  |

Definition at line 2328 of file ppc-linux-nat.c.

References ppc_collect_fpregset(), and ppc_linux_fpregset().

Referenced by store_all_fp_regs().

## ◆ fill_gregset()

void fill_gregset | ( | const struct regcache * | regcache,
|  | gdb_gregset_t * | gregsetp,
|  | int | regno
| ) |  |

Definition at line 2308 of file ppc-linux-nat.c.

References memset(), ppc_collect_gregset(), and ppc_linux_gregset().

Referenced by store_all_gp_regs().

## ◆ fill_vrregset()

static void fill_vrregset | ( | const struct regcache * | regcache,
|  | gdb_vrregset_t * | vrregsetp
| ) |  |
| static

Definition at line 1063 of file ppc-linux-nat.c.

References regcache::arch(), gdbarch_tdep(), offset, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, regcache_raw_collect(), and register_size().

Referenced by store_altivec_registers().

## ◆ fill_vsxregset()

static void fill_vsxregset | ( | const struct regcache * | regcache,
|  | gdb_vsxregset_t * | vsxregsetp
| ) |  |
| static

Definition at line 1050 of file ppc-linux-nat.c.

References regcache::arch(), gdbarch_tdep(), ppc_num_vshrs, gdbarch_tdep::ppc_vsr0_upper_regnum, regcache_raw_collect(), and register_size().

Referenced by store_vsx_registers().

## ◆ get_spe_registers()

static void get_spe_registers | ( | int | tid,
|  | struct gdb_evrregset_t * | evrregset
| ) |  |
| static

Definition at line 427 of file ppc-linux-nat.c.

References _, have_ptrace_getsetevrregs, memset(), perror_with_name(), ptrace(), PTRACE_GETEVRREGS, and selftests::ptid::tid.

Referenced by fetch_spe_register(), and store_spe_register().

## ◆ get_trigger_type()

static int get_trigger_type | ( | enum target_hw_bp_type | type | ) |
| static

Definition at line 1692 of file ppc-linux-nat.c.

References hw_read, hw_write, PPC_BREAKPOINT_TRIGGER_READ, and PPC_BREAKPOINT_TRIGGER_WRITE.

Referenced by create_watchpoint_request(), ppc_linux_insert_mask_watchpoint(), and ppc_linux_remove_mask_watchpoint().

## ◆ hwdebug_find_thread_points_by_tid()

static struct thread_points* hwdebug_find_thread_points_by_tid | ( | int | tid,
|  | int | alloc_new
| ) |  |
| static

Definition at line 1512 of file ppc-linux-nat.c.

References thread_points::hw_breaks, max_slots_number, selftests::ptid::tid, thread_points::tid, VEC_iterate, VEC_safe_push, XCNEWVEC, and XNEW.

Referenced by can_use_watchpoint_cond_accel(), hwdebug_insert_point(), hwdebug_remove_point(), and ppc_linux_stopped_data_address().

## ◆ hwdebug_insert_point()

static void hwdebug_insert_point | ( | struct ppc_hw_breakpoint * | b,
|  | int | tid
| ) |  |
| static

Definition at line 1540 of file ppc-linux-nat.c.

References _, gdb_assert, hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_find_thread_points_by_tid(), max_slots_number, perror_with_name(), PPC_PTRACE_SETHWDEBUG, ptrace(), hw_break_tuple::slot, and selftests::ptid::tid.

Referenced by ppc_linux_insert_hw_breakpoint(), ppc_linux_insert_mask_watchpoint(), ppc_linux_insert_watchpoint(), and ppc_linux_new_thread().

## ◆ hwdebug_point_cmp()

static int hwdebug_point_cmp | ( | struct ppc_hw_breakpoint * | a,
|  | struct ppc_hw_breakpoint * | b
| ) |  |
| static

Definition at line 1497 of file ppc-linux-nat.c.

References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, and ppc_hw_breakpoint::trigger_type.

Referenced by hwdebug_remove_point().

## ◆ hwdebug_remove_point()

static void hwdebug_remove_point | ( | struct ppc_hw_breakpoint * | b,
|  | int | tid
| ) |  |
| static

Definition at line 1575 of file ppc-linux-nat.c.

References _, gdb_assert, hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_find_thread_points_by_tid(), hwdebug_point_cmp(), max_slots_number, perror_with_name(), PPC_PTRACE_DELHWDEBUG, ptrace(), selftests::ptid::tid, and xfree().

Referenced by ppc_linux_remove_hw_breakpoint(), ppc_linux_remove_mask_watchpoint(), and ppc_linux_remove_watchpoint().

## ◆ num_memory_accesses()

static int num_memory_accesses | ( | struct value * | v | ) |
| static

Definition at line 1843 of file ppc-linux-nat.c.

References deprecated_value_modifiable(), lval_memory, not_lval, value_lazy(), VALUE_LVAL, and value_next().

Referenced by check_condition().

## ◆ ppc_linux_auxv_parse()

static int ppc_linux_auxv_parse | ( | struct target_ops * | ops,
|  | gdb_byte ** | readptr,
|  | gdb_byte * | endptr,
|  | CORE_ADDR * | typep,
|  | CORE_ADDR * | valp
| ) |  |
| static

Definition at line 2361 of file ppc-linux-nat.c.

References extract_unsigned_integer(), gdbarch_byte_order(), ppc_linux_target_wordsize(), and target_gdbarch().

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_can_accel_watchpoint_condition()

static int ppc_linux_can_accel_watchpoint_condition | ( | struct target_ops * | self,
|  | CORE_ADDR | addr,
|  | int | len,
|  | int | rw,
|  | struct expression * | cond
| ) |  |
| static

Definition at line 1959 of file ppc-linux-nat.c.

References check_condition(), hwdebug_info, and ppc_debug_info::num_condition_regs.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_can_use_hw_breakpoint()

static int ppc_linux_can_use_hw_breakpoint | ( | struct target_ops * | self,
|  | enum bptype | type,
|  | int | cnt,
|  | int | ot
| ) |  |
| static

Definition at line 1389 of file ppc-linux-nat.c.

References bp_access_watchpoint, bp_hardware_breakpoint, bp_hardware_watchpoint, bp_read_watchpoint, bp_watchpoint, hwdebug_info, inferior_ptid, ppc_debug_info::num_data_bps, ppc_debug_info::num_instruction_bps, ptid_get_lwp(), ptid_get_pid(), ptrace(), PTRACE_SET_DEBUGREG, and selftests::ptid::tid.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_fetch_inferior_registers()

static void ppc_linux_fetch_inferior_registers | ( | struct target_ops * | ops,
|  | struct regcache * | regcache,
|  | int | regno
| ) |  |
| static

Definition at line 810 of file ppc-linux-nat.c.

References fetch_ppc_registers(), fetch_register(), get_ptrace_pid(), regcache_get_ptid(), and selftests::ptid::tid.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_get_hwcap()

static unsigned long ppc_linux_get_hwcap | ( | void |  | ) |
| static

Definition at line 1299 of file ppc-linux-nat.c.

References current_target, and target_auxv_search().

Referenced by ppc_linux_insert_watchpoint(), ppc_linux_read_description(), ppc_linux_region_ok_for_hw_watchpoint(), and ppc_linux_watchpoint_addr_within_range().

## ◆ ppc_linux_insert_hw_breakpoint()

static int ppc_linux_insert_hw_breakpoint | ( | struct target_ops * | self,
|  | struct gdbarch * | gdbarch,
|  | struct bp_target_info * | bp_tgt
| ) |  |
| static

Definition at line 1618 of file ppc-linux-nat.c.

References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ALL_LWPS, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, hwdebug_insert_point(), bp_target_info::length, bp_target_info::placed_address, PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_EXACT, PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE, PPC_BREAKPOINT_TRIGGER_EXECUTE, PPC_DEBUG_CURRENT_VERSION, lwp_info::ptid, ptid_get_lwp(), bp_target_info::reqstd_address, ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_insert_mask_watchpoint()

static int ppc_linux_insert_mask_watchpoint | ( | struct target_ops * | ops,
|  | CORE_ADDR | addr,
|  | CORE_ADDR | mask,
|  | enum target_hw_bp_type | rw
| ) |  |
| static

Definition at line 1712 of file ppc-linux-nat.c.

References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ALL_LWPS, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, gdb_assert, get_trigger_type(), hwdebug_insert_point(), PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_MASK, PPC_DEBUG_CURRENT_VERSION, lwp_info::ptid, ptid_get_lwp(), ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_insert_watchpoint()

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

Definition at line 2022 of file ppc-linux-nat.c.

References ppc_hw_breakpoint::addr, ALL_LWPS, create_watchpoint_request(), hw_access, hw_read, hw_write, hwdebug_insert_point(), PPC_FEATURE_BOOKE, ppc_linux_get_hwcap(), lwp_info::ptid, ptid_get_lwp(), ptrace(), PTRACE_SET_DEBUGREG, and saved_dabr_value.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_masked_watch_num_registers()

static int ppc_linux_masked_watch_num_registers | ( | struct target_ops * | target,
|  | CORE_ADDR | addr,
|  | CORE_ADDR | mask
| ) |  |
| static

Definition at line 2264 of file ppc-linux-nat.c.

References _, ppc_debug_info::features, hwdebug_info, PPC_DEBUG_FEATURE_DATA_BP_MASK, and warning().

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_new_thread()

static void ppc_linux_new_thread | ( | struct lwp_info * | lp | ) |
| static

Definition at line 2124 of file ppc-linux-nat.c.

References hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_insert_point(), max_slots_number, PPC_PTRACE_DELHWDEBUG, lwp_info::ptid, ptid_get_lwp(), ptrace(), PTRACE_SET_DEBUGREG, saved_dabr_value, hw_break_tuple::slot, selftests::ptid::tid, VEC_empty, and VEC_last.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_ranged_break_num_registers()

static int ppc_linux_ranged_break_num_registers | ( | struct target_ops * | target | ) |
| static

Definition at line 1607 of file ppc-linux-nat.c.

References ppc_debug_info::features, hwdebug_info, and PPC_DEBUG_FEATURE_INSN_BP_RANGE.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_read_description()

static const struct target_desc* ppc_linux_read_description | ( | struct target_ops * | ops | ) |
| static

Definition at line 2384 of file ppc-linux-nat.c.

References _, have_ptrace_getsetevrregs, have_ptrace_getsetvsxregs, have_ptrace_getvrregs, inferior_ptid, perror_with_name(), PPC_FEATURE_CELL, PPC_FEATURE_HAS_ALTIVEC, PPC_FEATURE_HAS_DFP, PPC_FEATURE_HAS_VSX, ppc_linux_get_hwcap(), ppc_linux_target_wordsize(), ptid_get_lwp(), ptid_get_pid(), ptrace(), PTRACE_GETEVRREGS, PTRACE_GETVRREGS, PTRACE_GETVSXREGS, tdesc_powerpc_32l, tdesc_powerpc_64l, tdesc_powerpc_altivec32l, tdesc_powerpc_altivec64l, tdesc_powerpc_cell32l, tdesc_powerpc_cell64l, tdesc_powerpc_e500l, tdesc_powerpc_isa205_32l, tdesc_powerpc_isa205_64l, tdesc_powerpc_isa205_altivec32l, tdesc_powerpc_isa205_altivec64l, tdesc_powerpc_isa205_vsx32l, tdesc_powerpc_isa205_vsx64l, tdesc_powerpc_vsx32l, tdesc_powerpc_vsx64l, and selftests::ptid::tid.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_region_ok_for_hw_watchpoint()

static int ppc_linux_region_ok_for_hw_watchpoint | ( | struct target_ops * | self,
|  | CORE_ADDR | addr,
|  | int | len
| ) |  |
| static

Definition at line 1447 of file ppc-linux-nat.c.

References ppc_debug_info::data_bp_alignment, ppc_debug_info::features, hwdebug_info, PPC_DEBUG_FEATURE_DATA_BP_DAWR, PPC_DEBUG_FEATURE_DATA_BP_RANGE, PPC_FEATURE_BOOKE, and ppc_linux_get_hwcap().

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_remove_hw_breakpoint()

static int ppc_linux_remove_hw_breakpoint | ( | struct target_ops * | self,
|  | struct gdbarch * | gdbarch,
|  | struct bp_target_info * | bp_tgt
| ) |  |
| static

Definition at line 1655 of file ppc-linux-nat.c.

References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ALL_LWPS, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, hwdebug_remove_point(), if(), bp_target_info::length, bp_target_info::placed_address, PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_EXACT, PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE, PPC_BREAKPOINT_TRIGGER_EXECUTE, PPC_DEBUG_CURRENT_VERSION, lwp_info::ptid, ptid_get_lwp(), ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_remove_mask_watchpoint()

static int ppc_linux_remove_mask_watchpoint | ( | struct target_ops * | ops,
|  | CORE_ADDR | addr,
|  | CORE_ADDR | mask,
|  | enum target_hw_bp_type | rw
| ) |  |
| static

Definition at line 1740 of file ppc-linux-nat.c.

References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ALL_LWPS, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, gdb_assert, get_trigger_type(), hwdebug_remove_point(), PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_MASK, PPC_DEBUG_CURRENT_VERSION, lwp_info::ptid, ptid_get_lwp(), ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_remove_watchpoint()

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

Definition at line 2091 of file ppc-linux-nat.c.

References ppc_hw_breakpoint::addr, ALL_LWPS, create_watchpoint_request(), hwdebug_remove_point(), lwp_info::ptid, ptid_get_lwp(), ptrace(), PTRACE_SET_DEBUGREG, and saved_dabr_value.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_stopped_by_watchpoint()

static int ppc_linux_stopped_by_watchpoint | ( | struct target_ops * | ops | ) |
| static

Definition at line 2234 of file ppc-linux-nat.c.

References ppc_linux_stopped_data_address().

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_stopped_data_address()

static int ppc_linux_stopped_data_address | ( | struct target_ops * | target,
|  | CORE_ADDR * | addr_p
| ) |  |
| static

Definition at line 2195 of file ppc-linux-nat.c.

References hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_find_thread_points_by_tid(), inferior_ptid, linux_nat_get_siginfo(), max_slots_number, PPC_BREAKPOINT_TRIGGER_EXECUTE, ptid_get_lwp(), hw_break_tuple::slot, and ppc_hw_breakpoint::trigger_type.

Referenced by _initialize_ppc_linux_nat(), and ppc_linux_stopped_by_watchpoint().

## ◆ ppc_linux_store_inferior_registers()

static void ppc_linux_store_inferior_registers | ( | struct target_ops * | ops,
|  | struct regcache * | regcache,
|  | int | regno
| ) |  |
| static

Definition at line 2282 of file ppc-linux-nat.c.

References get_ptrace_pid(), regcache_get_ptid(), store_ppc_registers(), store_register(), and selftests::ptid::tid.

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_target_wordsize()

static int ppc_linux_target_wordsize | ( | void |  | ) |
| static

Definition at line 2338 of file ppc-linux-nat.c.

References inferior_ptid, gdb.printer.bound_registers::long, ptid_get_lwp(), ptid_get_pid(), ptrace(), selftests::ptid::tid, and wordsize.

Referenced by ppc_linux_auxv_parse(), and ppc_linux_read_description().

## ◆ ppc_linux_thread_exit()

static void ppc_linux_thread_exit | ( | struct thread_info * | tp,
|  | int | silent
| ) |  |
| static

Definition at line 2162 of file ppc-linux-nat.c.

References thread_points::hw_breaks, max_slots_number, thread_info::ptid, ptid_get_lwp(), selftests::ptid::tid, VEC_iterate, VEC_unordered_remove, and xfree().

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_linux_watchpoint_addr_within_range()

static int ppc_linux_watchpoint_addr_within_range | ( | struct target_ops * | target,
|  | CORE_ADDR | addr,
|  | CORE_ADDR | start,
|  | int | length
| ) |  |
| static

Definition at line 2241 of file ppc-linux-nat.c.

References PPC_FEATURE_BOOKE, and ppc_linux_get_hwcap().

Referenced by _initialize_ppc_linux_nat().

## ◆ ppc_register_u_addr()

static int ppc_register_u_addr | ( | struct gdbarch * | gdbarch,
|  | int | regno
| ) |  |
| static

Definition at line 288 of file ppc-linux-nat.c.

References gdbarch_pc_regnum(), gdbarch_tdep(), gdb.printer.bound_registers::long, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_fpscr_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, ppc_num_fprs, ppc_num_gprs, PPC_ORIG_R3_REGNUM, gdbarch_tdep::ppc_ps_regnum, PPC_TRAP_REGNUM, gdbarch_tdep::ppc_xer_regnum, PT_ORIG_R3, PT_TRAP, register_size(), and wordsize.

Referenced by fetch_register(), and store_register().

## ◆ set_spe_registers()

static void set_spe_registers | ( | int | tid,
|  | struct gdb_evrregset_t * | evrregset
| ) |  |
| static

Definition at line 895 of file ppc-linux-nat.c.

References _, have_ptrace_getsetevrregs, perror_with_name(), ptrace(), PTRACE_SETEVRREGS, and selftests::ptid::tid.

Referenced by store_spe_register().

## ◆ store_all_fp_regs()

static int store_all_fp_regs | ( | const struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 1204 of file ppc-linux-nat.c.

References _, fill_fpregset(), have_ptrace_getsetfpregs, perror_with_name(), ptrace(), PTRACE_GETFPREGS, PTRACE_SETFPREGS, and selftests::ptid::tid.

Referenced by store_fp_regs().

## ◆ store_all_gp_regs()

static int store_all_gp_regs | ( | const struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 1140 of file ppc-linux-nat.c.

References _, regcache::arch(), fill_gregset(), gdbarch_tdep(), gdbarch_tdep::gregset, have_ptrace_getsetregs, perror_with_name(), ptrace(), PTRACE_GETREGS, PTRACE_SETREGS, and selftests::ptid::tid.

Referenced by store_gp_regs().

## ◆ store_altivec_register()

static void store_altivec_register | ( | const struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 852 of file ppc-linux-nat.c.

References _, regcache::arch(), gdbarch_tdep(), have_ptrace_getvrregs, offset, perror_with_name(), gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, ptrace(), PTRACE_GETVRREGS, PTRACE_SETVRREGS, regcache_raw_collect(), register_size(), gdbarch_tdep::regs, and selftests::ptid::tid.

Referenced by store_register().

## ◆ store_altivec_registers()

static void store_altivec_registers | ( | const struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 1109 of file ppc-linux-nat.c.

References _, fill_vrregset(), have_ptrace_getvrregs, perror_with_name(), ptrace(), PTRACE_GETVRREGS, PTRACE_SETVRREGS, gdbarch_tdep::regs, and selftests::ptid::tid.

Referenced by store_ppc_registers().

## ◆ store_fp_regs()

static void store_fp_regs | ( | const struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 1240 of file ppc-linux-nat.c.

References regcache::arch(), gdbarch_tdep(), have_ptrace_getsetfpregs, gdbarch_tdep::ppc_fp0_regnum, ppc_num_fprs, store_all_fp_regs(), store_register(), and selftests::ptid::tid.

Referenced by store_ppc_registers().

## ◆ store_gp_regs()

static void store_gp_regs | ( | const struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 1178 of file ppc-linux-nat.c.

References regcache::arch(), gdbarch_tdep(), have_ptrace_getsetregs, gdbarch_tdep::ppc_gp0_regnum, ppc_num_gprs, store_all_gp_regs(), store_register(), and selftests::ptid::tid.

Referenced by store_ppc_registers().

## ◆ store_ppc_registers()

static void store_ppc_registers | ( | const struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 1258 of file ppc-linux-nat.c.

References regcache::arch(), gdbarch_pc_regnum(), gdbarch_tdep(), have_ptrace_getsetvsxregs, have_ptrace_getvrregs, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_fpscr_regnum, ppc_linux_trap_reg_p(), gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, PPC_ORIG_R3_REGNUM, gdbarch_tdep::ppc_ps_regnum, PPC_TRAP_REGNUM, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, gdbarch_tdep::ppc_vsr0_upper_regnum, gdbarch_tdep::ppc_xer_regnum, store_altivec_registers(), store_fp_regs(), store_gp_regs(), store_register(), store_spe_register(), store_vsx_registers(), and selftests::ptid::tid.

Referenced by ppc_linux_store_inferior_registers().

## ◆ store_register()

static void store_register | ( | const struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 974 of file ppc-linux-nat.c.

References align_up(), altivec_register_p(), regcache::arch(), gdbarch_byte_order(), gdbarch_register_name(), gdbarch_tdep(), gdb.printer.bound_registers::long, memset(), perror_with_name(), gdbarch_tdep::ppc_fpscr_regnum, PPC_MAX_REGISTER_SIZE, PPC_ORIG_R3_REGNUM, ppc_register_u_addr(), PPC_TRAP_REGNUM, ptrace(), PTRACE_TYPE_ARG3, regcache_raw_collect(), register_size(), spe_register_p(), store_altivec_register(), store_spe_register(), store_vsx_register(), selftests::ptid::tid, vsx_register_p(), and xsnprintf().

Referenced by ppc_linux_store_inferior_registers(), store_fp_regs(), store_gp_regs(), and store_ppc_registers().

## ◆ store_spe_register()

static void store_spe_register | ( | const struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 919 of file ppc-linux-nat.c.

References gdb_evrregset_t::acc, regcache::arch(), gdb_evrregset_t::evr, gdb_assert, gdbarch_tdep(), get_spe_registers(), memset(), gdbarch_tdep::ppc_acc_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, ppc_num_gprs, gdbarch_tdep::ppc_spefscr_regnum, regcache_raw_collect(), register_size(), set_spe_registers(), gdb_evrregset_t::spefscr, and selftests::ptid::tid.

Referenced by store_ppc_registers(), and store_register().

## ◆ store_vsx_register()

static void store_vsx_register | ( | const struct regcache * | regcache,
|  | int | tid,
|  | int | regno
| ) |  |
| static

Definition at line 823 of file ppc-linux-nat.c.

References _, regcache::arch(), gdbarch_tdep(), have_ptrace_getsetvsxregs, perror_with_name(), gdbarch_tdep::ppc_vsr0_upper_regnum, ptrace(), PTRACE_GETVSXREGS, PTRACE_SETVSXREGS, regcache_raw_collect(), register_size(), gdbarch_tdep::regs, and selftests::ptid::tid.

Referenced by store_register().

## ◆ store_vsx_registers()

static void store_vsx_registers | ( | const struct regcache * | regcache,
|  | int | tid
| ) |  |
| static

Definition at line 1086 of file ppc-linux-nat.c.

References _, fill_vsxregset(), have_ptrace_getsetvsxregs, perror_with_name(), ptrace(), PTRACE_GETVSXREGS, PTRACE_SETVSXREGS, gdbarch_tdep::regs, and selftests::ptid::tid.

Referenced by store_ppc_registers().

## ◆ supply_fpregset()

void supply_fpregset | ( | struct regcache * | regcache,
|  | const gdb_fpregset_t * | fpregsetp
| ) |  |

Definition at line 2319 of file ppc-linux-nat.c.

References ppc_linux_fpregset(), and ppc_supply_fpregset().

Referenced by fetch_all_fp_regs().

## ◆ supply_gregset()

void supply_gregset | ( | struct regcache * | regcache,
|  | const gdb_gregset_t * | gregsetp
| ) |  |

Definition at line 2300 of file ppc-linux-nat.c.

References ppc_linux_gregset(), and ppc_supply_gregset().

Referenced by fetch_all_gp_regs().

## ◆ supply_vrregset()

static void supply_vrregset | ( | struct regcache * | regcache,
|  | gdb_vrregset_t * | vrregsetp
| ) |  |
| static

Definition at line 598 of file ppc-linux-nat.c.

References regcache::arch(), gdbarch_tdep(), offset, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, regcache_raw_supply(), and register_size().

Referenced by fetch_altivec_registers().

## ◆ supply_vsxregset()

static void supply_vsxregset | ( | struct regcache * | regcache,
|  | gdb_vsxregset_t * | vsxregsetp
| ) |  |
| static

Definition at line 583 of file ppc-linux-nat.c.

References regcache::arch(), gdbarch_tdep(), ppc_num_vshrs, gdbarch_tdep::ppc_vsr0_upper_regnum, regcache_raw_supply(), and register_size().

Referenced by fetch_vsx_registers().

## ◆ VEC()

VEC | ( | thread_points_p |  | ) |

Definition at line 1346 of file ppc-linux-nat.c.

References ppc_debug_info::features, hwdebug_info, inferior_ptid, max_slots_number, memset(), ppc_debug_info::num_condition_regs, ppc_debug_info::num_data_bps, ppc_debug_info::num_instruction_bps, PPC_PTRACE_GETHWDBGINFO, ptid_get_lwp(), ptid_get_pid(), ptrace(), and selftests::ptid::tid.

## Variable Documentation

## ◆ have_ptrace_getsetevrregs

int have_ptrace_getsetevrregs = 1

Definition at line 256 of file ppc-linux-nat.c.

Referenced by get_spe_registers(), ppc_linux_read_description(), and set_spe_registers().

## ◆ have_ptrace_getsetfpregs

int have_ptrace_getsetfpregs = 1

Definition at line 268 of file ppc-linux-nat.c.

Referenced by fetch_all_fp_regs(), fetch_fp_regs(), store_all_fp_regs(), and store_fp_regs().

## ◆ have_ptrace_getsetregs

int have_ptrace_getsetregs = 1

Definition at line 262 of file ppc-linux-nat.c.

Referenced by fetch_all_gp_regs(), fetch_gp_regs(), store_all_gp_regs(), and store_gp_regs().

## ◆ have_ptrace_getsetvsxregs

int have_ptrace_getsetvsxregs = 1

Definition at line 244 of file ppc-linux-nat.c.

Referenced by fetch_ppc_registers(), fetch_register(), fetch_vsx_register(), fetch_vsx_registers(), ppc_linux_read_description(), store_ppc_registers(), store_vsx_register(), and store_vsx_registers().

## ◆ have_ptrace_getvrregs

int have_ptrace_getvrregs = 1

Definition at line 250 of file ppc-linux-nat.c.

Referenced by fetch_altivec_register(), fetch_altivec_registers(), fetch_ppc_registers(), fetch_register(), ppc_linux_read_description(), store_altivec_register(), store_altivec_registers(), and store_ppc_registers().

## ◆ hwdebug_info

struct ppc_debug_info hwdebug_info
| static

Definition at line 1316 of file ppc-linux-nat.c.

Referenced by calculate_dvc(), can_use_watchpoint_cond_accel(), create_watchpoint_request(), ppc_linux_can_accel_watchpoint_condition(), ppc_linux_can_use_hw_breakpoint(), ppc_linux_masked_watch_num_registers(), ppc_linux_ranged_break_num_registers(), ppc_linux_region_ok_for_hw_watchpoint(), and VEC().

## ◆ max_slots_number

size_t max_slots_number = 0
| static

Definition at line 1321 of file ppc-linux-nat.c.

Referenced by can_use_watchpoint_cond_accel(), hwdebug_find_thread_points_by_tid(), hwdebug_insert_point(), hwdebug_remove_point(), ppc_linux_new_thread(), ppc_linux_stopped_data_address(), ppc_linux_thread_exit(), and VEC().

## ◆ saved_dabr_value

long saved_dabr_value
| static

Definition at line 1312 of file ppc-linux-nat.c.

Referenced by ppc_linux_insert_watchpoint(), ppc_linux_new_thread(), and ppc_linux_remove_watchpoint().