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>" 9*1ff7b531SLluís Vilanova__copyright__ = "Copyright 2012-2017, 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): 390ab8ed18SDaniel P. Berrange if group == "root": 400ab8ed18SDaniel P. Berrange header = "trace-dtrace-root.h" 410ab8ed18SDaniel P. Berrange else: 420ab8ed18SDaniel P. Berrange header = "trace-dtrace.h" 430ab8ed18SDaniel P. Berrange 440ab8ed18SDaniel 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