aboutsummaryrefslogtreecommitdiff
path: root/scripts/tracetool/format/c.py
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2016-10-04 14:35:59 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2016-10-12 09:54:53 +0200
commit80dd5c4918aba98f025ca60c838dd68b6e33ff0e (patch)
treed5f3211dfac8171b53185f8f2b92d209d8c04bbb /scripts/tracetool/format/c.py
parent0bc6484d58bd7f43fbf6fc87c7974910b698489c (diff)
trace: introduce a formal group name for trace events
The declarations in the generated-tracers.h file are assuming there's only ever going to be one instance of this header, as they are not namespaced. When we have one header per event group, if a single source file needs to include multiple sets of trace events, the symbols will all clash. This change thus introduces a '--group NAME' arg to the 'tracetool' program. This will cause all the symbols in the generated header files to be given a unique namespace. If no group is given, the group name 'common' is used, which is suitable for the current usage where there is only one global trace-events file used for code generation. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: LluĂ­s Vilanova <vilanova@ac.upc.edu> Message-id: 1475588159-30598-21-git-send-email-berrange@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'scripts/tracetool/format/c.py')
-rw-r--r--scripts/tracetool/format/c.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/scripts/tracetool/format/c.py b/scripts/tracetool/format/c.py
index 7ac6d4c508..47115ed8af 100644
--- a/scripts/tracetool/format/c.py
+++ b/scripts/tracetool/format/c.py
@@ -16,7 +16,7 @@ __email__ = "stefanha@linux.vnet.ibm.com"
from tracetool import out
-def generate(events, backend):
+def generate(events, backend, group):
active_events = [e for e in events
if "disable" not in e.properties]
@@ -47,7 +47,8 @@ def generate(events, backend):
sstate = "TRACE_%s_ENABLED" % e.name.upper(),
dstate = e.api(e.QEMU_DSTATE))
- out('TraceEvent *trace_events[] = {')
+ out('TraceEvent *%(group)s_trace_events[] = {',
+ group = group.lower())
for e in events:
out(' &%(event)s,', event = e.api(e.QEMU_EVENT))
@@ -56,13 +57,14 @@ def generate(events, backend):
'};',
'')
- out('static void trace_register_events(void)',
+ out('static void trace_%(group)s_register_events(void)',
'{',
- ' trace_event_register_group(trace_events);',
+ ' trace_event_register_group(%(group)s_trace_events);',
'}',
- 'trace_init(trace_register_events)')
+ 'trace_init(trace_%(group)s_register_events)',
+ group = group.lower())
- backend.generate_begin(active_events)
+ backend.generate_begin(active_events, group)
for event in active_events:
- backend.generate(event)
- backend.generate_end(active_events)
+ backend.generate(event, group)
+ backend.generate_end(active_events, group)