summaryrefslogtreecommitdiffhomepage
path: root/mixlib/xmix_vm_command.h
diff options
context:
space:
mode:
Diffstat (limited to 'mixlib/xmix_vm_command.h')
-rw-r--r--mixlib/xmix_vm_command.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/mixlib/xmix_vm_command.h b/mixlib/xmix_vm_command.h
index f83bf72..6a691ee 100644
--- a/mixlib/xmix_vm_command.h
+++ b/mixlib/xmix_vm_command.h
@@ -44,6 +44,7 @@ extern const gchar *TRACING_KEY_;
extern const gchar *TIMING_KEY_;
extern const gchar *EDITOR_KEY_;
extern const gchar *ASM_KEY_;
+extern const gchar *LOGGING_KEY_;
/* hooks */
typedef struct
@@ -59,7 +60,7 @@ typedef struct
} global_hook_;
-#define PRNO_ MIX_PRED_MEM
+enum {PRNO_ = MIX_PRED_MEM, HOOKNO_ = MIX_CMD_INVALID};
struct mix_vm_cmd_dispatcher_t
{
@@ -79,14 +80,23 @@ struct mix_vm_cmd_dispatcher_t
mix_time_t progtime; /* current program running time */
GHashTable *commands; /* local commands */
GCompletion *completions; /* command completion list */
- GSList *pre_hooks[MIX_CMD_INVALID]; /* Pre-command hooks */
- GSList *post_hooks[MIX_CMD_INVALID]; /* Post-command hooks */
- GSList *global_pre; /* global pre-command hook */
- GSList *global_post; /* global post-command hook */
+ GSList *pre_hooks[HOOKNO_]; /* Pre-command hooks */
+ GSList *post_hooks[HOOKNO_]; /* Post-command hooks */
+ GSList *global_pre; /* global pre-command hook */
+ GSList *global_post; /* global post-command hook */
mix_config_t *config; /* externally provided configuration */
mix_predicate_t *preds[PRNO_]; /* predicates for conditional breakpoints */
GHashTable *mem_preds; /* predicates for memory conditional bps */
+ gboolean log_msg; /* message logging activation flag*/
};
+extern void
+log_message_ (mix_vm_cmd_dispatcher_t *dis, const gchar *fmt, ...);
+
+extern void
+log_error_ (mix_vm_cmd_dispatcher_t *dis, const gchar *fmt, ...);
+
+#define wants_logs_(dis) (dis)->log_msg
+
#endif /* XMIX_VM_COMMAND_H */