GDB (xrefs)

Macros | Functions | Variables
/tmp/gdb-8.1/gdb/spu-multiarch.c File Reference
`#include "defs.h"`
`#include "gdbcore.h"`
`#include "gdbcmd.h"`
`#include "arch-utils.h"`
`#include "observer.h"`
`#include "inferior.h"`
`#include "regcache.h"`
`#include "symfile.h"`
`#include "objfiles.h"`
`#include "solib.h"`
`#include "solist.h"`
`#include "ppc-tdep.h"`
`#include "ppc-linux-tdep.h"`
`#include "spu-tdep.h"`

Go to the source code of this file.

## Macros
#define | spu_standalone_p()
#define | INSTR_SC 0x44000002
#define | NR_spu_run 0x0116

## Functions
static int | parse_spufs_run (ptid_t ptid, int *fd, CORE_ADDR *addr)
static struct gdbarch * | spu_gdbarch (int spufs_fd)
static struct gdbarch * | spu_thread_architecture (struct target_ops *ops, ptid_t ptid)
static int | spu_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR addr, int len)
static void | spu_fetch_registers (struct target_ops *ops, struct regcache *regcache, int regno)
static void | spu_store_registers (struct target_ops *ops, struct regcache *regcache, int regno)
static enum target_xfer_status | spu_xfer_partial (struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
static int | spu_search_memory (struct target_ops *ops, CORE_ADDR start_addr, ULONGEST search_space_len, const gdb_byte *pattern, ULONGEST pattern_len, CORE_ADDR *found_addrp)
static void | spu_multiarch_activate (void)
static void | spu_multiarch_deactivate (void)
static void | spu_multiarch_inferior_created (struct target_ops *ops, int from_tty)
static void | spu_multiarch_solib_loaded (struct so_list *so)
static void | spu_multiarch_solib_unloaded (struct so_list *so)
static void | spu_mourn_inferior (struct target_ops *ops)
static void | init_spu_ops (void)
void | _initialize_spu_multiarch (void)

## Variables
static struct target_ops | spu_ops
static int | spu_nr_solib

## Macro Definition Documentation

## ◆ INSTR_SC

#define INSTR_SC 0x44000002

Definition at line 49 of file spu-multiarch.c.

Referenced by parse_spufs_run().

## ◆ NR_spu_run

#define NR_spu_run 0x0116

Definition at line 50 of file spu-multiarch.c.

Referenced by parse_spufs_run().

## ◆ spu_standalone_p

#define spu_standalone_p | ( |  | ) |

Value:
(symfile_objfile && symfile_objfile->obfd \
&& bfd_get_arch (symfile_objfile->obfd) == bfd_arch_spu)
symfile_objfile
#define symfile_objfile
Definition: progspace.h:227

Definition at line 44 of file spu-multiarch.c.

Referenced by spu_multiarch_inferior_created(), spu_multiarch_solib_loaded(), and spu_multiarch_solib_unloaded().

## Function Documentation

## ◆ _initialize_spu_multiarch()

void _initialize_spu_multiarch | ( | void |  | ) |

Definition at line 406 of file spu-multiarch.c.

References complete_target_initialization(), init_spu_ops(), observer_attach_inferior_created(), observer_attach_solib_loaded(), observer_attach_solib_unloaded(), spu_multiarch_inferior_created(), spu_multiarch_solib_loaded(), spu_multiarch_solib_unloaded(), and spu_ops.

## ◆ init_spu_ops()

static void init_spu_ops | ( | void |  | ) |
| static

Definition at line 389 of file spu-multiarch.c.

References arch_stratum, OPS_MAGIC, spu_fetch_registers(), spu_mourn_inferior(), spu_ops, spu_region_ok_for_hw_watchpoint(), spu_search_memory(), spu_store_registers(), spu_thread_architecture(), spu_xfer_partial(), target_ops::to_doc, target_ops::to_fetch_registers, target_ops::to_longname, target_ops::to_magic, target_ops::to_mourn_inferior, target_ops::to_region_ok_for_hw_watchpoint, target_ops::to_search_memory, target_ops::to_shortname, target_ops::to_store_registers, target_ops::to_stratum, target_ops::to_thread_architecture, and target_ops::to_xfer_partial.

Referenced by _initialize_spu_multiarch().

## ◆ parse_spufs_run()

static int parse_spufs_run | ( | ptid_t | ptid,
|  | int * | fd,
|  | CORE_ADDR * | addr
| ) |  |
| static

Definition at line 56 of file spu-multiarch.c.

References regcache::arch(), extract_unsigned_integer(), find_inferior_ptid(), gdbarch_bfd_arch_info(), gdbarch_byte_order(), gdbarch_tdep(), get_thread_arch_regcache(), inferior_ptid, INSTR_SC, make_scoped_restore(), NR_spu_run, gdbarch_tdep::ppc_gp0_regnum, PPC_ORIG_R3_REGNUM, regcache::ptid(), regcache::regcache(), regcache_cooked_read_unsigned(), regcache_read_pc(), target_gdbarch(), and target_read_memory().

Referenced by spu_fetch_registers(), spu_store_registers(), and spu_thread_architecture().

## ◆ spu_fetch_registers()

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

Definition at line 144 of file spu-multiarch.c.

References regcache::arch(), gdbarch::byte_order, find_target_beneath(), gdbarch_bfd_arch_info(), gdbarch_byte_order(), inferior_ptid, make_scoped_restore(), parse_spufs_run(), regcache_get_ptid(), regcache_raw_supply(), SPU_ID_REGNUM, SPU_NUM_GPRS, SPU_PC_REGNUM, store_unsigned_integer(), TARGET_OBJECT_MEMORY, TARGET_OBJECT_SPU, target_read(), target_ops::to_fetch_registers, and xsnprintf().

Referenced by init_spu_ops().

## ◆ spu_gdbarch()

static struct gdbarch* spu_gdbarch | ( | int | spufs_fd | ) |
| static

Definition at line 103 of file spu-multiarch.c.

References gdbarch_info::bfd_arch_info, gdbarch_info::byte_order, GDB_OSABI_LINUX, gdbarch_find_by_info(), gdbarch_info_init(), gdbarch_info::id, and gdbarch_info::osabi.

Referenced by spu_multiarch_activate(), and spu_thread_architecture().

## ◆ spu_mourn_inferior()

static void spu_mourn_inferior | ( | struct target_ops * | ops | ) |
| static

Definition at line 377 of file spu-multiarch.c.

References find_target_beneath(), spu_multiarch_deactivate(), and target_ops::to_mourn_inferior.

Referenced by init_spu_ops().

## ◆ spu_multiarch_activate()

static void spu_multiarch_activate | ( | void |  | ) |
| static

Definition at line 329 of file spu-multiarch.c.

References push_target(), registers_changed(), spu_gdbarch(), and spu_ops.

Referenced by spu_multiarch_inferior_created(), and spu_multiarch_solib_loaded().

## ◆ spu_multiarch_deactivate()

static void spu_multiarch_deactivate | ( | void |  | ) |
| static

Definition at line 343 of file spu-multiarch.c.

References registers_changed(), spu_ops, and unpush_target().

Referenced by spu_mourn_inferior(), and spu_multiarch_solib_unloaded().

## ◆ spu_multiarch_inferior_created()

static void spu_multiarch_inferior_created | ( | struct target_ops * | ops,
|  | int | from_tty
| ) |  |
| static

Definition at line 352 of file spu-multiarch.c.

References spu_multiarch_activate(), and spu_standalone_p.

Referenced by _initialize_spu_multiarch().

## ◆ spu_multiarch_solib_loaded()

static void spu_multiarch_solib_loaded | ( | struct so_list * | so | ) |
| static

Definition at line 359 of file spu-multiarch.c.

References so_list::abfd, spu_multiarch_activate(), spu_nr_solib, and spu_standalone_p.

Referenced by _initialize_spu_multiarch().

## ◆ spu_multiarch_solib_unloaded()

static void spu_multiarch_solib_unloaded | ( | struct so_list * | so | ) |
| static

Definition at line 368 of file spu-multiarch.c.

References so_list::abfd, spu_multiarch_deactivate(), spu_nr_solib, and spu_standalone_p.

Referenced by _initialize_spu_multiarch().

## ◆ spu_region_ok_for_hw_watchpoint()

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

Definition at line 130 of file spu-multiarch.c.

References find_target_beneath(), SPUADDR_SPU, and target_ops::to_region_ok_for_hw_watchpoint.

Referenced by init_spu_ops().

## ◆ spu_search_memory()

static int spu_search_memory | ( | struct target_ops * | ops,
|  | CORE_ADDR | start_addr,
|  | ULONGEST | search_space_len,
|  | const gdb_byte * | pattern,
|  | ULONGEST | pattern_len,
|  | CORE_ADDR * | found_addrp
| ) |  |
| static

Definition at line 307 of file spu-multiarch.c.

References find_target_beneath(), simple_search_memory(), SPUADDR_SPU, and target_ops::to_search_memory.

Referenced by init_spu_ops().

## ◆ spu_store_registers()

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

Definition at line 204 of file spu-multiarch.c.

References regcache::arch(), find_target_beneath(), gdbarch_bfd_arch_info(), inferior_ptid, make_scoped_restore(), parse_spufs_run(), regcache_get_ptid(), regcache_raw_collect(), SPU_NUM_GPRS, SPU_PC_REGNUM, TARGET_OBJECT_MEMORY, TARGET_OBJECT_SPU, target_write(), target_ops::to_store_registers, and xsnprintf().

Referenced by init_spu_ops().

## ◆ spu_thread_architecture()

static struct gdbarch* spu_thread_architecture | ( | struct target_ops * | ops,
|  | ptid_t | ptid
| ) |  |
| static

Definition at line 116 of file spu-multiarch.c.

References find_target_beneath(), parse_spufs_run(), spu_gdbarch(), and target_ops::to_thread_architecture.

Referenced by init_spu_ops().

## ◆ spu_xfer_partial()

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

Definition at line 256 of file spu-multiarch.c.

References find_target_beneath(), memset(), offset, SPUADDR_ADDR, SPUADDR_SPU, strtoulst(), TARGET_OBJECT_MEMORY, TARGET_OBJECT_SPU, TARGET_XFER_OK, target_ops::to_xfer_partial, and xsnprintf().

Referenced by init_spu_ops().

## Variable Documentation

## ◆ spu_nr_solib

int spu_nr_solib
| static

Definition at line 41 of file spu-multiarch.c.

Referenced by spu_multiarch_solib_loaded(), and spu_multiarch_solib_unloaded().

## ◆ spu_ops

struct target_ops spu_ops
| static

Definition at line 38 of file spu-multiarch.c.

Referenced by _initialize_spu_multiarch(), init_spu_ops(), spu_multiarch_activate(), and spu_multiarch_deactivate().