GDB (xrefs)

Macros | Functions
/tmp/gdb-8.1/gdb/spu-linux-nat.c File Reference
`#include "defs.h"`
`#include "gdbcore.h"`
`#include "target.h"`
`#include "inferior.h"`
`#include "inf-child.h"`
`#include "inf-ptrace.h"`
`#include "regcache.h"`
`#include "symfile.h"`
`#include "gdb_wait.h"`
`#include "gdbthread.h"`
`#include "gdb_bfd.h"`
`#include "nat/gdb_ptrace.h"`
`#include <asm/ptrace.h>`
`#include <sys/types.h>`
`#include "spu-tdep.h"`

Go to the source code of this file.

## Macros
#define | INSTR_SC 0x44000002
#define | NR_spu_run 0x0116

## Functions
static ULONGEST | fetch_ppc_register (int regno)
static int | fetch_ppc_memory_1 (int tid, ULONGEST memaddr, PTRACE_TYPE_RET *word)
static int | store_ppc_memory_1 (int tid, ULONGEST memaddr, PTRACE_TYPE_RET word)
static int | fetch_ppc_memory (ULONGEST memaddr, gdb_byte *myaddr, int len)
static int | store_ppc_memory (ULONGEST memaddr, const gdb_byte *myaddr, int len)
static int | parse_spufs_run (int *fd, ULONGEST *addr)
static enum target_xfer_status | spu_proc_xfer_spu (const char *annex, gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
static void * | spu_bfd_iovec_open (struct bfd *nbfd, void *open_closure)
static int | spu_bfd_iovec_close (struct bfd *nbfd, void *stream)
static file_ptr | spu_bfd_iovec_pread (struct bfd *abfd, void *stream, void *buf, file_ptr nbytes, file_ptr offset)
static int | spu_bfd_iovec_stat (struct bfd *abfd, void *stream, struct stat *sb)
static gdb_bfd_ref_ptr | spu_bfd_open (ULONGEST addr)
static void | spu_symbol_file_add_from_memory (int inferior_fd)
static void | spu_child_post_startup_inferior (struct target_ops *self, ptid_t ptid)
static void | spu_child_post_attach (struct target_ops *self, int pid)
static ptid_t | spu_child_wait (struct target_ops *ops, ptid_t ptid, struct target_waitstatus *ourstatus, int options)
static void | spu_fetch_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno)
static void | spu_store_inferior_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_can_use_hw_breakpoint (struct target_ops *self, enum bptype type, int cnt, int othertype)
void | _initialize_spu_nat (void)

## Macro Definition Documentation

## ◆ INSTR_SC

#define INSTR_SC 0x44000002

Definition at line 40 of file spu-linux-nat.c.

Referenced by parse_spufs_run().

## ◆ NR_spu_run

#define NR_spu_run 0x0116

Definition at line 41 of file spu-linux-nat.c.

Referenced by parse_spufs_run().

## Function Documentation

## ◆ _initialize_spu_nat()

void _initialize_spu_nat | ( | void |  | ) |

Definition at line 639 of file spu-linux-nat.c.

References add_target(), inf_ptrace_target(), spu_can_use_hw_breakpoint(), spu_child_post_attach(), spu_child_post_startup_inferior(), spu_child_wait(), spu_fetch_inferior_registers(), spu_store_inferior_registers(), spu_xfer_partial(), target_ops::to_can_use_hw_breakpoint, target_ops::to_fetch_registers, target_ops::to_post_attach, target_ops::to_post_startup_inferior, target_ops::to_store_registers, target_ops::to_wait, and target_ops::to_xfer_partial.

## ◆ fetch_ppc_memory()

static int fetch_ppc_memory | ( | ULONGEST | memaddr,
|  | gdb_byte * | myaddr,
|  | int | len
| ) |  |
| static

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

References fetch_ppc_memory_1(), inferior_ptid, ptid_get_lwp(), ptid_get_pid(), PTRACE_TYPE_RET, and selftests::ptid::tid.

Referenced by parse_spufs_run(), spu_bfd_iovec_pread(), and spu_fetch_inferior_registers().

## ◆ fetch_ppc_memory_1()

static int fetch_ppc_memory_1 | ( | int | tid,
|  | ULONGEST | memaddr,
|  | PTRACE_TYPE_RET * | word
| ) |  |
| static

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

References PT_READ_I, ptrace(), PTRACE_TYPE_ARG3, and selftests::ptid::tid.

Referenced by fetch_ppc_memory(), and store_ppc_memory().

## ◆ fetch_ppc_register()

static ULONGEST fetch_ppc_register | ( | int | regno | ) |
| static

Definition at line 46 of file spu-linux-nat.c.

References _, inferior_ptid, gdb.printer.bound_registers::long, perror_with_name(), PT_READ_U, ptid_get_lwp(), ptid_get_pid(), ptrace(), PTRACE_TYPE_ARG3, PTRACE_TYPE_RET, selftests::ptid::tid, and xsnprintf().

Referenced by parse_spufs_run().

## ◆ parse_spufs_run()

static int parse_spufs_run | ( | int * | fd,
|  | ULONGEST * | addr
| ) |  |
| static

Definition at line 205 of file spu-linux-nat.c.

References extract_unsigned_integer(), fetch_ppc_memory(), fetch_ppc_register(), gdbarch_byte_order(), INSTR_SC, NR_spu_run, and target_gdbarch().

Referenced by spu_child_post_attach(), spu_child_post_startup_inferior(), spu_fetch_inferior_registers(), spu_store_inferior_registers(), and spu_xfer_partial().

## ◆ spu_bfd_iovec_close()

static int spu_bfd_iovec_close | ( | struct bfd * | nbfd,
|  | void * | stream
| ) |  |
| static

Definition at line 285 of file spu-linux-nat.c.

References xfree().

Referenced by spu_bfd_open().

## ◆ spu_bfd_iovec_open()

static void* spu_bfd_iovec_open | ( | struct bfd * | nbfd,
|  | void * | open_closure
| ) |  |
| static

Definition at line 279 of file spu-linux-nat.c.

Referenced by spu_bfd_open().

## ◆ spu_bfd_iovec_pread()

static file_ptr spu_bfd_iovec_pread | ( | struct bfd * | abfd,
|  | void * | stream,
|  | void * | buf,
|  | file_ptr | nbytes,
|  | file_ptr | offset
| ) |  |
| static

Definition at line 294 of file spu-linux-nat.c.

References fetch_ppc_memory(), and offset.

Referenced by spu_bfd_open().

## ◆ spu_bfd_iovec_stat()

static int spu_bfd_iovec_stat | ( | struct bfd * | abfd,
|  | void * | stream,
|  | struct stat * | sb
| ) |  |
| static

Definition at line 309 of file spu-linux-nat.c.

References INT_MAX, and memset().

Referenced by spu_bfd_open().

## ◆ spu_bfd_open()

static gdb_bfd_ref_ptr spu_bfd_open | ( | ULONGEST | addr | ) |
| static

Definition at line 322 of file spu-linux-nat.c.

References gdb_bfd_openr_iovec(), gdb::ref_ptr< T, Policy >::get(), spu_bfd_iovec_close(), spu_bfd_iovec_open(), spu_bfd_iovec_pread(), spu_bfd_iovec_stat(), xfree(), and XNEW.

Referenced by spu_symbol_file_add_from_memory().

## ◆ spu_can_use_hw_breakpoint()

static int spu_can_use_hw_breakpoint | ( | struct target_ops * | self,
|  | enum bptype | type,
|  | int | cnt,
|  | int | othertype
| ) |  |
| static

Definition at line 631 of file spu-linux-nat.c.

Referenced by _initialize_spu_nat().

## ◆ spu_child_post_attach()

static void spu_child_post_attach | ( | struct target_ops * | self,
|  | int | pid
| ) |  |
| static

Definition at line 417 of file spu-linux-nat.c.

References __WALL, get_exec_file(), parse_spufs_run(), pid, PT_SYSCALL, ptrace(), PTRACE_TYPE_ARG3, and spu_symbol_file_add_from_memory().

Referenced by _initialize_spu_nat().

## ◆ spu_child_post_startup_inferior()

static void spu_child_post_startup_inferior | ( | struct target_ops * | self,
|  | ptid_t | ptid
| ) |  |
| static

Definition at line 398 of file spu-linux-nat.c.

References __WALL, parse_spufs_run(), PT_SYSCALL, ptid_get_lwp(), ptid_get_pid(), ptrace(), PTRACE_TYPE_ARG3, and selftests::ptid::tid.

Referenced by _initialize_spu_nat().

## ◆ spu_child_wait()

static ptid_t spu_child_wait | ( | struct target_ops * | ops,
|  | ptid_t | ptid,
|  | struct target_waitstatus * | ourstatus,
|  | int | options
| ) |  |
| static

Definition at line 440 of file spu-linux-nat.c.

References _, __WCLONE, clear_sigint_trap(), inferior_ptid, target_waitstatus::kind, pid, pid_to_ptid(), ptid_get_pid(), safe_strerror(), set_sigint_trap(), target_waitstatus::sig, status, store_waitstatus(), TARGET_WAITKIND_SIGNALLED, target_waitstatus::value, warning(), and WIFSTOPPED.

Referenced by _initialize_spu_nat().

## ◆ spu_fetch_inferior_registers()

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

Definition at line 489 of file spu-linux-nat.c.

References regcache::arch(), gdbarch::byte_order, fetch_ppc_memory(), 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, spu_proc_xfer_spu(), store_unsigned_integer(), TARGET_XFER_OK, and xsnprintf().

Referenced by _initialize_spu_nat().

## ◆ spu_proc_xfer_spu()

static enum target_xfer_status spu_proc_xfer_spu | ( | const char * | annex,
|  | gdb_byte * | readbuf,
|  | const gdb_byte * | writebuf,
|  | ULONGEST | offset,
|  | ULONGEST | len,
|  | ULONGEST * | xfered_len
| ) |  |
| static

Definition at line 233 of file spu-linux-nat.c.

References inferior_ptid, offset, pid, ptid_get_pid(), read(), SEEK_SET, TARGET_XFER_E_IO, TARGET_XFER_EOF, TARGET_XFER_OK, and xsnprintf().

Referenced by spu_fetch_inferior_registers(), spu_store_inferior_registers(), spu_symbol_file_add_from_memory(), and spu_xfer_partial().

## ◆ spu_store_inferior_registers()

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

Definition at line 541 of file spu-linux-nat.c.

References inferior_ptid, make_scoped_restore(), parse_spufs_run(), regcache_get_ptid(), regcache_raw_collect(), SPU_NUM_GPRS, SPU_PC_REGNUM, spu_proc_xfer_spu(), store_ppc_memory(), and xsnprintf().

Referenced by _initialize_spu_nat().

## ◆ spu_symbol_file_add_from_memory()

static void spu_symbol_file_add_from_memory | ( | int | inferior_fd | ) |
| static

Definition at line 365 of file spu-linux-nat.c.

References gdb::ref_ptr< T, Policy >::get(), spu_bfd_open(), spu_proc_xfer_spu(), status, strtoulst(), symbol_file_add_from_bfd(), SYMFILE_MAINLINE, SYMFILE_VERBOSE, TARGET_XFER_OK, and xsnprintf().

Referenced by spu_child_post_attach().

## ◆ 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 582 of file spu-linux-nat.c.

References memset(), offset, parse_spufs_run(), spu_proc_xfer_spu(), strtoulst(), TARGET_OBJECT_MEMORY, TARGET_OBJECT_SPU, TARGET_XFER_E_IO, TARGET_XFER_EOF, TARGET_XFER_OK, and xsnprintf().

Referenced by _initialize_spu_nat().

## ◆ store_ppc_memory()

static int store_ppc_memory | ( | ULONGEST | memaddr,
|  | const gdb_byte * | myaddr,
|  | int | len
| ) |  |
| static

Definition at line 156 of file spu-linux-nat.c.

References fetch_ppc_memory_1(), inferior_ptid, ptid_get_lwp(), ptid_get_pid(), PTRACE_TYPE_RET, store_ppc_memory_1(), and selftests::ptid::tid.

Referenced by spu_store_inferior_registers().

## ◆ store_ppc_memory_1()

static int store_ppc_memory_1 | ( | int | tid,
|  | ULONGEST | memaddr,
|  | PTRACE_TYPE_RET | word
| ) |  |
| static

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

References PT_WRITE_D, ptrace(), PTRACE_TYPE_ARG3, and selftests::ptid::tid.

Referenced by store_ppc_memory().