1fbc54b94SLluís Vilanova#!/usr/bin/env python 2fbc54b94SLluís Vilanova# -*- coding: utf-8 -*- 3fbc54b94SLluís Vilanova 4fbc54b94SLluís Vilanova""" 5fbc54b94SLluís VilanovaLTTng User Space Tracing backend. 6fbc54b94SLluís Vilanova""" 7fbc54b94SLluís Vilanova 8fbc54b94SLluís Vilanova__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>" 9*7d08f0daSLluís Vilanova__copyright__ = "Copyright 2012-2014, Lluís Vilanova <vilanova@ac.upc.edu>" 10fbc54b94SLluís Vilanova__license__ = "GPL version 2 or (at your option) any later version" 11fbc54b94SLluís Vilanova 12fbc54b94SLluís Vilanova__maintainer__ = "Stefan Hajnoczi" 13fbc54b94SLluís Vilanova__email__ = "stefanha@linux.vnet.ibm.com" 14fbc54b94SLluís Vilanova 15fbc54b94SLluís Vilanova 16fbc54b94SLluís Vilanovafrom tracetool import out 17fbc54b94SLluís Vilanova 18fbc54b94SLluís Vilanova 1993fba161SLluís VilanovaPUBLIC = True 2093fba161SLluís Vilanova 21fbc54b94SLluís Vilanovadef c(events): 229530570fSMohamad Gebai pass 23fbc54b94SLluís Vilanova 24fbc54b94SLluís Vilanova 25fbc54b94SLluís Vilanovadef h(events): 269530570fSMohamad Gebai out('#include <lttng/tracepoint.h>', 279530570fSMohamad Gebai '#include "trace/generated-ust-provider.h"', 289530570fSMohamad Gebai '') 29fbc54b94SLluís Vilanova for e in events: 309530570fSMohamad Gebai argnames = ", ".join(e.args.names()) 31fbc54b94SLluís Vilanova if len(e.args) > 0: 329530570fSMohamad Gebai argnames = ", " + argnames 339530570fSMohamad Gebai 34*7d08f0daSLluís Vilanova out('static inline void %(api)s(%(args)s)', 359530570fSMohamad Gebai '{', 369530570fSMohamad Gebai ' tracepoint(qemu, %(name)s%(tp_args)s);', 379530570fSMohamad Gebai '}', 389530570fSMohamad Gebai '', 39*7d08f0daSLluís Vilanova api = e.api() 40fbc54b94SLluís Vilanova name = e.name, 41fbc54b94SLluís Vilanova args = e.args, 429530570fSMohamad Gebai tp_args = argnames, 43fbc54b94SLluís Vilanova ) 44fbc54b94SLluís Vilanova 459530570fSMohamad Gebaidef ust_events_c(events): 469530570fSMohamad Gebai pass 479530570fSMohamad Gebai 489530570fSMohamad Gebaidef ust_events_h(events): 499530570fSMohamad Gebai for e in events: 509530570fSMohamad Gebai if len(e.args) > 0: 519530570fSMohamad Gebai out('TRACEPOINT_EVENT(', 529530570fSMohamad Gebai ' qemu,', 539530570fSMohamad Gebai ' %(name)s,', 549530570fSMohamad Gebai ' TP_ARGS(%(args)s),', 559530570fSMohamad Gebai ' TP_FIELDS(', 569530570fSMohamad Gebai name = e.name, 579530570fSMohamad Gebai args = ", ".join(", ".join(i) for i in e.args), 589530570fSMohamad Gebai ) 599530570fSMohamad Gebai 609530570fSMohamad Gebai for t,n in e.args: 619530570fSMohamad Gebai if ('int' in t) or ('long' in t) or ('unsigned' in t) or ('size_t' in t): 629530570fSMohamad Gebai out(' ctf_integer(' + t + ', ' + n + ', ' + n + ')') 639530570fSMohamad Gebai elif ('double' in t) or ('float' in t): 649530570fSMohamad Gebai out(' ctf_float(' + t + ', ' + n + ', ' + n + ')') 659530570fSMohamad Gebai elif ('char *' in t) or ('char*' in t): 669530570fSMohamad Gebai out(' ctf_string(' + n + ', ' + n + ')') 679530570fSMohamad Gebai elif ('void *' in t) or ('void*' in t): 689530570fSMohamad Gebai out(' ctf_integer_hex(unsigned long, ' + n + ', ' + n + ')') 699530570fSMohamad Gebai 709530570fSMohamad Gebai out(' )', 719530570fSMohamad Gebai ')', 729530570fSMohamad Gebai '') 739530570fSMohamad Gebai 74fbc54b94SLluís Vilanova else: 759530570fSMohamad Gebai out('TRACEPOINT_EVENT(', 769530570fSMohamad Gebai ' qemu,', 779530570fSMohamad Gebai ' %(name)s,', 789530570fSMohamad Gebai ' TP_ARGS(void),', 799530570fSMohamad Gebai ' TP_FIELDS()', 809530570fSMohamad Gebai ')', 819530570fSMohamad Gebai '', 82fbc54b94SLluís Vilanova name = e.name, 83fbc54b94SLluís Vilanova ) 84