GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions | Variables
/tmp/gdb-13.1/gdb/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.

◆ 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.

◆ 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

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

◆ 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

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

◆ PPC_BREAKPOINT_MODE_MASK

#define PPC_BREAKPOINT_MODE_MASK   0x3

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

◆ 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

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

◆ PPC_BREAKPOINT_TRIGGER_EXECUTE

#define PPC_BREAKPOINT_TRIGGER_EXECUTE   0x1

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

◆ PPC_BREAKPOINT_TRIGGER_READ

#define PPC_BREAKPOINT_TRIGGER_READ   0x2

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

◆ 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.

◆ PPC_DEBUG_CURRENT_VERSION

#define PPC_DEBUG_CURRENT_VERSION   1

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

◆ 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.

◆ PPC_DEBUG_FEATURE_DATA_BP_DAWR

#define PPC_DEBUG_FEATURE_DATA_BP_DAWR   0x10

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

◆ PPC_DEBUG_FEATURE_DATA_BP_MASK

#define PPC_DEBUG_FEATURE_DATA_BP_MASK   0x8

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

◆ PPC_DEBUG_FEATURE_DATA_BP_RANGE

#define PPC_DEBUG_FEATURE_DATA_BP_RANGE   0x4

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

◆ 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.

◆ PPC_PTRACE_DELHWDEBUG

#define PPC_PTRACE_DELHWDEBUG   0x87

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

◆ PPC_PTRACE_GETHWDBGINFO

#define PPC_PTRACE_GETHWDBGINFO   0x89

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

◆ PPC_PTRACE_SETHWDEBUG

#define PPC_PTRACE_SETHWDEBUG   0x88

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

◆ PTRACE_GET_DEBUGREG

#define PTRACE_GET_DEBUGREG   25

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

◆ PTRACE_GETFPREGS

#define PTRACE_GETFPREGS   14

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

◆ PTRACE_GETREGS

#define PTRACE_GETREGS   12

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

◆ PTRACE_SET_DEBUGREG

#define PTRACE_SET_DEBUGREG   26

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

◆ PTRACE_SETFPREGS

#define PTRACE_SETFPREGS   15

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

◆ PTRACE_SETREGS

#define PTRACE_SETREGS   13

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

Typedef Documentation

◆ gdb_vrregset_t

typedef char gdb_vrregset_t[PPC_LINUX_SIZEOF_VRREGSET]

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

◆ gdb_vsxregset_t

typedef char gdb_vsxregset_t[PPC_LINUX_SIZEOF_VSXREGSET]

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

Function Documentation

◆ _initialize_ppc_linux_nat()

void _initialize_ppc_linux_nat ( )

Definition at line 3221 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 895 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

◆ fetch_all_gp_regs()

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

◆ 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 1225 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 911 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, perror_with_name(), 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

◆ 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 1907 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 1887 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

◆ 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 1400 of file ppc-linux-nat.c.

References have_ptrace_getsetevrregs, perror_with_name(), 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

◆ 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 1476 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, perror_with_name(), 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 1898 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 1879 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 629 of file ppc-linux-nat.c.

Referenced by _initialize_ppc_linux_nat().