GDBserver
Macros | Functions | Variables
spu-low.c File Reference
#include "server.h"
#include "gdb_wait.h"
#include <sys/ptrace.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/syscall.h>
#include "filestuff.h"
#include "hostio.h"

Go to the source code of this file.

Macros

#define __WNOTHREAD
 
#define PTRACE_TYPE_RET   long
 
#define PTRACE_TYPE_ARG3   long
 
#define SPU_NUM_REGS   130
 
#define SPU_NUM_CORE_REGS   128
 
#define SPU_ID_REGNUM   128
 
#define SPU_PC_REGNUM   129
 
#define INSTR_SC   0x44000002
 
#define NR_spu_run   0x0116
 

Functions

void init_registers_spu (void)
 
static CORE_ADDR fetch_ppc_register (int regno)
 
static int fetch_ppc_memory_1 (int tid, CORE_ADDR memaddr, PTRACE_TYPE_RET *word)
 
static int store_ppc_memory_1 (int tid, CORE_ADDR memaddr, PTRACE_TYPE_RET word)
 
static int fetch_ppc_memory (CORE_ADDR memaddr, char *myaddr, int len)
 
static int store_ppc_memory (CORE_ADDR memaddr, char *myaddr, int len)
 
static int parse_spufs_run (int *fd, CORE_ADDR *addr)
 
static int spu_proc_xfer_spu (const char *annex, unsigned char *readbuf, const unsigned char *writebuf, CORE_ADDR offset, int len)
 
static int spu_create_inferior (char *program, char **allargs)
 
int spu_attach (unsigned long pid)
 
static int spu_kill (int pid)
 
static int spu_detach (int pid)
 
static void spu_mourn (struct process_info *process)
 
static void spu_join (int pid)
 
static int spu_thread_alive (ptid_t ptid)
 
static void spu_resume (struct thread_resume *resume_info, size_t n)
 
static ptid_t spu_wait (ptid_t ptid, struct target_waitstatus *ourstatus, int options)
 
static void spu_fetch_registers (struct regcache *regcache, int regno)
 
static void spu_store_registers (struct regcache *regcache, int regno)
 
static int spu_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
 
static int spu_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len)
 
static void spu_look_up_symbols (void)
 
static void spu_request_interrupt (void)
 
void initialize_low (void)
 

Variables

int using_threads = 0
 
const struct target_desctdesc_spu
 
static struct target_ops spu_target_ops
 

Macro Definition Documentation

#define __WNOTHREAD
Value:
0x20000000 /* Don't wait on children of other
threads in this group */

Definition at line 33 of file spu-low.c.

Referenced by spu_wait().

#define INSTR_SC   0x44000002

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

Referenced by parse_spufs_run().

#define NR_spu_run   0x0116

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

Referenced by parse_spufs_run().

#define PTRACE_TYPE_ARG3   long
#define PTRACE_TYPE_RET   long

Definition at line 37 of file spu-low.c.

Referenced by fetch_ppc_memory(), fetch_ppc_register(), and store_ppc_memory().

#define SPU_ID_REGNUM   128

Definition at line 45 of file spu-low.c.

Referenced by spu_fetch_registers().

#define SPU_NUM_CORE_REGS   128

Definition at line 42 of file spu-low.c.

Referenced by spu_fetch_registers(), and spu_store_registers().

#define SPU_NUM_REGS   130

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

#define SPU_PC_REGNUM   129

Definition at line 46 of file spu-low.c.

Referenced by spu_fetch_registers(), and spu_store_registers().

Function Documentation

static int fetch_ppc_memory ( CORE_ADDR  memaddr,
char *  myaddr,
int  len 
)
static
static int fetch_ppc_memory_1 ( int  tid,
CORE_ADDR  memaddr,
PTRACE_TYPE_RET word 
)
static

Definition at line 101 of file spu-low.c.

References errno, and PTRACE_TYPE_ARG3.

Referenced by fetch_ppc_memory(), and store_ppc_memory().

static CORE_ADDR fetch_ppc_register ( int  regno)
static

Definition at line 61 of file spu-low.c.

References current_ptid, errno, perror_with_name(), ptid_get_lwp(), PTRACE_TYPE_ARG3, and PTRACE_TYPE_RET.

Referenced by parse_spufs_run().

void init_registers_spu ( void  )

Referenced by initialize_low().

void initialize_low ( void  )

Definition at line 675 of file spu-low.c.

References init_registers_spu(), set_breakpoint_data(), and set_target_ops().

static int parse_spufs_run ( int *  fd,
CORE_ADDR addr 
)
static
int spu_attach ( unsigned long  pid)
static int spu_create_inferior ( char *  program,
char **  allargs 
)
static
static int spu_detach ( int  pid)
static

Definition at line 344 of file spu-low.c.

References clear_inferiors(), find_process_pid(), and remove_process().

static void spu_fetch_registers ( struct regcache regcache,
int  regno 
)
static
static void spu_join ( int  pid)
static

Definition at line 364 of file spu-low.c.

References errno, WIFEXITED, and WIFSIGNALED.

static int spu_kill ( int  pid)
static
static void spu_look_up_symbols ( void  )
static

Definition at line 628 of file spu-low.c.

static void spu_mourn ( struct process_info process)
static

Definition at line 358 of file spu-low.c.

References remove_process().

static int spu_proc_xfer_spu ( const char *  annex,
unsigned char *  readbuf,
const unsigned char *  writebuf,
CORE_ADDR  offset,
int  len 
)
static
static int spu_read_memory ( CORE_ADDR  memaddr,
unsigned char *  myaddr,
int  len 
)
static

Definition at line 555 of file spu-low.c.

References parse_spufs_run(), and spu_proc_xfer_spu().

static void spu_request_interrupt ( void  )
static

Definition at line 634 of file spu-low.c.

References current_ptid, and ptid_get_lwp().

static void spu_resume ( struct thread_resume resume_info,
size_t  n 
)
static
static void spu_store_registers ( struct regcache regcache,
int  regno 
)
static
static int spu_thread_alive ( ptid_t  ptid)
static

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

References current_ptid, and ptid_equal().

static ptid_t spu_wait ( ptid_t  ptid,
struct target_waitstatus *  ourstatus,
int  options 
)
static
static int spu_write_memory ( CORE_ADDR  memaddr,
const unsigned char *  myaddr,
int  len 
)
static

Definition at line 593 of file spu-low.c.

References parse_spufs_run(), and spu_proc_xfer_spu().

static int store_ppc_memory ( CORE_ADDR  memaddr,
char *  myaddr,
int  len 
)
static
static int store_ppc_memory_1 ( int  tid,
CORE_ADDR  memaddr,
PTRACE_TYPE_RET  word 
)
static

Definition at line 120 of file spu-low.c.

References errno, and PTRACE_TYPE_ARG3.

Referenced by store_ppc_memory().

Variable Documentation

struct target_ops spu_target_ops
static

Definition at line 639 of file spu-low.c.

const struct target_desc* tdesc_spu

Referenced by spu_attach(), and spu_create_inferior().

int using_threads = 0

Definition at line 53 of file spu-low.c.