dd03a39e8a
Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
Simple built-in backend.
|
|
"""
|
|
|
|
__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>"
|
|
__copyright__ = "Copyright 2012, Lluís Vilanova <vilanova@ac.upc.edu>"
|
|
__license__ = "GPL version 2 or (at your option) any later version"
|
|
|
|
__maintainer__ = "Stefan Hajnoczi"
|
|
__email__ = "stefanha@linux.vnet.ibm.com"
|
|
|
|
|
|
from tracetool import out
|
|
|
|
|
|
def c(events):
|
|
out('#include "trace.h"',
|
|
'',
|
|
'TraceEvent trace_list[] = {')
|
|
|
|
for e in events:
|
|
out('{.tp_name = "%(name)s", .state=0},',
|
|
name = e.name,
|
|
)
|
|
|
|
out('};')
|
|
|
|
def h(events):
|
|
out('#include "trace/simple.h"',
|
|
'')
|
|
|
|
for num, e in enumerate(events):
|
|
if len(e.args):
|
|
argstr = e.args.names()
|
|
arg_prefix = ', (uint64_t)(uintptr_t)'
|
|
cast_args = arg_prefix + arg_prefix.join(argstr)
|
|
simple_args = (str(num) + cast_args)
|
|
else:
|
|
simple_args = str(num)
|
|
|
|
out('static inline void trace_%(name)s(%(args)s)',
|
|
'{',
|
|
' trace%(argc)d(%(trace_args)s);',
|
|
'}',
|
|
name = e.name,
|
|
args = e.args,
|
|
argc = len(e.args),
|
|
trace_args = simple_args,
|
|
)
|
|
|
|
out('#define NR_TRACE_EVENTS %d' % len(events))
|
|
out('extern TraceEvent trace_list[NR_TRACE_EVENTS];')
|