/* Cell SPU GNU/Linux multi-architecture debugging support.
- Copyright (C) 2009-2012 Free Software Foundation, Inc.
+ Copyright (C) 2009-2014 Free Software Foundation, Inc.
Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
#include "defs.h"
#include "gdbcore.h"
#include "gdbcmd.h"
-#include "gdb_string.h"
+#include <string.h>
#include "gdb_assert.h"
#include "arch-utils.h"
#include "observer.h"
enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
struct gdbarch_tdep *tdep;
struct regcache *regcache;
- char buf[4];
+ gdb_byte buf[4];
ULONGEST regval;
/* If we're not on PPU, there's nothing to detect. */
/* The ID register holds the spufs file handle. */
if (regno == -1 || regno == SPU_ID_REGNUM)
{
- char buf[4];
+ gdb_byte buf[4];
store_unsigned_integer (buf, 4, byte_order, spufs_fd);
regcache_raw_supply (regcache, SPU_ID_REGNUM, buf);
}
/* The NPC register is found in PPC memory at SPUFS_ADDR. */
if (regno == -1 || regno == SPU_PC_REGNUM)
{
- char buf[4];
+ gdb_byte buf[4];
if (target_read (ops_beneath, TARGET_OBJECT_MEMORY, NULL,
buf, spufs_addr, sizeof buf) == sizeof buf)
/* The GPRs are found in the "regs" spufs file. */
if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
{
- char buf[16 * SPU_NUM_GPRS], annex[32];
+ gdb_byte buf[16 * SPU_NUM_GPRS];
+ char annex[32];
int i;
xsnprintf (annex, sizeof annex, "%d/regs", spufs_fd);
/* The NPC register is found in PPC memory at SPUFS_ADDR. */
if (regno == -1 || regno == SPU_PC_REGNUM)
{
- char buf[4];
+ gdb_byte buf[4];
regcache_raw_collect (regcache, SPU_PC_REGNUM, buf);
target_write (ops_beneath, TARGET_OBJECT_MEMORY, NULL,
/* The GPRs are found in the "regs" spufs file. */
if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
{
- char buf[16 * SPU_NUM_GPRS], annex[32];
+ gdb_byte buf[16 * SPU_NUM_GPRS];
+ char annex[32];
int i;
for (i = 0; i < SPU_NUM_GPRS; i++)
0, sizeof buf) <= 0)
return ret;
- lslr = strtoulst (buf, NULL, 16);
+ lslr = strtoulst ((char *) buf, NULL, 16);
return ops_beneath->to_xfer_partial (ops_beneath, TARGET_OBJECT_SPU,
mem_annex, readbuf, writebuf,
addr & lslr, len);
{
/* Install ourselves on the target stack. */
init_spu_ops ();
- add_target (&spu_ops);
+ complete_target_initialization (&spu_ops);
/* Install observers to watch for SPU objects. */
observer_attach_inferior_created (spu_multiarch_inferior_created);