+2007-05-07 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * spu-linux-nat.c (fetch_ppc_register, fetch_ppc_memory_1,
+ store_ppc_memory_1, fetch_ppc_memory, store_ppc_memory,
+ parse_spufs_run, spu_bfd_iovec_pread, spu_bfd_open,
+ spu_symbol_file_add_from_memory, spu_child_post_startup_inferior,
+ spu_child_post_attach, spu_fetch_inferior_registers,
+ spu_store_inferior_registers, spu_xfer_partial): Store PPE-side
+ memory addresses as ULONGEST, not CORE_ADDR.
+
2007-05-07 Ulrich Weigand <uweigand@de.ibm.com>
* gdbarch.sh: Add skip_permanent_breakpoint callback.
/* Fetch PPU register REGNO. */
-static CORE_ADDR
+static ULONGEST
fetch_ppc_register (int regno)
{
PTRACE_TYPE_RET res;
ptrace (PPC_PTRACE_PEEKUSR_3264, tid,
(PTRACE_TYPE_ARG3) (regno * 8 + 4), buf + 4);
if (errno == 0)
- return (CORE_ADDR) *(unsigned long long *)buf;
+ return (ULONGEST) *(unsigned long long *)buf;
}
#endif
perror_with_name (_(mess));
}
- return (CORE_ADDR) (unsigned long) res;
+ return (ULONGEST) (unsigned long) res;
}
/* Fetch WORD from PPU memory at (aligned) MEMADDR in thread TID. */
static int
-fetch_ppc_memory_1 (int tid, CORE_ADDR memaddr, PTRACE_TYPE_RET *word)
+fetch_ppc_memory_1 (int tid, ULONGEST memaddr, PTRACE_TYPE_RET *word)
{
errno = 0;
/* Store WORD into PPU memory at (aligned) MEMADDR in thread TID. */
static int
-store_ppc_memory_1 (int tid, CORE_ADDR memaddr, PTRACE_TYPE_RET word)
+store_ppc_memory_1 (int tid, ULONGEST memaddr, PTRACE_TYPE_RET word)
{
errno = 0;
/* Fetch LEN bytes of PPU memory at MEMADDR to MYADDR. */
static int
-fetch_ppc_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len)
+fetch_ppc_memory (ULONGEST memaddr, gdb_byte *myaddr, int len)
{
int i, ret;
- CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_TYPE_RET);
+ ULONGEST addr = memaddr & -(ULONGEST) sizeof (PTRACE_TYPE_RET);
int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
/ sizeof (PTRACE_TYPE_RET));
PTRACE_TYPE_RET *buffer;
/* Store LEN bytes from MYADDR to PPU memory at MEMADDR. */
static int
-store_ppc_memory (CORE_ADDR memaddr, const gdb_byte *myaddr, int len)
+store_ppc_memory (ULONGEST memaddr, const gdb_byte *myaddr, int len)
{
int i, ret;
- CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_TYPE_RET);
+ ULONGEST addr = memaddr & -(ULONGEST) sizeof (PTRACE_TYPE_RET);
int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
/ sizeof (PTRACE_TYPE_RET));
PTRACE_TYPE_RET *buffer;
return to FD and ADDR the file handle and NPC parameter address
used with the system call. Return non-zero if successful. */
static int
-parse_spufs_run (int *fd, CORE_ADDR *addr)
+parse_spufs_run (int *fd, ULONGEST *addr)
{
gdb_byte buf[4];
- CORE_ADDR pc = fetch_ppc_register (32); /* nip */
+ ULONGEST pc = fetch_ppc_register (32); /* nip */
/* Fetch instruction preceding current NIP. */
if (fetch_ppc_memory (pc-4, buf, 4) != 0)
spu_bfd_iovec_pread (struct bfd *abfd, void *stream, void *buf,
file_ptr nbytes, file_ptr offset)
{
- CORE_ADDR addr = *(CORE_ADDR *)stream;
+ ULONGEST addr = *(ULONGEST *)stream;
if (fetch_ppc_memory (addr + offset, buf, nbytes) != 0)
{
}
static bfd *
-spu_bfd_open (CORE_ADDR addr)
+spu_bfd_open (ULONGEST addr)
{
struct bfd *nbfd;
- CORE_ADDR *open_closure = xmalloc (sizeof (CORE_ADDR));
+ ULONGEST *open_closure = xmalloc (sizeof (ULONGEST));
*open_closure = addr;
nbfd = bfd_openr_iovec (xstrdup ("<in-memory>"), "elf32-spu",
static void
spu_symbol_file_add_from_memory (int inferior_fd)
{
- CORE_ADDR addr;
+ ULONGEST addr;
struct bfd *nbfd;
char id[128];
spu_child_post_startup_inferior (ptid_t ptid)
{
int fd;
- CORE_ADDR addr;
+ ULONGEST addr;
int tid = TIDGET (ptid);
if (tid == 0)
spu_child_post_attach (int pid)
{
int fd;
- CORE_ADDR addr;
+ ULONGEST addr;
/* Like child_post_startup_inferior, if we happened to attach to
the inferior while it wasn't currently in spu_run, continue
spu_fetch_inferior_registers (struct regcache *regcache, int regno)
{
int fd;
- CORE_ADDR addr;
+ ULONGEST addr;
/* We must be stopped on a spu_run system call. */
if (!parse_spufs_run (&fd, &addr))
spu_store_inferior_registers (struct regcache *regcache, int regno)
{
int fd;
- CORE_ADDR addr;
+ ULONGEST addr;
/* We must be stopped on a spu_run system call. */
if (!parse_spufs_run (&fd, &addr))
if (object == TARGET_OBJECT_MEMORY)
{
int fd;
- CORE_ADDR addr;
+ ULONGEST addr;
char mem_annex[32];
/* We must be stopped on a spu_run system call. */