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 14 void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state) 15 { 16 trace_event_set_state_dynamic(ev, state); 17 } 18 19 void 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