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>" 97d08f0daSLluís Vilanova__copyright__ = "Copyright 2012-2014, 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 24*1dad2ce9SLluí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 32*1dad2ce9SLluí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 38*1dad2ce9SLluís Vilanovadef generate_h_begin(events): 39eac236eaSLluís Vilanova out('#include "trace/generated-tracers-dtrace.h"', 4052ef093aSLluís Vilanova '') 4152ef093aSLluís Vilanova 4252ef093aSLluís Vilanova 43*1dad2ce9SLluís Vilanovadef generate_h(event): 44*1dad2ce9SLluís Vilanova out(' QEMU_%(uppername)s(%(argnames)s);', 45*1dad2ce9SLluís Vilanova uppername=event.name.upper(), 46*1dad2ce9SLluís Vilanova argnames=", ".join(event.args.names())) 47