aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
Diffstat (limited to 'sim')
-rw-r--r--sim/common/ChangeLog7
-rw-r--r--sim/common/hw-events.c9
-rw-r--r--sim/common/hw-events.h4
-rw-r--r--sim/common/sim-events.c13
-rw-r--r--sim/common/sim-events.h6
5 files changed, 39 insertions, 0 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 1a12066..eb07b92 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,6 +1,13 @@
Thu Jul 27 20:37:47 2000 Andrew Cagney <cagney@b1.cygnus.com>
From 2000-06-25 Stephane Carrez <Stephane.Carrez@worldnet.fr>:
+ * sim-events.c (sim_events_remain_time): New function returning
+ the time that remains before the event is raised.
+ * hw-events.c (hw_event_remain_time): Likewise.
+ * sim-events.h (sim_events_remain_time): Declare.
+ * hw-events.h (hw_event_remain_time): Declare.
+
+ From 2000-06-25 Stephane Carrez <Stephane.Carrez@worldnet.fr>:
* sim-hw.c: Use <errno.h> instead of <sys/errno.h>
(OPTION_HW_LIST): New option --hw-list to list the devices.
(hw_option_handler): List the device tree with 'sim_hw_print'.
diff --git a/sim/common/hw-events.c b/sim/common/hw-events.c
index 31c5a40..f60dfa3 100644
--- a/sim/common/hw-events.c
+++ b/sim/common/hw-events.c
@@ -164,6 +164,15 @@ hw_event_queue_time (struct hw *me)
return sim_events_time (hw_system (me));
}
+/* Returns the time that remains before the event is raised. */
+signed64
+hw_event_remain_time (struct hw *me, struct hw_event *event)
+{
+ signed64 t;
+
+ t = sim_events_remain_time (hw_system (me), event->real);
+ return t;
+}
/* Only worry about this compling on ANSI systems.
Build with `make test-hw-events' in sim/<cpu> directory*/
diff --git a/sim/common/hw-events.h b/sim/common/hw-events.h
index a9b6f8b..29e10fa 100644
--- a/sim/common/hw-events.h
+++ b/sim/common/hw-events.h
@@ -58,4 +58,8 @@ void hw_event_queue_deschedule
signed64 hw_event_queue_time
(struct hw *me);
+/* Returns the time that remains before the event is raised. */
+signed64 hw_event_remain_time
+(struct hw *me, struct hw_event *event);
+
#endif
diff --git a/sim/common/sim-events.c b/sim/common/sim-events.c
index fa294a7..1866b2d 100644
--- a/sim/common/sim-events.c
+++ b/sim/common/sim-events.c
@@ -379,6 +379,19 @@ sim_events_elapsed_time (SIM_DESC sd)
}
+/* Returns the time that remains before the event is raised. */
+INLINE_SIM_EVENTS\
+(signed64)
+sim_events_remain_time (SIM_DESC sd, sim_event *event)
+{
+ if (event == 0)
+ return 0;
+
+ return (event->time_of_event - sim_events_time (sd));
+}
+
+
+
STATIC_INLINE_SIM_EVENTS\
(void)
update_time_from_event (SIM_DESC sd)
diff --git a/sim/common/sim-events.h b/sim/common/sim-events.h
index 3bae3df..55b2b74 100644
--- a/sim/common/sim-events.h
+++ b/sim/common/sim-events.h
@@ -268,4 +268,10 @@ INLINE_SIM_EVENTS\
(unsigned long) sim_events_elapsed_time
(SIM_DESC sd);
+/* Returns the time that remains before the event is raised. */
+INLINE_SIM_EVENTS\
+(signed64) sim_events_remain_time
+(SIM_DESC sd, sim_event *event);
+
+
#endif