trace: Remove 'trace_events_dstate_init'
[qemu/ar7.git] / trace / control-target.c
blob4ee37336621fa9fd68f3c2136b3e49b04cf2822e
1 /*
2 * Interface for configuring and controlling the state of tracing events.
4 * Copyright (C) 2014-2016 LluĂ­s Vilanova <vilanova@ac.upc.edu>
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 */
10 #include "qemu/osdep.h"
11 #include "cpu.h"
12 #include "trace/control.h"
13 #include "translate-all.h"
16 void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state)
18 TraceEventID id = trace_event_get_id(ev);
19 assert(trace_event_get_state_static(ev));
20 /* Ignore "vcpu" property, since no vCPUs have been created yet */
21 trace_events_enabled_count += state - trace_events_dstate[id];
22 trace_events_dstate[id] = state;
25 void trace_event_set_state_dynamic(TraceEvent *ev, bool state)
27 CPUState *vcpu;
28 assert(trace_event_get_state_static(ev));
29 if (trace_event_is_vcpu(ev)) {
30 CPU_FOREACH(vcpu) {
31 trace_event_set_vcpu_state_dynamic(vcpu, ev, state);
33 } else {
34 TraceEventID id = trace_event_get_id(ev);
35 trace_events_enabled_count += state - trace_events_dstate[id];
36 trace_events_dstate[id] = state;
40 void trace_event_set_vcpu_state_dynamic(CPUState *vcpu,
41 TraceEvent *ev, bool state)
43 TraceEventID id;
44 TraceEventVCPUID vcpu_id;
45 bool state_pre;
46 assert(trace_event_get_state_static(ev));
47 assert(trace_event_is_vcpu(ev));
48 id = trace_event_get_id(ev);
49 vcpu_id = trace_event_get_vcpu_id(ev);
50 state_pre = test_bit(vcpu_id, vcpu->trace_dstate);
51 if (state_pre != state) {
52 if (state) {
53 trace_events_enabled_count++;
54 set_bit(vcpu_id, vcpu->trace_dstate);
55 trace_events_dstate[id]++;
56 } else {
57 trace_events_enabled_count--;
58 clear_bit(vcpu_id, vcpu->trace_dstate);
59 trace_events_dstate[id]--;