#include "trace/control.h"
-void trace_event_set_state_dynamic(TraceEvent *ev, bool state)
+void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state)
{
- TraceEventID id;
- assert(trace_event_get_state_static(ev));
- id = trace_event_get_id(ev);
- trace_events_enabled_count += state - trace_events_dstate[id];
- trace_events_dstate[id] = state;
+ trace_event_set_state_dynamic(ev, state);
}
-void trace_event_set_vcpu_state_dynamic(CPUState *vcpu,
- TraceEvent *ev, bool state)
+void trace_event_set_state_dynamic(TraceEvent *ev, bool state)
{
- /* should never be called on non-target binaries */
- abort();
+ bool state_pre;
+ assert(trace_event_get_state_static(ev));
+
+ /*
+ * We ignore the "vcpu" property here, since there's no target code. Then
+ * dstate can only be 1 or 0.
+ */
+ state_pre = *(ev->dstate);
+ if (state_pre != state) {
+ if (state) {
+ trace_events_enabled_count++;
+ *(ev->dstate) = 1;
+ } else {
+ trace_events_enabled_count--;
+ *(ev->dstate) = 0;
+ }
+ }
}