mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
Various gdb_byte related changes for FRV targets.
This commit is contained in:
parent
8c50e5e45a
commit
e2b7c96630
@ -1,3 +1,27 @@
|
||||
2005-11-07 Kevin Buettner <kevinb@redhat.com>
|
||||
|
||||
* frv-linux-tdep.c (frv_linux_sigtrapm_frame_prev_register): Change
|
||||
type of `valuep' argument to `gdb_byte *'.
|
||||
* frv-tdep.c (frv_pseudo_register_write): Change type of `buffer'
|
||||
argument to `gdb_byte *'.
|
||||
(frv_extract_return_value): Change type of `valbuf' argument to
|
||||
`gdb_byte *'.
|
||||
(frv_store_return_value): Likewise.
|
||||
(frv_frame_prev_register): Change type of `bufferp' argument to
|
||||
`gdb_byte *'
|
||||
* solib-frv.c (ext_Elf32_Half, ext_Elf32_Addr, ext_Elf32_Word)
|
||||
(ext_ptr): Change base type from `unsigned char' to `gdb_byte'. Adjust
|
||||
calls to extract_unsigned_integer which use struct members declared
|
||||
with these array types to not try to take the address of those
|
||||
members.
|
||||
(fetch_loadmap, frv_current_sos): Change cast in target_read_memory()
|
||||
calls from `char *' to `gdb_byte *'.
|
||||
(lm_base): Change base type of `buf' from `char' to `gdb_byte'.
|
||||
(enable_break2): Change type of `buf' from `char *' to `gdb_byte *'.
|
||||
Change base type of `addr_buf' from `char' to `gdb_byte'.
|
||||
(find_canonical_descriptor_in_load_object): Change base type of `buf'
|
||||
from `char' to `gdb_byte'.
|
||||
|
||||
2005-11-07 Paul Gilliam <pgilliam@us.ibm.com
|
||||
|
||||
* ppc-sysv-tdep.c (ppc64_sysv_abi_return_value): Copy code from
|
||||
|
@ -300,7 +300,7 @@ frv_linux_sigtramp_frame_prev_register (struct frame_info *next_frame,
|
||||
void **this_cache,
|
||||
int regnum, int *optimizedp,
|
||||
enum lval_type *lvalp, CORE_ADDR *addrp,
|
||||
int *realnump, void *valuep)
|
||||
int *realnump, gdb_byte *valuep)
|
||||
{
|
||||
/* Make sure we've initialized the cache. */
|
||||
struct trad_frame_cache *cache =
|
||||
|
@ -309,7 +309,7 @@ frv_register_type (struct gdbarch *gdbarch, int reg)
|
||||
|
||||
static void
|
||||
frv_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
int reg, void *buffer)
|
||||
int reg, gdb_byte *buffer)
|
||||
{
|
||||
if (reg == iacc0_regnum)
|
||||
{
|
||||
@ -335,7 +335,7 @@ frv_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
|
||||
static void
|
||||
frv_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
int reg, const void *buffer)
|
||||
int reg, const gdb_byte *buffer)
|
||||
{
|
||||
if (reg == iacc0_regnum)
|
||||
{
|
||||
@ -1031,7 +1031,7 @@ frv_frame_unwind_cache (struct frame_info *next_frame,
|
||||
|
||||
static void
|
||||
frv_extract_return_value (struct type *type, struct regcache *regcache,
|
||||
void *valbuf)
|
||||
gdb_byte *valbuf)
|
||||
{
|
||||
int len = TYPE_LENGTH (type);
|
||||
|
||||
@ -1247,7 +1247,7 @@ frv_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
|
||||
static void
|
||||
frv_store_return_value (struct type *type, struct regcache *regcache,
|
||||
const void *valbuf)
|
||||
const gdb_byte *valbuf)
|
||||
{
|
||||
int len = TYPE_LENGTH (type);
|
||||
|
||||
@ -1377,7 +1377,7 @@ frv_frame_prev_register (struct frame_info *next_frame,
|
||||
void **this_prologue_cache,
|
||||
int regnum, int *optimizedp,
|
||||
enum lval_type *lvalp, CORE_ADDR *addrp,
|
||||
int *realnump, void *bufferp)
|
||||
int *realnump, gdb_byte *bufferp)
|
||||
{
|
||||
struct frv_unwind_cache *info
|
||||
= frv_frame_unwind_cache (next_frame, this_prologue_cache);
|
||||
|
@ -44,9 +44,9 @@ enum { FRV_PTR_SIZE = 4 };
|
||||
/* External versions; the size and alignment of the fields should be
|
||||
the same as those on the target. When loaded, the placement of
|
||||
the bits in each field will be the same as on the target. */
|
||||
typedef unsigned char ext_Elf32_Half[2];
|
||||
typedef unsigned char ext_Elf32_Addr[4];
|
||||
typedef unsigned char ext_Elf32_Word[4];
|
||||
typedef gdb_byte ext_Elf32_Half[2];
|
||||
typedef gdb_byte ext_Elf32_Addr[4];
|
||||
typedef gdb_byte ext_Elf32_Word[4];
|
||||
|
||||
struct ext_elf32_fdpic_loadseg
|
||||
{
|
||||
@ -105,7 +105,7 @@ fetch_loadmap (CORE_ADDR ldmaddr)
|
||||
int version, seg, nsegs;
|
||||
|
||||
/* Fetch initial portion of the loadmap. */
|
||||
if (target_read_memory (ldmaddr, (char *) &ext_ldmbuf_partial,
|
||||
if (target_read_memory (ldmaddr, (gdb_byte *) &ext_ldmbuf_partial,
|
||||
sizeof ext_ldmbuf_partial))
|
||||
{
|
||||
/* Problem reading the target's memory. */
|
||||
@ -113,7 +113,7 @@ fetch_loadmap (CORE_ADDR ldmaddr)
|
||||
}
|
||||
|
||||
/* Extract the version. */
|
||||
version = extract_unsigned_integer (&ext_ldmbuf_partial.version,
|
||||
version = extract_unsigned_integer (ext_ldmbuf_partial.version,
|
||||
sizeof ext_ldmbuf_partial.version);
|
||||
if (version != 0)
|
||||
{
|
||||
@ -122,7 +122,7 @@ fetch_loadmap (CORE_ADDR ldmaddr)
|
||||
}
|
||||
|
||||
/* Extract the number of segments. */
|
||||
nsegs = extract_unsigned_integer (&ext_ldmbuf_partial.nsegs,
|
||||
nsegs = extract_unsigned_integer (ext_ldmbuf_partial.nsegs,
|
||||
sizeof ext_ldmbuf_partial.nsegs);
|
||||
|
||||
/* Allocate space for the complete (external) loadmap. */
|
||||
@ -135,7 +135,7 @@ fetch_loadmap (CORE_ADDR ldmaddr)
|
||||
|
||||
/* Read the rest of the loadmap from the target. */
|
||||
if (target_read_memory (ldmaddr + sizeof ext_ldmbuf_partial,
|
||||
(char *) ext_ldmbuf + sizeof ext_ldmbuf_partial,
|
||||
(gdb_byte *) ext_ldmbuf + sizeof ext_ldmbuf_partial,
|
||||
ext_ldmbuf_size - sizeof ext_ldmbuf_partial))
|
||||
{
|
||||
/* Couldn't read rest of the loadmap. */
|
||||
@ -155,13 +155,13 @@ fetch_loadmap (CORE_ADDR ldmaddr)
|
||||
for (seg = 0; seg < nsegs; seg++)
|
||||
{
|
||||
int_ldmbuf->segs[seg].addr
|
||||
= extract_unsigned_integer (&ext_ldmbuf->segs[seg].addr,
|
||||
= extract_unsigned_integer (ext_ldmbuf->segs[seg].addr,
|
||||
sizeof (ext_ldmbuf->segs[seg].addr));
|
||||
int_ldmbuf->segs[seg].p_vaddr
|
||||
= extract_unsigned_integer (&ext_ldmbuf->segs[seg].p_vaddr,
|
||||
= extract_unsigned_integer (ext_ldmbuf->segs[seg].p_vaddr,
|
||||
sizeof (ext_ldmbuf->segs[seg].p_vaddr));
|
||||
int_ldmbuf->segs[seg].p_memsz
|
||||
= extract_unsigned_integer (&ext_ldmbuf->segs[seg].p_memsz,
|
||||
= extract_unsigned_integer (ext_ldmbuf->segs[seg].p_memsz,
|
||||
sizeof (ext_ldmbuf->segs[seg].p_memsz));
|
||||
}
|
||||
|
||||
@ -171,7 +171,7 @@ fetch_loadmap (CORE_ADDR ldmaddr)
|
||||
|
||||
/* External link_map and elf32_fdpic_loadaddr struct definitions. */
|
||||
|
||||
typedef unsigned char ext_ptr[4];
|
||||
typedef gdb_byte ext_ptr[4];
|
||||
|
||||
struct ext_elf32_fdpic_loadaddr
|
||||
{
|
||||
@ -359,7 +359,7 @@ lm_base (void)
|
||||
{
|
||||
struct minimal_symbol *got_sym;
|
||||
CORE_ADDR addr;
|
||||
char buf[FRV_PTR_SIZE];
|
||||
gdb_byte buf[FRV_PTR_SIZE];
|
||||
|
||||
/* If we already have a cached value, return it. */
|
||||
if (lm_base_cache)
|
||||
@ -438,14 +438,14 @@ frv_current_sos (void)
|
||||
"current_sos: reading link_map entry at %s\n",
|
||||
hex_string_custom (lm_addr, 8));
|
||||
|
||||
if (target_read_memory (lm_addr, (char *) &lm_buf, sizeof (lm_buf)) != 0)
|
||||
if (target_read_memory (lm_addr, (gdb_byte *) &lm_buf, sizeof (lm_buf)) != 0)
|
||||
{
|
||||
warning (_("frv_current_sos: Unable to read link map entry. Shared object chain may be incomplete."));
|
||||
break;
|
||||
}
|
||||
|
||||
got_addr
|
||||
= extract_unsigned_integer (&lm_buf.l_addr.got_value,
|
||||
= extract_unsigned_integer (lm_buf.l_addr.got_value,
|
||||
sizeof (lm_buf.l_addr.got_value));
|
||||
/* If the got_addr is the same as mgotr, then we're looking at the
|
||||
entry for the main executable. By convention, we don't include
|
||||
@ -459,7 +459,7 @@ frv_current_sos (void)
|
||||
CORE_ADDR addr;
|
||||
|
||||
/* Fetch the load map address. */
|
||||
addr = extract_unsigned_integer (&lm_buf.l_addr.map,
|
||||
addr = extract_unsigned_integer (lm_buf.l_addr.map,
|
||||
sizeof lm_buf.l_addr.map);
|
||||
loadmap = fetch_loadmap (addr);
|
||||
if (loadmap == NULL)
|
||||
@ -474,7 +474,7 @@ frv_current_sos (void)
|
||||
sop->lm_info->got_value = got_addr;
|
||||
sop->lm_info->lm_addr = lm_addr;
|
||||
/* Fetch the name. */
|
||||
addr = extract_unsigned_integer (&lm_buf.l_name,
|
||||
addr = extract_unsigned_integer (lm_buf.l_name,
|
||||
sizeof (lm_buf.l_name));
|
||||
target_read_string (addr, &name_buf, SO_NAME_MAX_PATH_SIZE - 1,
|
||||
&errcode);
|
||||
@ -502,7 +502,7 @@ frv_current_sos (void)
|
||||
main_lm_addr = lm_addr;
|
||||
}
|
||||
|
||||
lm_addr = extract_unsigned_integer (&lm_buf.l_next, sizeof (lm_buf.l_next));
|
||||
lm_addr = extract_unsigned_integer (lm_buf.l_next, sizeof (lm_buf.l_next));
|
||||
}
|
||||
|
||||
enable_break2 ();
|
||||
@ -621,13 +621,13 @@ enable_break2 (void)
|
||||
if (interp_sect)
|
||||
{
|
||||
unsigned int interp_sect_size;
|
||||
char *buf;
|
||||
gdb_byte *buf;
|
||||
bfd *tmp_bfd = NULL;
|
||||
int tmp_fd = -1;
|
||||
char *tmp_pathname = NULL;
|
||||
int status;
|
||||
CORE_ADDR addr, interp_loadmap_addr;
|
||||
char addr_buf[FRV_PTR_SIZE];
|
||||
gdb_byte addr_buf[FRV_PTR_SIZE];
|
||||
struct int_elf32_fdpic_loadmap *ldm;
|
||||
|
||||
/* Read the contents of the .interp section into a local buffer;
|
||||
@ -1185,7 +1185,7 @@ find_canonical_descriptor_in_load_object
|
||||
if ((name == 0 || strcmp (name, (*rel->sym_ptr_ptr)->name) == 0)
|
||||
&& rel->howto->type == R_FRV_FUNCDESC)
|
||||
{
|
||||
char buf[FRV_PTR_SIZE];
|
||||
gdb_byte buf [FRV_PTR_SIZE];
|
||||
|
||||
/* Compute address of address of candidate descriptor. */
|
||||
addr = rel->address + displacement_from_map (lm->map, rel->address);
|
||||
|
Loading…
Reference in New Issue
Block a user