summaryrefslogtreecommitdiff
path: root/cesar/hle/src/trace.c
blob: 630d4500e2a477be2ca3c24d59aa4af0f7493ea5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* 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_RECV, "HLE_MME_RECV length : %d, buffer @ : %x", TIMESTAMP),
        TRACE_EVENT (HLE_TRACE_IPMBOX, "HLE_IPMBOX_ACTIVATE avctive : %d", TIMESTAMP),
        TRACE_EVENT (HLE_TRACE_DROPPED, "HLE_MSG DROPPED data: %d, length: %d, buffer: %x", TIMESTAMP),
        TRACE_EVENT (HLE_TRACE_SEQ_CHECK_IN, "[SeqCheck] input from linux: "
                     "[%02d] expected=%04X, actual=%04X"),
        TRACE_EVENT (HLE_TRACE_SEQ_CHECK_OUT, "[SeqCheck] output to linux: "
                     "[%02d] expected=%04X, actual=%04X"),
    };
    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);
}