summaryrefslogtreecommitdiffhomepage
path: root/mixlib/mix_vm_command.c
diff options
context:
space:
mode:
authorjaortega <jaortega>2001-03-10 02:30:09 +0000
committerjaortega <jaortega>2001-03-10 02:30:09 +0000
commit59cc212ebe00245200e5a2d9f2393fbd1ddb4e94 (patch)
tree74287c30c2e0dd630d98c4bc934fbacaf36f0679 /mixlib/mix_vm_command.c
parentc532202e4d9c4707cc8708b50607f246f359aac3 (diff)
downloadmdk-59cc212ebe00245200e5a2d9f2393fbd1ddb4e94.tar.gz
mdk-59cc212ebe00245200e5a2d9f2393fbd1ddb4e94.tar.bz2
format fixings
Diffstat (limited to 'mixlib/mix_vm_command.c')
-rw-r--r--mixlib/mix_vm_command.c62
1 files changed, 49 insertions, 13 deletions
diff --git a/mixlib/mix_vm_command.c b/mixlib/mix_vm_command.c
index 49f7d1d..1ef0d7e 100644
--- a/mixlib/mix_vm_command.c
+++ b/mixlib/mix_vm_command.c
@@ -1,7 +1,7 @@
/* -*-c-*- -------------- mix_vm_command.c :
* Implementation of the functions declared in mix_vm_command.h
* ------------------------------------------------------------------
- * Last change: Time-stamp: "01/02/26 03:29:19 jose"
+ * Last change: Time-stamp: "01/03/10 03:21:33 jose"
* ------------------------------------------------------------------
* Copyright (C) 2001 Free Software Foundation, Inc.
*
@@ -53,8 +53,10 @@ struct mix_vm_cmd_dispatcher_t
mix_dump_context_t *dump; /* dump context for output */
mix_eval_t *eval; /* evaluator for w-expressions */
gboolean trace; /* tracing flag */
+ gboolean printtime; /* printing times flag */
mix_time_t uptime; /* total running time */
- mix_time_t laptime; /* current program running time */
+ mix_time_t laptime; /* last run time */
+ mix_time_t progtime; /* current program running time */
hook_ pre_hooks[MIX_CMD_INVALID]; /* Pre-command hooks */
hook_ post_hooks[MIX_CMD_INVALID]; /* Post-command hooks */
global_hook_ global_pre; /* global pre-command hook */
@@ -188,7 +190,8 @@ mix_vm_cmd_dispatcher_new (FILE *out_fd, /* output messages file */
result = g_new (mix_vm_cmd_dispatcher_t, 1);
result->out = out_fd;
result->err = err_fd;
- result->uptime = result->laptime = 0;
+ result->uptime = result->laptime = result->progtime = 0;
+ result->printtime = TRUE;
result->trace = FALSE;
result->eval = mix_eval_new ();
result->dump = mix_dump_context_new (out_fd,
@@ -320,6 +323,38 @@ mix_vm_cmd_dispatcher_dispatch_text (mix_vm_cmd_dispatcher_t *dis,
return result;
}
+/* get total uptime */
+mix_time_t
+mix_vm_cmd_dispatcher_get_uptime (const mix_vm_cmd_dispatcher_t *dis)
+{
+ g_return_val_if_fail (dis != NULL, 0);
+ return dis->uptime;
+}
+
+/* get program total time */
+mix_time_t
+mix_vm_cmd_dispatcher_get_progtime (const mix_vm_cmd_dispatcher_t *dis)
+{
+ g_return_val_if_fail (dis != NULL, 0);
+ return dis->progtime;
+}
+
+/* get time lapse */
+mix_time_t
+mix_vm_cmd_dispatcher_get_laptime (const mix_vm_cmd_dispatcher_t *dis)
+{
+ g_return_val_if_fail (dis != NULL, 0);
+ return dis->laptime;
+}
+
+/* toggle time printing */
+void
+mix_vm_cmd_dispatcher_print_time (mix_vm_cmd_dispatcher_t * dis, gboolean print)
+{
+ g_return_if_fail (dis != NULL);
+ dis->printtime = print;
+}
+
/* get the mix vm */
const mix_vm_t *
mix_vm_cmd_dispatcher_get_vm (const mix_vm_cmd_dispatcher_t *dis)
@@ -350,7 +385,7 @@ trace_ (mix_vm_cmd_dispatcher_t *dis)
if (b > 0) line = mix_src_file_get_line (file, b);
}
- fprintf (dis->out, "%d: [%s]\t%s", (gint)loc, STRINS, line);
+ fprintf (dis->out, "%d: [%-15s]\t%s", (gint)loc, STRINS, line);
}
/* run a program tracing executed instructions */
@@ -372,12 +407,13 @@ run_and_trace_ (mix_vm_cmd_dispatcher_t *dis)
static void
print_time_ (mix_vm_cmd_dispatcher_t *dis)
{
- mix_time_t lapse = mix_vm_get_uptime(dis->vm) - dis->uptime;
- dis->uptime += lapse;
- dis->laptime += lapse;
- fprintf( dis->out,
- _("Elapsed time: %ld /Total program time: %ld (Total uptime: %ld)\n"),
- lapse, dis->laptime, dis->uptime);
+ dis->laptime = mix_vm_get_uptime(dis->vm) - dis->uptime;
+ dis->uptime += dis->laptime;
+ dis->progtime += dis->laptime;
+ if (dis->printtime)
+ fprintf( dis->out,
+ _("Elapsed time: %ld /Total program time: %ld (Total uptime: %ld)\n"),
+ dis->laptime, dis->progtime, dis->uptime);
}
@@ -450,7 +486,7 @@ cmd_load_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)
fprintf (dis->out, _("Program loaded. Start address: %d\n"),
mix_vm_get_prog_count (dis->vm));
- dis->laptime = 0;
+ dis->laptime = dis->progtime = 0;
return TRUE;
}
@@ -465,7 +501,7 @@ cmd_run_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)
if (mix_vm_is_halted (dis->vm))
{
mix_vm_reset_program (dis->vm);
- dis->laptime = 0;
+ dis->laptime = dis->progtime = 0;
}
switch (run_and_trace_ (dis))
@@ -519,7 +555,7 @@ cmd_next_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)
if (mix_vm_is_halted (dis->vm))
{
mix_vm_reset_program (dis->vm);
- dis->laptime = 0;
+ dis->laptime = dis->progtime = 0;
}
while ( ins_no-- > 0 )