xref: /qemu/scripts/tracetool/format/h.py (revision 2c533c54)
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3
4"""
5trace/generated-tracers.h
6"""
7
8__author__     = "Lluís Vilanova <vilanova@ac.upc.edu>"
9__copyright__  = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>"
10__license__    = "GPL version 2 or (at your option) any later version"
11
12__maintainer__ = "Stefan Hajnoczi"
13__email__      = "stefanha@linux.vnet.ibm.com"
14
15
16from tracetool import out
17
18
19def generate(events, backend):
20    out('/* This file is autogenerated by tracetool, do not edit. */',
21        '',
22        '#ifndef TRACE__GENERATED_TRACERS_H',
23        '#define TRACE__GENERATED_TRACERS_H',
24        '',
25        '#include "qemu-common.h"',
26        '#include "trace/control.h"',
27        '')
28
29    backend.generate_begin(events)
30
31    for e in events:
32        if "vcpu" in e.properties:
33            trace_cpu = next(iter(e.args))[1]
34            cond = "trace_event_get_vcpu_state(%(cpu)s,"\
35                   " TRACE_%(id)s,"\
36                   " TRACE_VCPU_%(id)s)"\
37                   % dict(
38                       cpu=trace_cpu,
39                       id=e.name.upper())
40        else:
41            cond = "true"
42
43        out('',
44            'static inline void %(api)s(%(args)s)',
45            '{',
46            '    if (%(cond)s) {',
47            api=e.api(),
48            args=e.args,
49            cond=cond)
50
51        if "disable" not in e.properties:
52            backend.generate(e)
53
54        out('    }',
55            '}')
56
57    backend.generate_end(events)
58
59    out('#endif /* TRACE__GENERATED_TRACERS_H */')
60