1/*
2 * Interface for configuring and controlling the state of tracing events.
3 *
4 * Copyright (C) 2014-2016 LluĂ­s Vilanova <vilanova@ac.upc.edu>
5 *
6 * This work is licensed under the terms of the GNU GPL, version 2 or later.
7 * See the COPYING file in the top-level directory.
8 */
9
10#include "qemu/osdep.h"
11#include "trace/control.h"
12
13
14void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state)
15{
16 trace_event_set_state_dynamic(ev, state);
17}
18
19void trace_event_set_state_dynamic(TraceEvent *ev, bool state)
20{
21 bool state_pre;
22 assert(trace_event_get_state_static(ev));
23
24 /*
25 * We ignore the "vcpu" property here, since there's no target code. Then
26 * dstate can only be 1 or 0.
27 */
28 state_pre = *(ev->dstate);
29 if (state_pre != state) {
30 if (state) {
31 trace_events_enabled_count++;
32 *(ev->dstate) = 1;
33 } else {
34 trace_events_enabled_count--;
35 *(ev->dstate) = 0;
36 }
37 }
38}
39
40void trace_event_set_vcpu_state_dynamic(CPUState *vcpu,
41 TraceEvent *ev, bool state)
42{
43 /* should never be called on non-target binaries */
44 abort();
45}
46
47void trace_init_vcpu(CPUState *vcpu)
48{
49 /* should never be called on non-target binaries */
50 abort();
51}
52