#include "sysdep.h"
#include "dis-asm.h"
#include <errno.h>
#include "opintl.h"
int
buffer_read_memory (memaddr, myaddr, length, info)
bfd_vma memaddr;
bfd_byte *myaddr;
unsigned int length;
struct disassemble_info *info;
{
unsigned int opb = info->octets_per_byte;
unsigned int end_addr_offset = length / opb;
unsigned int max_addr_offset = info->buffer_length / opb;
unsigned int octets = (memaddr - info->buffer_vma) * opb;
if (memaddr < info->buffer_vma
|| memaddr - info->buffer_vma + end_addr_offset > max_addr_offset)
return EIO;
memcpy (myaddr, info->buffer + octets, length);
return 0;
}
void
perror_memory (status, memaddr, info)
int status;
bfd_vma memaddr;
struct disassemble_info *info;
{
if (status != EIO)
info->fprintf_func (info->stream, _("Unknown error %d\n"), status);
else
info->fprintf_func (info->stream,
_("Address 0x%x is out of bounds.\n"), memaddr);
}
void
generic_print_address (addr, info)
bfd_vma addr;
struct disassemble_info *info;
{
char buf[30];
sprintf_vma (buf, addr);
(*info->fprintf_func) (info->stream, "0x%s", buf);
}
#if 0
void generic_strcat_address PARAMS ((bfd_vma, char *, int));
void
generic_strcat_address (addr, buf, len)
bfd_vma addr;
char *buf;
int len;
{
if (buf != (char *)NULL && len > 0)
{
char tmpBuf[30];
sprintf_vma (tmpBuf, addr);
if ((strlen (buf) + strlen (tmpBuf)) <= (unsigned int) len)
strcat (buf, tmpBuf);
else
strncat (buf, tmpBuf, (len - strlen(buf)));
}
return;
}
#endif
int
generic_symbol_at_address (addr, info)
bfd_vma addr ATTRIBUTE_UNUSED;
struct disassemble_info *info ATTRIBUTE_UNUSED;
{
return 1;
}
bfd_boolean
generic_symbol_is_valid (asymbol * sym ATTRIBUTE_UNUSED,
struct disassemble_info *info ATTRIBUTE_UNUSED)
{
return TRUE;
}