xref: /qemu/trace/event-internal.h (revision 19a720b74fde7e859d19f12c66a72e545947a657)
145be2f5dSLluís Vilanova /*
245be2f5dSLluís Vilanova  * Interface for configuring and controlling the state of tracing events.
345be2f5dSLluís Vilanova  *
417f7ac75SLluís Vilanova  * Copyright (C) 2012-2016 Lluís Vilanova <vilanova@ac.upc.edu>
545be2f5dSLluís Vilanova  *
645be2f5dSLluís Vilanova  * This work is licensed under the terms of the GNU GPL, version 2 or later.
745be2f5dSLluís Vilanova  * See the COPYING file in the top-level directory.
845be2f5dSLluís Vilanova  */
945be2f5dSLluís Vilanova 
1045be2f5dSLluís Vilanova #ifndef TRACE__EVENT_INTERNAL_H
1145be2f5dSLluís Vilanova #define TRACE__EVENT_INTERNAL_H
1245be2f5dSLluís Vilanova 
13*ef4c9fc8SDaniel P. Berrange /*
14*ef4c9fc8SDaniel P. Berrange  * Special value for TraceEvent.vcpu_id field to indicate
15*ef4c9fc8SDaniel P. Berrange  * that the event is not VCPU specific
16*ef4c9fc8SDaniel P. Berrange  */
17*ef4c9fc8SDaniel P. Berrange #define TRACE_VCPU_EVENT_NONE ((uint32_t)-1)
18*ef4c9fc8SDaniel P. Berrange 
1945be2f5dSLluís Vilanova /**
2045be2f5dSLluís Vilanova  * TraceEvent:
2145be2f5dSLluís Vilanova  * @id: Unique event identifier.
2245be2f5dSLluís Vilanova  * @name: Event name.
2345be2f5dSLluís Vilanova  * @sstate: Static tracing state.
2493977402SDaniel P. Berrange  * @dstate: Dynamic tracing state
2593977402SDaniel P. Berrange  *
2693977402SDaniel P. Berrange  * Interpretation of @dstate depends on whether the event has the 'vcpu'
2793977402SDaniel P. Berrange  *  property:
2893977402SDaniel P. Berrange  * - false: Boolean value indicating whether the event is active.
2993977402SDaniel P. Berrange  * - true : Integral counting the number of vCPUs that have this event enabled.
3045be2f5dSLluís Vilanova  *
3145be2f5dSLluís Vilanova  * Opaque generic description of a tracing event.
3245be2f5dSLluís Vilanova  */
3345be2f5dSLluís Vilanova typedef struct TraceEvent {
34a82417b5SDaniel P. Berrange     uint32_t id;
3545be2f5dSLluís Vilanova     const char * name;
3645be2f5dSLluís Vilanova     const bool sstate;
3793977402SDaniel P. Berrange     uint16_t *dstate;
3845be2f5dSLluís Vilanova } TraceEvent;
3945be2f5dSLluís Vilanova 
40a4d50b1dSLluís Vilanova void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state);
4145be2f5dSLluís Vilanova 
4245be2f5dSLluís Vilanova #endif /* TRACE__EVENT_INTERNAL_H */
43