summaryrefslogtreecommitdiff
path: root/cesar/hle/src/trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'cesar/hle/src/trace.c')
-rw-r--r--cesar/hle/src/trace.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/cesar/hle/src/trace.c b/cesar/hle/src/trace.c
new file mode 100644
index 0000000000..ac3cbeb6cf
--- /dev/null
+++ b/cesar/hle/src/trace.c
@@ -0,0 +1,68 @@
+/* Cesar project {{{
+ *
+ * Copyright (C) 2007 Spidcom
+ *
+ * <<<Licence>>>
+ *
+ * }}} */
+/**
+ * \file hle/src/trace.c
+ * \brief trace buffer for the HLE
+ * \ingroup hle
+ *
+ */
+#include "common/std.h"
+
+#include "hle/hle.h"
+#include "hle/inc/context.h"
+#include "hle/inc/trace.h"
+
+/**
+ * Initialize the trace buffer
+ * \param ctx the hle context.
+ */
+void
+hle_trace_init (hle_t *ctx)
+{
+ static trace_namespace_t namespace;
+ static const trace_event_id_t event_ids[] =
+ {
+ TRACE_EVENT (HLE_TRACE_INIT, "HLE_INIT", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_UNINIT, "HLE_UNINIT", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_DATA_SEND, "HLE_DATA_SEND length : %d, buffer @ : %x", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_DATA_SEND_DONE, "HLE_DATA_SEND_DONE buffer @ : %x", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_DATA_BUFFER_ADD, "HLE_DATA_BUFFER_ADD buffer @ : %x", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_DATA_RECV, "HLE_DATA_RECV length : %d, buffer @ : %x", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_MME_BUFFER_ADD, "HLE_MME_BUFFER_ADD buffer @ : %x", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_MME_SEND, "HLE_MME_SEND length : %d, buffer @ : %x", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_MME_SEND_DONE, "HLE_MME_SEND_DONE buffer @ : %x", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_MME_RECV, "HLE_MME_RECV length : %d, buffer @ : %x", TIMESTAMP),
+ TRACE_EVENT (HLE_TRACE_IPMBOX, "HLE_IPMBOX_ACTIVATE avctive : %d", TIMESTAMP),
+ };
+ dbg_assert (ctx);
+ trace_namespace_init (&namespace, event_ids, COUNT (event_ids));
+ trace_buffer_add (&ctx->trace, "hle", 8, 4, true, &namespace);
+}
+
+/**
+ * Uninit the trace buffer
+ * \param ctx the hle context
+ */
+void
+hle_trace_uninit (hle_t *ctx)
+{
+ dbg_assert (ctx);
+ trace_buffer_remove (&ctx->trace);
+}
+
+/**
+ * Print the trace buffers
+ * \param ctx the hle context
+ */
+void
+hle_trace_print (hle_t *ctx)
+{
+ dbg_assert(ctx);
+ trace_buffer_dbg_dump(&ctx->trace);
+}
+