trace: remove the TraceEventID and TraceEventVCPUID enums

The TraceEventID and TraceEventVCPUID enums constants are
no longer actually used for anything critical.

The TRACE_EVENT_COUNT limit is used to determine the size
of the TraceEvents array, and can be removed if we just
NULL terminate the array instead.

The TRACE_VCPU_EVENT_COUNT limit is used as a magic value
for marking non-vCPU events, and also for declaring the
size of the trace dstate mask in the CPUState struct.
The former usage can be replaced by a dedicated constant
TRACE_EVENT_VCPU_NONE, defined as (uint32_t)-1. For the
latter usage, we can simply define a constant for the
number of VCPUs, avoiding the need for the full enum.

The only other usages of the enum values can be replaced
by accesing the id/vcpu_id fields via the named TraceEvent
structs.

Reviewed-by: Lluís Vilanova <vilanova@ac.upc.edu>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1475588159-30598-11-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Daniel P. Berrange 2016-10-04 14:35:49 +01:00 committed by Stefan Hajnoczi
parent 79218be42b
commit ef4c9fc854
11 changed files with 48 additions and 65 deletions

View file

@ -29,27 +29,12 @@ def generate(events, backend):
out('extern TraceEvent %(event)s;',
event = e.api(e.QEMU_EVENT))
# event identifiers
out('typedef enum {')
for e in events:
out(' TRACE_%s,' % e.name.upper())
out(' TRACE_EVENT_COUNT',
'} TraceEventID;')
for e in events:
out('extern uint16_t %s;' % e.api(e.QEMU_DSTATE))
# per-vCPU event identifiers
out('typedef enum {')
numvcpu = len([e for e in events if "vcpu" in e.properties])
for e in events:
if "vcpu" in e.properties:
out(' TRACE_VCPU_%s,' % e.name.upper())
out(' TRACE_VCPU_EVENT_COUNT',
'} TraceEventVCPUID;')
out("#define TRACE_VCPU_EVENT_COUNT %d" % numvcpu)
# static state
for e in events: