GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions | Variables
ppc-linux-nat.c File Reference
#include "defs.h"
#include "frame.h"
#include "inferior.h"
#include "gdbthread.h"
#include "gdbcore.h"
#include "regcache.h"
#include "regset.h"
#include "target.h"
#include "linux-nat.h"
#include <sys/types.h>
#include <signal.h>
#include <sys/user.h>
#include <sys/ioctl.h>
#include <sys/uio.h>
#include "gdbsupport/gdb_wait.h"
#include <fcntl.h>
#include <sys/procfs.h>
#include "nat/gdb_ptrace.h"
#include "nat/linux-ptrace.h"
#include "inf-ptrace.h"
#include <algorithm>
#include <unordered_map>
#include <list>
#include "gregset.h"
#include "ppc-tdep.h"
#include "ppc-linux-tdep.h"
#include "elf/common.h"
#include "auxv.h"
#include "arch/ppc-linux-common.h"
#include "arch/ppc-linux-tdesc.h"
#include "nat/ppc-linux.h"
#include "linux-tdep.h"
#include "expop.h"

Go to the source code of this file.

Classes

struct  ppc_debug_info
 
struct  ppc_hw_breakpoint
 
struct  gdb_evrregset_t
 
struct  arch_lwp_info
 
class  ppc_linux_dreg_interface
 
struct  ppc_linux_process_info
 
struct  ppc_linux_nat_target
 
struct  ppc_linux_nat_target::ptid_hash
 

Macros

#define PTRACE_GET_DEBUGREG   25
 
#define PTRACE_SET_DEBUGREG   26
 
#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 PPC_DEBUG_FEATURE_DATA_BP_ARCH_31   0x20
 
#define PPC_DEBUG_CURRENT_VERSION   1
 
#define PTRACE_GETREGS   12
 
#define PTRACE_SETREGS   13
 
#define PTRACE_GETFPREGS   14
 
#define PTRACE_SETFPREGS   15
 

Typedefs

typedef char gdb_vrregset_t[PPC_LINUX_SIZEOF_VRREGSET]
 
typedef char gdb_vsxregset_t[PPC_LINUX_SIZEOF_VSXREGSET]
 

Functions

static int ppc_register_u_addr (struct gdbarch *gdbarch, int regno)
 
static void fetch_vsx_registers (struct regcache *regcache, int tid, int regno)
 
static void fetch_altivec_registers (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_regset (struct regcache *regcache, int tid, int regset_id, int regsetsize, const struct regset *regset)
 
static void store_regset (const struct regcache *regcache, int tid, int regnum, int regset_id, int regsetsize, const struct regset *regset)
 
static bool check_regset (int tid, int regset_id, int regsetsize)
 
static void fetch_register (struct regcache *regcache, int tid, int regno)
 
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 store_vsx_registers (const struct regcache *regcache, int tid, int regno)
 
static void store_altivec_registers (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 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)
 
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)
 
void _initialize_ppc_linux_nat ()
 

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 ppc_linux_nat_target the_ppc_linux_nat_target
 

Macro Definition Documentation

◆ PPC_BREAKPOINT_CONDITION_AND

#define PPC_BREAKPOINT_CONDITION_AND   0x1

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

Referenced by ppc_linux_nat_target::calculate_dvc().

◆ PPC_BREAKPOINT_CONDITION_AND_OR

#define PPC_BREAKPOINT_CONDITION_AND_OR   0x3

Definition at line 129 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 132 of file ppc-linux-nat.c.

Referenced by ppc_linux_nat_target::calculate_dvc().

◆ PPC_BREAKPOINT_CONDITION_BE_ALL

#define PPC_BREAKPOINT_CONDITION_BE_ALL   0x00ff0000

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

◆ PPC_BREAKPOINT_CONDITION_BE_SHIFT

#define PPC_BREAKPOINT_CONDITION_BE_SHIFT   16

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

◆ PPC_BREAKPOINT_CONDITION_EXACT

#define PPC_BREAKPOINT_CONDITION_EXACT   0x1

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

◆ PPC_BREAKPOINT_CONDITION_NONE

#define PPC_BREAKPOINT_CONDITION_NONE   0x0

◆ PPC_BREAKPOINT_CONDITION_OR

#define PPC_BREAKPOINT_CONDITION_OR   0x2

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

◆ PPC_BREAKPOINT_MODE_EXACT

#define PPC_BREAKPOINT_MODE_EXACT   0x0

◆ PPC_BREAKPOINT_MODE_MASK

#define PPC_BREAKPOINT_MODE_MASK   0x3

◆ PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE

#define PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE   0x2

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

◆ PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE

#define PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE   0x1

◆ PPC_BREAKPOINT_TRIGGER_EXECUTE

#define PPC_BREAKPOINT_TRIGGER_EXECUTE   0x1

◆ PPC_BREAKPOINT_TRIGGER_READ

#define PPC_BREAKPOINT_TRIGGER_READ   0x2

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

Referenced by ppc_linux_nat_target::get_trigger_type().

◆ PPC_BREAKPOINT_TRIGGER_RW

#define PPC_BREAKPOINT_TRIGGER_RW   0x6

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

◆ PPC_BREAKPOINT_TRIGGER_WRITE

#define PPC_BREAKPOINT_TRIGGER_WRITE   0x4

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

Referenced by ppc_linux_nat_target::get_trigger_type().

◆ PPC_DEBUG_CURRENT_VERSION

#define PPC_DEBUG_CURRENT_VERSION   1

◆ PPC_DEBUG_FEATURE_DATA_BP_ARCH_31

#define PPC_DEBUG_FEATURE_DATA_BP_ARCH_31   0x20

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

Referenced by ppc_linux_nat_target::region_ok_for_hw_watchpoint().

◆ PPC_DEBUG_FEATURE_DATA_BP_DAWR

#define PPC_DEBUG_FEATURE_DATA_BP_DAWR   0x10

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

Referenced by ppc_linux_nat_target::region_ok_for_hw_watchpoint().

◆ PPC_DEBUG_FEATURE_DATA_BP_MASK

#define PPC_DEBUG_FEATURE_DATA_BP_MASK   0x8

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

Referenced by ppc_linux_nat_target::masked_watch_num_registers().

◆ PPC_DEBUG_FEATURE_DATA_BP_RANGE

#define PPC_DEBUG_FEATURE_DATA_BP_RANGE   0x4

◆ PPC_DEBUG_FEATURE_INSN_BP_MASK

#define PPC_DEBUG_FEATURE_INSN_BP_MASK   0x2

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

◆ PPC_DEBUG_FEATURE_INSN_BP_RANGE

#define PPC_DEBUG_FEATURE_INSN_BP_RANGE   0x1

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

Referenced by ppc_linux_nat_target::ranged_break_num_registers().

◆ PPC_PTRACE_DELHWDEBUG

#define PPC_PTRACE_DELHWDEBUG   0x87

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

Referenced by ppc_linux_nat_target::low_prepare_to_resume().

◆ PPC_PTRACE_GETHWDBGINFO

#define PPC_PTRACE_GETHWDBGINFO   0x89

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

Referenced by ppc_linux_dreg_interface::detect().

◆ PPC_PTRACE_SETHWDEBUG

#define PPC_PTRACE_SETHWDEBUG   0x88

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

Referenced by ppc_linux_nat_target::low_prepare_to_resume().

◆ PTRACE_GET_DEBUGREG

#define PTRACE_GET_DEBUGREG   25

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

Referenced by ppc_linux_dreg_interface::detect().

◆ PTRACE_GETFPREGS

#define PTRACE_GETFPREGS   14

◆ PTRACE_GETREGS

#define PTRACE_GETREGS   12

◆ PTRACE_SET_DEBUGREG

#define PTRACE_SET_DEBUGREG   26

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

Referenced by ppc_linux_nat_target::low_prepare_to_resume().

◆ PTRACE_SETFPREGS

#define PTRACE_SETFPREGS   15

◆ PTRACE_SETREGS

#define PTRACE_SETREGS   13

Typedef Documentation

◆ gdb_vrregset_t

typedef char gdb_vrregset_t[PPC_LINUX_SIZEOF_VRREGSET]

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

◆ gdb_vsxregset_t

typedef char gdb_vsxregset_t[PPC_LINUX_SIZEOF_VSXREGSET]

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

Function Documentation

◆ _initialize_ppc_linux_nat()

void _initialize_ppc_linux_nat ( )

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

References add_inf_child_target(), linux_target, and the_ppc_linux_nat_target.

◆ check_regset()

static bool check_regset ( int tid,
int regset_id,
int regsetsize )
static

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

References ptrace, and PTRACE_GETREGSET.

Referenced by ppc_linux_nat_target::read_description().

◆ fetch_all_fp_regs()

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

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

References have_ptrace_getsetfpregs, ptrace, PTRACE_GETFPREGS, and supply_fpregset().

Referenced by fetch_fp_regs().

◆ fetch_all_gp_regs()

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

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

References have_ptrace_getsetregs, ptrace, PTRACE_GETREGS, and supply_gregset().

Referenced by fetch_gp_regs().

◆ fetch_altivec_registers()

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

◆ fetch_fp_regs()

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

◆ fetch_gp_regs()

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

◆ fetch_ppc_registers()

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

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

References reg_buffer::arch(), fetch_altivec_registers(), fetch_fp_regs(), fetch_gp_regs(), fetch_register(), fetch_regset(), fetch_spe_register(), fetch_vsx_registers(), gdbarch_pc_regnum(), ppc_gdbarch_tdep::have_ebb, ppc_gdbarch_tdep::have_htm_altivec, ppc_gdbarch_tdep::have_htm_core, ppc_gdbarch_tdep::have_htm_fpu, ppc_gdbarch_tdep::have_htm_spr, ppc_gdbarch_tdep::have_htm_vsx, have_ptrace_getsetvsxregs, have_ptrace_getvrregs, NT_PPC_DSCR, NT_PPC_EBB, NT_PPC_PMU, NT_PPC_PPR, NT_PPC_TAR, NT_PPC_TM_CDSCR, NT_PPC_TM_CFPR, NT_PPC_TM_CGPR, NT_PPC_TM_CPPR, NT_PPC_TM_CTAR, NT_PPC_TM_CVMX, NT_PPC_TM_CVSX, NT_PPC_TM_SPR, ppc32_linux_cdscrregset, ppc32_linux_cfprregset, ppc32_linux_cpprregset, ppc32_linux_ctarregset, ppc32_linux_cvsxregset, ppc32_linux_dscrregset, ppc32_linux_ebbregset, ppc32_linux_pmuregset, ppc32_linux_pprregset, PPC32_LINUX_SIZEOF_CGPRREGSET, ppc32_linux_tarregset, ppc32_linux_tm_sprregset, PPC64_LINUX_SIZEOF_CGPRREGSET, ppc_gdbarch_tdep::ppc_cdscr_regnum, ppc_gdbarch_tdep::ppc_cppr_regnum, ppc_gdbarch_tdep::ppc_cr_regnum, ppc_gdbarch_tdep::ppc_ctar_regnum, ppc_gdbarch_tdep::ppc_ctr_regnum, ppc_gdbarch_tdep::ppc_dscr_regnum, ppc_gdbarch_tdep::ppc_ev0_upper_regnum, ppc_gdbarch_tdep::ppc_fp0_regnum, ppc_gdbarch_tdep::ppc_fpscr_regnum, ppc_linux_cgprregset(), ppc_linux_cvmxregset(), PPC_LINUX_SIZEOF_CDSCRREGSET, PPC_LINUX_SIZEOF_CFPRREGSET, PPC_LINUX_SIZEOF_CPPRREGSET, PPC_LINUX_SIZEOF_CTARREGSET, PPC_LINUX_SIZEOF_CVMXREGSET, PPC_LINUX_SIZEOF_CVSXREGSET, PPC_LINUX_SIZEOF_DSCRREGSET, PPC_LINUX_SIZEOF_EBBREGSET, PPC_LINUX_SIZEOF_PMUREGSET, PPC_LINUX_SIZEOF_PPRREGSET, PPC_LINUX_SIZEOF_TARREGSET, PPC_LINUX_SIZEOF_TM_SPRREGSET, ppc_linux_trap_reg_p(), ppc_gdbarch_tdep::ppc_lr_regnum, ppc_gdbarch_tdep::ppc_mmcr0_regnum, ppc_gdbarch_tdep::ppc_mq_regnum, PPC_ORIG_R3_REGNUM, ppc_gdbarch_tdep::ppc_ppr_regnum, ppc_gdbarch_tdep::ppc_ps_regnum, ppc_gdbarch_tdep::ppc_tar_regnum, PPC_TRAP_REGNUM, ppc_gdbarch_tdep::ppc_vr0_regnum, ppc_gdbarch_tdep::ppc_vrsave_regnum, ppc_gdbarch_tdep::ppc_vsr0_upper_regnum, ppc_gdbarch_tdep::ppc_xer_regnum, and ppc_gdbarch_tdep::wordsize.

Referenced by ppc_linux_nat_target::fetch_registers().

◆ fetch_register()

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

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

References altivec_register_p(), reg_buffer::arch(), fetch_altivec_registers(), fetch_regset(), fetch_spe_register(), fetch_vsx_registers(), gdbarch_byte_order(), gdbarch_register_name(), ppc_gdbarch_tdep::have_ebb, ppc_gdbarch_tdep::have_htm_altivec, ppc_gdbarch_tdep::have_htm_core, ppc_gdbarch_tdep::have_htm_fpu, ppc_gdbarch_tdep::have_htm_spr, ppc_gdbarch_tdep::have_htm_vsx, have_ptrace_getsetvsxregs, have_ptrace_getvrregs, NT_PPC_DSCR, NT_PPC_EBB, NT_PPC_PMU, NT_PPC_PPR, NT_PPC_TAR, NT_PPC_TM_CDSCR, NT_PPC_TM_CFPR, NT_PPC_TM_CGPR, NT_PPC_TM_CPPR, NT_PPC_TM_CTAR, NT_PPC_TM_CVMX, NT_PPC_TM_CVSX, NT_PPC_TM_SPR, ppc32_linux_cdscrregset, ppc32_linux_cfprregset, ppc32_linux_cpprregset, ppc32_linux_ctarregset, ppc32_linux_cvsxregset, ppc32_linux_dscrregset, ppc32_linux_ebbregset, ppc32_linux_pmuregset, ppc32_linux_pprregset, PPC32_LINUX_SIZEOF_CGPRREGSET, ppc32_linux_tarregset, ppc32_linux_tm_sprregset, PPC64_LINUX_SIZEOF_CGPRREGSET, ppc_gdbarch_tdep::ppc_cdscr_regnum, PPC_CDSCR_REGNUM, ppc_gdbarch_tdep::ppc_cppr_regnum, PPC_CPPR_REGNUM, ppc_gdbarch_tdep::ppc_ctar_regnum, PPC_CTAR_REGNUM, ppc_gdbarch_tdep::ppc_dscr_regnum, PPC_DSCR_REGNUM, PPC_IS_CKPTFP_REGNUM, PPC_IS_CKPTGP_REGNUM, PPC_IS_CKPTVMX_REGNUM, PPC_IS_CKPTVSX_REGNUM, PPC_IS_EBB_REGNUM, PPC_IS_PMU_REGNUM, PPC_IS_TMSPR_REGNUM, ppc_linux_cgprregset(), ppc_linux_cvmxregset(), PPC_LINUX_SIZEOF_CDSCRREGSET, PPC_LINUX_SIZEOF_CFPRREGSET, PPC_LINUX_SIZEOF_CPPRREGSET, PPC_LINUX_SIZEOF_CTARREGSET, PPC_LINUX_SIZEOF_CVMXREGSET, PPC_LINUX_SIZEOF_CVSXREGSET, PPC_LINUX_SIZEOF_DSCRREGSET, PPC_LINUX_SIZEOF_EBBREGSET, PPC_LINUX_SIZEOF_PMUREGSET, PPC_LINUX_SIZEOF_PPRREGSET, PPC_LINUX_SIZEOF_TARREGSET, PPC_LINUX_SIZEOF_TM_SPRREGSET, PPC_MAX_REGISTER_SIZE, ppc_gdbarch_tdep::ppc_mmcr0_regnum, ppc_gdbarch_tdep::ppc_ppr_regnum, PPC_PPR_REGNUM, ppc_register_u_addr(), ppc_gdbarch_tdep::ppc_tar_regnum, PPC_TAR_REGNUM, ptrace, PTRACE_TYPE_ARG3, reg_buffer::raw_supply(), register_size(), spe_register_p(), vsx_register_p(), and ppc_gdbarch_tdep::wordsize.

Referenced by fetch_fp_regs(), fetch_gp_regs(), fetch_ppc_registers(), and ppc_linux_nat_target::fetch_registers().

◆ fetch_regset()

static void fetch_regset ( struct regcache * regcache,
int tid,
int regset_id,
int regsetsize,
const struct regset * regset )
static

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

References ptrace, PTRACE_GETREGSET, and regset::supply_regset.

Referenced by fetch_ppc_registers(), and fetch_register().

◆ fetch_spe_register()

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

◆ fetch_vsx_registers()

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

◆ fill_fpregset()

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

Definition at line 1903 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 1883 of file ppc-linux-nat.c.

References ppc_collect_gregset(), and ppc_linux_gregset().

Referenced by store_all_gp_regs().

◆ get_spe_registers()

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

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

References have_ptrace_getsetevrregs, ptrace, and PTRACE_GETEVRREGS.

Referenced by fetch_spe_register(), and store_spe_register().

◆ ppc_register_u_addr()

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

◆ set_spe_registers()

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

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

References have_ptrace_getsetevrregs, ptrace, and PTRACE_SETEVRREGS.

Referenced by store_spe_register().

◆ store_all_fp_regs()

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

◆ store_all_gp_regs()

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

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

References fill_gregset(), have_ptrace_getsetregs, ptrace, PTRACE_GETREGS, and PTRACE_SETREGS.

Referenced by store_gp_regs().

◆ store_altivec_registers()

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

◆ store_fp_regs()

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

◆ store_gp_regs()

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

◆ store_ppc_registers()

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

◆ store_register()

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

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

References altivec_register_p(), reg_buffer::arch(), gdbarch_byte_order(), gdbarch_register_name(), ppc_gdbarch_tdep::have_ebb, ppc_gdbarch_tdep::have_htm_altivec, ppc_gdbarch_tdep::have_htm_core, ppc_gdbarch_tdep::have_htm_fpu, ppc_gdbarch_tdep::have_htm_spr, ppc_gdbarch_tdep::have_htm_vsx, NT_PPC_DSCR, NT_PPC_EBB, NT_PPC_PMU, NT_PPC_PPR, NT_PPC_TAR, NT_PPC_TM_CDSCR, NT_PPC_TM_CFPR, NT_PPC_TM_CGPR, NT_PPC_TM_CPPR, NT_PPC_TM_CTAR, NT_PPC_TM_CVMX, NT_PPC_TM_CVSX, NT_PPC_TM_SPR, ppc32_linux_cdscrregset, ppc32_linux_cfprregset, ppc32_linux_cpprregset, ppc32_linux_ctarregset, ppc32_linux_cvsxregset, ppc32_linux_dscrregset, ppc32_linux_ebbregset, ppc32_linux_pmuregset, ppc32_linux_pprregset, PPC32_LINUX_SIZEOF_CGPRREGSET, ppc32_linux_tarregset, ppc32_linux_tm_sprregset, PPC64_LINUX_SIZEOF_CGPRREGSET, ppc_gdbarch_tdep::ppc_cdscr_regnum, PPC_CDSCR_REGNUM, ppc_gdbarch_tdep::ppc_cppr_regnum, PPC_CPPR_REGNUM, ppc_gdbarch_tdep::ppc_ctar_regnum, PPC_CTAR_REGNUM, ppc_gdbarch_tdep::ppc_dscr_regnum, PPC_DSCR_REGNUM, ppc_gdbarch_tdep::ppc_fpscr_regnum, PPC_IS_CKPTFP_REGNUM, PPC_IS_CKPTGP_REGNUM, PPC_IS_CKPTVMX_REGNUM, PPC_IS_CKPTVSX_REGNUM, PPC_IS_EBB_REGNUM, PPC_IS_PMU_REGNUM, PPC_IS_TMSPR_REGNUM, ppc_linux_cgprregset(), ppc_linux_cvmxregset(), PPC_LINUX_SIZEOF_CDSCRREGSET, PPC_LINUX_SIZEOF_CFPRREGSET, PPC_LINUX_SIZEOF_CPPRREGSET, PPC_LINUX_SIZEOF_CTARREGSET, PPC_LINUX_SIZEOF_CVMXREGSET, PPC_LINUX_SIZEOF_CVSXREGSET, PPC_LINUX_SIZEOF_DSCRREGSET, PPC_LINUX_SIZEOF_EBBREGSET, PPC_LINUX_SIZEOF_PMUREGSET, PPC_LINUX_SIZEOF_PPRREGSET, PPC_LINUX_SIZEOF_TARREGSET, PPC_LINUX_SIZEOF_TM_SPRREGSET, PPC_MAX_REGISTER_SIZE, ppc_gdbarch_tdep::ppc_mmcr0_regnum, PPC_ORIG_R3_REGNUM, ppc_gdbarch_tdep::ppc_ppr_regnum, PPC_PPR_REGNUM, ppc_register_u_addr(), ppc_gdbarch_tdep::ppc_tar_regnum, PPC_TAR_REGNUM, PPC_TRAP_REGNUM, ptrace, PTRACE_TYPE_ARG3, reg_buffer::raw_collect(), register_size(), spe_register_p(), store_altivec_registers(), store_regset(), store_spe_register(), store_vsx_registers(), vsx_register_p(), and ppc_gdbarch_tdep::wordsize.

Referenced by store_fp_regs(), store_gp_regs(), store_ppc_registers(), and ppc_linux_nat_target::store_registers().

◆ store_regset()

static void store_regset ( const struct regcache * regcache,
int tid,
int regnum,
int regset_id,
int regsetsize,
const struct regset * regset )
static

◆ store_spe_register()

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

◆ store_vsx_registers()

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

◆ supply_fpregset()

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

Definition at line 1894 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 1875 of file ppc-linux-nat.c.

References ppc_linux_gregset(), and ppc_supply_gregset().

Referenced by fetch_all_gp_regs().

Variable Documentation

◆ have_ptrace_getsetevrregs

int have_ptrace_getsetevrregs = 1

◆ have_ptrace_getsetfpregs

int have_ptrace_getsetfpregs = 1

◆ have_ptrace_getsetregs

int have_ptrace_getsetregs = 1

◆ have_ptrace_getsetvsxregs

int have_ptrace_getsetvsxregs = 1

◆ have_ptrace_getvrregs

int have_ptrace_getvrregs = 1

◆ the_ppc_linux_nat_target

ppc_linux_nat_target the_ppc_linux_nat_target
static

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

Referenced by _initialize_ppc_linux_nat().