| /* | 
 |  * Interface for configuring and controlling the state of tracing events. | 
 |  * | 
 |  * Copyright (C) 2012-2016 LluĂs Vilanova <vilanova@ac.upc.edu> | 
 |  * | 
 |  * This work is licensed under the terms of the GNU GPL, version 2 or later. | 
 |  * See the COPYING file in the top-level directory. | 
 |  */ | 
 |  | 
 | #ifndef TRACE__EVENT_INTERNAL_H | 
 | #define TRACE__EVENT_INTERNAL_H | 
 |  | 
 | /* | 
 |  * Special value for TraceEvent.vcpu_id field to indicate | 
 |  * that the event is not VCPU specific | 
 |  */ | 
 | #define TRACE_VCPU_EVENT_NONE ((uint32_t)-1) | 
 |  | 
 | /** | 
 |  * TraceEvent: | 
 |  * @id: Unique event identifier. | 
 |  * @name: Event name. | 
 |  * @sstate: Static tracing state. | 
 |  * @dstate: Dynamic tracing state | 
 |  * | 
 |  * Interpretation of @dstate depends on whether the event has the 'vcpu' | 
 |  *  property: | 
 |  * - false: Boolean value indicating whether the event is active. | 
 |  * - true : Integral counting the number of vCPUs that have this event enabled. | 
 |  * | 
 |  * Opaque generic description of a tracing event. | 
 |  */ | 
 | typedef struct TraceEvent { | 
 |     uint32_t id; | 
 |     const char * name; | 
 |     const bool sstate; | 
 |     uint16_t *dstate; | 
 | } TraceEvent; | 
 |  | 
 | void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state); | 
 |  | 
 | #endif /* TRACE__EVENT_INTERNAL_H */ |