summaryrefslogtreecommitdiff
path: root/scripts/tracetool/format/ust_events_h.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/tracetool/format/ust_events_h.py')
-rw-r--r--scripts/tracetool/format/ust_events_h.py40
1 files changed, 38 insertions, 2 deletions
diff --git a/scripts/tracetool/format/ust_events_h.py b/scripts/tracetool/format/ust_events_h.py
index a3ef7859e6..5102565470 100644
--- a/scripts/tracetool/format/ust_events_h.py
+++ b/scripts/tracetool/format/ust_events_h.py
@@ -16,7 +16,10 @@ __email__ = "stefanha@redhat.com"
from tracetool import out
-def begin(events):
+def generate(events, backend):
+ events = [e for e in events
+ if "disabled" not in e.properties]
+
out('/* This file is autogenerated by tracetool, do not edit. */',
'',
'#undef TRACEPOINT_PROVIDER',
@@ -50,7 +53,40 @@ def begin(events):
'#endif',
'')
-def end(events):
+ for e in events:
+ if len(e.args) > 0:
+ out('TRACEPOINT_EVENT(',
+ ' qemu,',
+ ' %(name)s,',
+ ' TP_ARGS(%(args)s),',
+ ' TP_FIELDS(',
+ name=e.name,
+ args=", ".join(", ".join(i) for i in e.args))
+
+ for t, n in e.args:
+ if ('int' in t) or ('long' in t) or ('unsigned' in t) or ('size_t' in t):
+ out(' ctf_integer(' + t + ', ' + n + ', ' + n + ')')
+ elif ('double' in t) or ('float' in t):
+ out(' ctf_float(' + t + ', ' + n + ', ' + n + ')')
+ elif ('char *' in t) or ('char*' in t):
+ out(' ctf_string(' + n + ', ' + n + ')')
+ elif ('void *' in t) or ('void*' in t):
+ out(' ctf_integer_hex(unsigned long, ' + n + ', ' + n + ')')
+
+ out(' )',
+ ')',
+ '')
+
+ else:
+ out('TRACEPOINT_EVENT(',
+ ' qemu,',
+ ' %(name)s,',
+ ' TP_ARGS(void),',
+ ' TP_FIELDS()',
+ ')',
+ '',
+ name=e.name)
+
out('#endif /* TRACE__GENERATED_UST_H */',
'',
'/* This part must be outside ifdef protection */',