152ef093aSLluís Vilanova#!/usr/bin/env python
252ef093aSLluís Vilanova# -*- coding: utf-8 -*-
352ef093aSLluís Vilanova
452ef093aSLluís Vilanova"""
552ef093aSLluís VilanovaDTrace/SystemTAP backend.
652ef093aSLluís Vilanova"""
752ef093aSLluís Vilanova
852ef093aSLluís Vilanova__author__     = "Lluís Vilanova <vilanova@ac.upc.edu>"
940b9cd25SLluís Vilanova__copyright__  = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>"
1052ef093aSLluís Vilanova__license__    = "GPL version 2 or (at your option) any later version"
1152ef093aSLluís Vilanova
1252ef093aSLluís Vilanova__maintainer__ = "Stefan Hajnoczi"
1352ef093aSLluís Vilanova__email__      = "stefanha@linux.vnet.ibm.com"
1452ef093aSLluís Vilanova
1552ef093aSLluís Vilanova
1652ef093aSLluís Vilanovafrom tracetool import out
1752ef093aSLluís Vilanova
1852ef093aSLluís Vilanova
1993fba161SLluís VilanovaPUBLIC = True
2093fba161SLluís Vilanova
2193fba161SLluís Vilanova
2252ef093aSLluís VilanovaPROBEPREFIX = None
2352ef093aSLluís Vilanova
241dad2ce9SLluís Vilanovadef probeprefix():
2552ef093aSLluís Vilanova    if PROBEPREFIX is None:
2652ef093aSLluís Vilanova        raise ValueError("you must set PROBEPREFIX")
2752ef093aSLluís Vilanova    return PROBEPREFIX
2852ef093aSLluís Vilanova
2952ef093aSLluís Vilanova
3052ef093aSLluís VilanovaBINARY = None
3152ef093aSLluís Vilanova
321dad2ce9SLluís Vilanovadef binary():
3352ef093aSLluís Vilanova    if BINARY is None:
3452ef093aSLluís Vilanova        raise ValueError("you must set BINARY")
3552ef093aSLluís Vilanova    return BINARY
3652ef093aSLluís Vilanova
3752ef093aSLluís Vilanova
3880dd5c49SDaniel P. Berrangedef generate_h_begin(events, group):
39*0ab8ed18SDaniel P. Berrange    if group == "root":
40*0ab8ed18SDaniel P. Berrange        header = "trace-dtrace-root.h"
41*0ab8ed18SDaniel P. Berrange    else:
42*0ab8ed18SDaniel P. Berrange        header = "trace-dtrace.h"
43*0ab8ed18SDaniel P. Berrange
44*0ab8ed18SDaniel P. Berrange    out('#include "%s"' % header,
4552ef093aSLluís Vilanova        '')
4652ef093aSLluís Vilanova
4752ef093aSLluís Vilanova
4880dd5c49SDaniel P. Berrangedef generate_h(event, group):
491dad2ce9SLluís Vilanova    out('        QEMU_%(uppername)s(%(argnames)s);',
501dad2ce9SLluís Vilanova        uppername=event.name.upper(),
511dad2ce9SLluís Vilanova        argnames=", ".join(event.args.names()))
52