/* Prototypes for local functions */
+extern void _initialize_remote_d10v PARAMS ((void));
+
static void remote_d10v_open PARAMS ((char *name, int from_tty));
/* Define the target subroutine names */
/* Translate a GDB virtual ADDR/LEN into a format the remote target
understands. Returns number of bytes that can be transfered
starting at taddr, ZERO if no bytes can be transfered. */
-int
-remote_d10v_translate_xfer_address (memaddr, nr_bytes, taddr)
+void
+remote_d10v_translate_xfer_address (memaddr, nr_bytes, targ_addr, targ_len)
CORE_ADDR memaddr;
int nr_bytes;
- CORE_ADDR *taddr;
+ CORE_ADDR *targ_addr;
+ int *targ_len;
{
CORE_ADDR phys;
CORE_ADDR seg;
else
{
/* Logical address out side of data segments, not supported */
- return (0);
+ *targ_len = 0;
+ return;
}
break;
}
{
/* Logical address outside of IMAP[01] segment, not
supported */
- return (0);
+ *targ_len = 0;
+ return;
}
if ((off & 0x1ffff) + nr_bytes > 0x1ffffL)
{
{
phys = ((map & 0x7fL) << 17) + (off & 0x1ffffL);
if (phys > 0xffffffL)
- /* Address outside of unified address segment */
- return (0);
+ {
+ /* Address outside of unified address segment */
+ *targ_len = 0;
+ return;
+ }
phys |= targ_unified;
to = "unified";
}
break;
default:
- return (0);
+ *targ_len = 0;
+ return;
}
- *taddr = phys;
- return nr_bytes;
+ *targ_addr = phys;
+ *targ_len = nr_bytes;
}