GDB (xrefs)
|
#include "defs.h"
#include "inferior.h"
#include "target.h"
#include "gdbcore.h"
#include "symfile.h"
#include "objfiles.h"
#include "libbfd.h"
#include "bfd.h"
#include "exceptions.h"
#include "gdb-stabs.h"
#include "regcache.h"
#include "arch-utils.h"
#include "inf-child.h"
#include "inf-ptrace.h"
#include "ppc-tdep.h"
#include "rs6000-tdep.h"
#include "rs6000-aix-tdep.h"
#include "exec.h"
#include "observer.h"
#include "xcoffread.h"
#include <sys/ptrace.h>
#include <sys/reg.h>
#include <sys/dir.h>
#include <sys/user.h>
#include <signal.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <errno.h>
#include <a.out.h>
#include <sys/file.h>
#include "gdb_stat.h"
#include "gdb_bfd.h"
#include <sys/core.h>
#include <sys/ldr.h>
#include <sys/systemcfg.h>
Go to the source code of this file.
Defines | |
#define | __LDINFO_PTRACE32__ /* for __ld_info32 */ |
#define | __LDINFO_PTRACE64__ /* for __ld_info64 */ |
#define | ARCH64() 0 |
#define | DUMMY_INSN_ADDR AIX_TEXT_SEGMENT_BASE+0x200 |
Functions | |
static void | exec_one_dummy_insn (struct regcache *) |
static LONGEST | rs6000_xfer_shared_libraries (struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, LONGEST len) |
static int | regmap (struct gdbarch *gdbarch, int regno, int *isfloat) |
static int | rs6000_ptrace32 (int req, int id, int *addr, int data, int *buf) |
static int | rs6000_ptrace64 (int req, int id, long long addr, int data, void *buf) |
static void | fetch_register (struct regcache *regcache, int regno) |
static void | store_register (struct regcache *regcache, int regno) |
static void | rs6000_fetch_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno) |
static void | rs6000_store_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno) |
static LONGEST | rs6000_xfer_partial (struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, LONGEST len) |
static ptid_t | rs6000_wait (struct target_ops *ops, ptid_t ptid, struct target_waitstatus *ourstatus, int options) |
static void | rs6000_create_inferior (struct target_ops *ops, char *exec_file, char *allargs, char **env, int from_tty) |
static gdb_byte * | rs6000_ptrace_ldinfo (ptid_t ptid) |
void | _initialize_rs6000_nat (void) |
Variables | |
static void(* | super_create_inferior )(struct target_ops *, char *exec_file, char *allargs, char **env, int from_tty) |
#define __LDINFO_PTRACE32__ /* for __ld_info32 */ |
Definition at line 56 of file rs6000-nat.c.
#define __LDINFO_PTRACE64__ /* for __ld_info64 */ |
Definition at line 57 of file rs6000-nat.c.
#define ARCH64 | ( | ) | 0 |
Definition at line 75 of file rs6000-nat.c.
Referenced by exec_one_dummy_insn(), fetch_register(), rs6000_ptrace_ldinfo(), rs6000_xfer_partial(), and store_register().
#define DUMMY_INSN_ADDR AIX_TEXT_SEGMENT_BASE+0x200 |
Referenced by exec_one_dummy_insn().
void _initialize_rs6000_nat | ( | void | ) |
Definition at line 719 of file rs6000-nat.c.
References add_target(), inf_ptrace_target(), rs6000_create_inferior(), rs6000_fetch_inferior_registers(), rs6000_store_inferior_registers(), rs6000_wait(), rs6000_xfer_partial(), super_create_inferior, target_ops::to_create_inferior, target_ops::to_fetch_registers, target_ops::to_store_registers, target_ops::to_wait, and target_ops::to_xfer_partial.
static void exec_one_dummy_insn | ( | struct regcache * | regcache | ) | [static] |
Definition at line 548 of file rs6000-nat.c.
References _, ARCH64, deprecated_insert_raw_breakpoint(), deprecated_remove_raw_breakpoint(), DUMMY_INSN_ADDR, get_regcache_arch(), inferior_ptid, PT_CONTINUE, ptid_get_pid(), regcache_read_pc(), regcache_write_pc(), rs6000_ptrace32(), rs6000_ptrace64(), and exsummary::status.
Referenced by store_register().
static void fetch_register | ( | struct regcache * | regcache, |
int | regno | ||
) | [static] |
Definition at line 170 of file rs6000-nat.c.
References _, ARCH64, fprintf_unfiltered(), gdb_stderr, gdbarch_num_regs(), get_regcache_arch(), inferior_ptid, MAX_REGISTER_SIZE, memcpy(), ptid_get_pid(), regcache_raw_supply(), register_size(), regmap(), rs6000_ptrace32(), and rs6000_ptrace64().
Referenced by rs6000_fetch_inferior_registers().
Definition at line 93 of file rs6000-nat.c.
References gdbarch_pc_regnum(), gdbarch_tdep(), 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, gdbarch_tdep::ppc_ps_regnum, and gdbarch_tdep::ppc_xer_regnum.
Referenced by fetch_register(), and store_register().
static void rs6000_create_inferior | ( | struct target_ops * | ops, |
char * | exec_file, | ||
char * | allargs, | ||
char ** | env, | ||
int | from_tty | ||
) | [static] |
Definition at line 597 of file rs6000-nat.c.
References _, gdbarch_info::abfd, gdbarch_info::bfd_arch_info, exec_bfd, gdbarch_info_init(), gdbarch_update_p(), internal_error(), and super_create_inferior.
Referenced by _initialize_rs6000_nat().
static void rs6000_fetch_inferior_registers | ( | struct target_ops * | ops, |
struct regcache * | regcache, | ||
int | regno | ||
) | [static] |
Definition at line 299 of file rs6000-nat.c.
References fetch_register(), gdbarch_pc_regnum(), gdbarch_tdep(), get_regcache_arch(), 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, gdbarch_tdep::ppc_ps_regnum, and gdbarch_tdep::ppc_xer_regnum.
Referenced by _initialize_rs6000_nat().
Definition at line 132 of file rs6000-nat.c.
References ptrace().
Referenced by exec_one_dummy_insn(), fetch_register(), rs6000_ptrace_ldinfo(), rs6000_xfer_partial(), and store_register().
static int rs6000_ptrace64 | ( | int | req, |
int | id, | ||
long long | addr, | ||
int | data, | ||
void * | buf | ||
) | [static] |
Definition at line 149 of file rs6000-nat.c.
References hex_string().
Referenced by exec_one_dummy_insn(), fetch_register(), rs6000_ptrace_ldinfo(), rs6000_xfer_partial(), and store_register().
static gdb_byte* rs6000_ptrace_ldinfo | ( | ptid_t | ptid | ) | [static] |
Definition at line 656 of file rs6000-nat.c.
References _, ARCH64, perror_with_name(), ptid_get_pid(), rs6000_ptrace32(), rs6000_ptrace64(), xmalloc(), and xrealloc().
Referenced by rs6000_xfer_shared_libraries().
static void rs6000_store_inferior_registers | ( | struct target_ops * | ops, |
struct regcache * | regcache, | ||
int | regno | ||
) | [static] |
Definition at line 342 of file rs6000-nat.c.
References gdbarch_pc_regnum(), gdbarch_tdep(), get_regcache_arch(), 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, gdbarch_tdep::ppc_ps_regnum, gdbarch_tdep::ppc_xer_regnum, and store_register().
Referenced by _initialize_rs6000_nat().
static ptid_t rs6000_wait | ( | struct target_ops * | ops, |
ptid_t | ptid, | ||
struct target_waitstatus * | ourstatus, | ||
int | options | ||
) | [static] |
Definition at line 491 of file rs6000-nat.c.
References _, clear_sigint_trap(), fprintf_unfiltered(), gdb_stderr, inferior_ptid, target_waitstatus::kind, pid_to_ptid(), ptid_get_pid(), safe_strerror(), set_sigint_trap(), target_waitstatus::sig, exsummary::status, store_waitstatus(), TARGET_WAITKIND_LOADED, TARGET_WAITKIND_SIGNALLED, TARGET_WAITKIND_SPURIOUS, and target_waitstatus::value.
Referenced by _initialize_rs6000_nat().
static LONGEST rs6000_xfer_partial | ( | struct target_ops * | ops, |
enum target_object | object, | ||
const char * | annex, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf, | ||
ULONGEST | offset, | ||
LONGEST | len | ||
) | [static] |
Definition at line 386 of file rs6000-nat.c.
References ARCH64, arch64, inferior_ptid, len, LONGEST, memcpy(), offset, PT_READ_I, PT_WRITE_D, ptid_get_pid(), PTRACE_TYPE_RET, rs6000_ptrace32(), rs6000_ptrace64(), rs6000_xfer_shared_libraries(), TARGET_OBJECT_LIBRARIES_AIX, TARGET_OBJECT_MEMORY, ULONGEST, and word.
Referenced by _initialize_rs6000_nat().
static LONGEST rs6000_xfer_shared_libraries | ( | struct target_ops * | ops, |
enum target_object | object, | ||
const char * | annex, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf, | ||
ULONGEST | offset, | ||
LONGEST | len | ||
) | [static] |
Definition at line 690 of file rs6000-nat.c.
References do_cleanups(), gdb_assert, inferior_ptid, make_cleanup(), rs6000_aix_ld_info_to_xml(), rs6000_ptrace_ldinfo(), target_gdbarch(), target_has_execution, ULONGEST, and xfree().
Referenced by rs6000_xfer_partial().
static void store_register | ( | struct regcache * | regcache, |
int | regno | ||
) | [static] |
Definition at line 230 of file rs6000-nat.c.
References _, ARCH64, exec_one_dummy_insn(), fprintf_unfiltered(), gdb_stderr, gdbarch_num_regs(), gdbarch_sp_regnum(), get_regcache_arch(), inferior_ptid, MAX_REGISTER_SIZE, memcpy(), ptid_get_pid(), regcache_raw_collect(), register_size(), regmap(), rs6000_ptrace32(), and rs6000_ptrace64().
Referenced by rs6000_store_inferior_registers().
void(* super_create_inferior)(struct target_ops *, char *exec_file, char *allargs, char **env, int from_tty) [static] |
Definition at line 594 of file rs6000-nat.c.
Referenced by _initialize_rs6000_nat(), and rs6000_create_inferior().