qemu/trace/control-internal.h
<<
>>
Prefs
   1/*
   2 * Interface for configuring and controlling the state of tracing events.
   3 *
   4 * Copyright (C) 2011-2014 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#ifndef TRACE__CONTROL_INTERNAL_H
  11#define TRACE__CONTROL_INTERNAL_H
  12
  13
  14
  15extern TraceEvent trace_events[];
  16extern bool trace_events_dstate[];
  17extern int trace_events_enabled_count;
  18
  19
  20static inline TraceEventID trace_event_count(void)
  21{
  22    return TRACE_EVENT_COUNT;
  23}
  24
  25static inline TraceEvent *trace_event_id(TraceEventID id)
  26{
  27    assert(id < trace_event_count());
  28    return &trace_events[id];
  29}
  30
  31static inline bool trace_event_is_pattern(const char *str)
  32{
  33    assert(str != NULL);
  34    return strchr(str, '*') != NULL;
  35}
  36
  37static inline TraceEventID trace_event_get_id(TraceEvent *ev)
  38{
  39    assert(ev != NULL);
  40    return ev->id;
  41}
  42
  43static inline const char * trace_event_get_name(TraceEvent *ev)
  44{
  45    assert(ev != NULL);
  46    return ev->name;
  47}
  48
  49static inline bool trace_event_get_state_static(TraceEvent *ev)
  50{
  51    assert(ev != NULL);
  52    return ev->sstate;
  53}
  54
  55static inline bool trace_event_get_state_dynamic_by_id(int id)
  56{
  57    return unlikely(trace_events_enabled_count) && trace_events_dstate[id];
  58}
  59
  60static inline bool trace_event_get_state_dynamic(TraceEvent *ev)
  61{
  62    int id = trace_event_get_id(ev);
  63    return trace_event_get_state_dynamic_by_id(id);
  64}
  65
  66static inline void trace_event_set_state_dynamic(TraceEvent *ev, bool state)
  67{
  68    int id = trace_event_get_id(ev);
  69    assert(ev != NULL);
  70    assert(trace_event_get_state_static(ev));
  71    trace_events_enabled_count += state - trace_events_dstate[id];
  72    trace_events_dstate[id] = state;
  73}
  74
  75#endif  /* TRACE__CONTROL_INTERNAL_H */
  76