diff options
author | Mike Frysinger <vapier@gentoo.org> | 2021-04-24 14:35:14 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2021-05-14 21:05:36 -0400 |
commit | 00330cd18a4ba83beabad4cb9f4215170828cd29 (patch) | |
tree | 5e2c26d6fa4f383e0ac7e933f33005d6b136fbcd /sim/common | |
parent | fcf102ba7abe6c8a64b2db41bfd02ac80e79e094 (diff) | |
download | gdb-00330cd18a4ba83beabad4cb9f4215170828cd29.zip gdb-00330cd18a4ba83beabad4cb9f4215170828cd29.tar.gz gdb-00330cd18a4ba83beabad4cb9f4215170828cd29.tar.bz2 |
sim: callback: convert time interface to 64-bit
PR sim/27705
Rather than rely on time_t being the right size between the host &
target, have the interface always be 64-bit. We can figure out if
we need to truncate when actually outputting it to the right target.
Diffstat (limited to 'sim/common')
-rw-r--r-- | sim/common/ChangeLog | 9 | ||||
-rw-r--r-- | sim/common/callback.c | 10 | ||||
-rw-r--r-- | sim/common/sim-io.c | 7 | ||||
-rw-r--r-- | sim/common/sim-io.h | 2 | ||||
-rw-r--r-- | sim/common/syscall.c | 2 |
5 files changed, 19 insertions, 11 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index ac80464..879aac9 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,5 +1,14 @@ 2021-05-14 Mike Frysinger <vapier@gentoo.org> + * callback.c (os_time): Change return to int64_t. Delete 2nd arg. + (os_fstat): Delete 2nd arg to time callback. + * sim-io.c (sim_io_time): Change return to int64_t. Delete 2nd arg + to time callback. + * sim-io.h (sim_io_time): Change return to int64_t. + * syscall.c (cb_syscall): Delete 2nd arg to time callback. + +2021-05-14 Mike Frysinger <vapier@gentoo.org> + * callback.c (cb_host_to_target_stat): Change PTR to void*. * sim-syscall.c (sim_syscall_multi): Delete (PTR) casts. diff --git a/sim/common/callback.c b/sim/common/callback.c index 1b53823..fb5e864 100644 --- a/sim/common/callback.c +++ b/sim/common/callback.c @@ -420,12 +420,12 @@ os_system (host_callback *p, const char *s) return result; } -static long -os_time (host_callback *p, long *t) +static int64_t +os_time (host_callback *p) { - long result; + int64_t result; - result = time (t); + result = time (NULL); p->last_errno = errno; return result; } @@ -466,7 +466,7 @@ os_fstat (host_callback *p, int fd, struct stat *buf) if (p->ispipe[fd]) { #if defined (HAVE_STRUCT_STAT_ST_ATIME) || defined (HAVE_STRUCT_STAT_ST_CTIME) || defined (HAVE_STRUCT_STAT_ST_MTIME) - time_t t = (*p->time) (p, NULL); + time_t t = (*p->time) (p); #endif /* We have to fake the struct stat contents, since the pipe is diff --git a/sim/common/sim-io.c b/sim/common/sim-io.c index f418c37..e5da7f1 100644 --- a/sim/common/sim-io.c +++ b/sim/common/sim-io.c @@ -68,11 +68,10 @@ sim_io_unlink (SIM_DESC sd, } -long -sim_io_time (SIM_DESC sd, - long *t) +int64_t +sim_io_time (SIM_DESC sd) { - return STATE_CALLBACK (sd)->time (STATE_CALLBACK (sd), t); + return STATE_CALLBACK (sd)->time (STATE_CALLBACK (sd)); } diff --git a/sim/common/sim-io.h b/sim/common/sim-io.h index f018538..a091fd0 100644 --- a/sim/common/sim-io.h +++ b/sim/common/sim-io.h @@ -31,7 +31,7 @@ int sim_io_shutdown (SIM_DESC sd); int sim_io_unlink (SIM_DESC sd, const char *); -long sim_io_time (SIM_DESC sd, long *); +int64_t sim_io_time (SIM_DESC sd); int sim_io_system (SIM_DESC sd, const char *); diff --git a/sim/common/syscall.c b/sim/common/syscall.c index 258b3d6..0a1d3f4 100644 --- a/sim/common/syscall.c +++ b/sim/common/syscall.c @@ -588,7 +588,7 @@ cb_syscall (host_callback *cb, CB_SYSCALL *sc) We might also want gettimeofday or times, but if system calls can be built on others, we can keep the number we have to support here down. */ - time_t t = (*cb->time) (cb, (time_t *) 0); + time_t t = (*cb->time) (cb); result = t; /* It is up to target code to process the argument to time(). */ } |