* callback.c (default_callback): Initialize target_endian.
(cb_store_target_endian): Renamed from store, new first parameter host_callback *cb, drop last parameter big_p. Take endianness from cb. (cb_host_to_target_stat): Change to use cb_store_target_endian. Remove variable big_p. * nrun.c (main): Initialize default_callback.target_endian.
This commit is contained in:
parent
99b2a78e34
commit
f4f8cce440
3 changed files with 27 additions and 8 deletions
|
@ -1,3 +1,13 @@
|
|||
2005-01-28 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* callback.c (default_callback): Initialize target_endian.
|
||||
(cb_store_target_endian): Renamed from store, new first parameter
|
||||
host_callback *cb, drop last parameter big_p. Take endianness
|
||||
from cb.
|
||||
(cb_host_to_target_stat): Change to use cb_store_target_endian.
|
||||
Remove variable big_p.
|
||||
* nrun.c (main): Initialize default_callback.target_endian.
|
||||
|
||||
2005-01-14 Andrew Cagney <cagney@gnu.org>
|
||||
|
||||
* configure.ac: Replace SIM_AC_COMMON with sinclude of common.m4.
|
||||
|
|
|
@ -626,6 +626,9 @@ host_callback default_callback =
|
|||
0, /* signal_map */
|
||||
0, /* stat_map */
|
||||
|
||||
/* Defaults expected to be overridden at initialization, where needed. */
|
||||
BFD_ENDIAN_UNKNOWN, /* target_endian */
|
||||
|
||||
HOST_CALLBACK_MAGIC,
|
||||
};
|
||||
|
||||
|
@ -757,17 +760,17 @@ cb_target_to_host_open (cb, target_val)
|
|||
return host_val;
|
||||
}
|
||||
|
||||
/* Utility for cb_host_to_target_stat to store values in the target's
|
||||
/* Utility for e.g. cb_host_to_target_stat to store values in the target's
|
||||
stat struct. */
|
||||
|
||||
static void
|
||||
store (p, size, val, big_p)
|
||||
void
|
||||
cb_store_target_endian (cb, p, size, val)
|
||||
host_callback *cb;
|
||||
char *p;
|
||||
int size;
|
||||
long val; /* ??? must be as big as target word size */
|
||||
int big_p;
|
||||
{
|
||||
if (big_p)
|
||||
if (cb->target_endian == BFD_ENDIAN_BIG)
|
||||
{
|
||||
p += size;
|
||||
while (size-- > 0)
|
||||
|
@ -801,7 +804,6 @@ cb_host_to_target_stat (cb, hs, ts)
|
|||
{
|
||||
const char *m = cb->stat_map;
|
||||
char *p;
|
||||
int big_p = 0;
|
||||
|
||||
if (hs == NULL)
|
||||
ts = NULL;
|
||||
|
@ -833,7 +835,7 @@ cb_host_to_target_stat (cb, hs, ts)
|
|||
#undef ST_x
|
||||
#define ST_x(FLD) \
|
||||
else if (strncmp (m, #FLD, q - m) == 0) \
|
||||
store (p, size, hs->FLD, big_p)
|
||||
cb_store_target_endian (cb, p, size, hs->FLD)
|
||||
|
||||
#ifdef HAVE_STRUCT_STAT_ST_DEV
|
||||
ST_x (st_dev);
|
||||
|
@ -877,7 +879,8 @@ cb_host_to_target_stat (cb, hs, ts)
|
|||
#undef ST_x
|
||||
/* FIXME:wip */
|
||||
else
|
||||
store (p, size, 0, big_p); /* unsupported field, store 0 */
|
||||
/* Unsupported field, store 0. */
|
||||
cb_store_target_endian (cb, p, size, 0);
|
||||
}
|
||||
|
||||
p += size;
|
||||
|
|
|
@ -82,6 +82,12 @@ main (int argc, char **argv)
|
|||
abort ();
|
||||
}
|
||||
|
||||
/* We can't set the endianness in the callback structure until
|
||||
sim_config is called, which happens in sim_open. */
|
||||
default_callback.target_endian
|
||||
= (CURRENT_TARGET_BYTE_ORDER == BIG_ENDIAN
|
||||
? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE);
|
||||
|
||||
/* Was there a program to run? */
|
||||
prog_argv = STATE_PROG_ARGV (sd);
|
||||
prog_bfd = STATE_PROG_BFD (sd);
|
||||
|
|
Loading…
Reference in a new issue