| #!/usr/bin/env python |
| # -*- coding: utf-8 -*- |
| |
| """ |
| trace/generated-events.h |
| """ |
| |
| __author__ = "Lluís Vilanova <vilanova@ac.upc.edu>" |
| __copyright__ = "Copyright 2012-2016, 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 generate(events, backend): |
| out('/* This file is autogenerated by tracetool, do not edit. */', |
| '', |
| '#ifndef TRACE__GENERATED_EVENTS_H', |
| '#define TRACE__GENERATED_EVENTS_H', |
| '') |
| |
| # event identifiers |
| out('typedef enum {') |
| |
| for e in events: |
| out(' TRACE_%s,' % e.name.upper()) |
| |
| out(' TRACE_EVENT_COUNT', |
| '} TraceEventID;') |
| |
| # per-vCPU event identifiers |
| out('typedef enum {') |
| |
| for e in events: |
| if "vcpu" in e.properties: |
| out(' TRACE_VCPU_%s,' % e.name.upper()) |
| |
| out(' TRACE_VCPU_EVENT_COUNT', |
| '} TraceEventVCPUID;') |
| |
| # static state |
| for e in events: |
| if 'disable' in e.properties: |
| enabled = 0 |
| else: |
| enabled = 1 |
| if "tcg-exec" in e.properties: |
| # a single define for the two "sub-events" |
| out('#define TRACE_%(name)s_ENABLED %(enabled)d', |
| name=e.original.name.upper(), |
| enabled=enabled) |
| out('#define TRACE_%s_ENABLED %d' % (e.name.upper(), enabled)) |
| |
| out('#include "trace/event-internal.h"', |
| '', |
| '#endif /* TRACE__GENERATED_EVENTS_H */') |