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