qemu-patch-raspberry4/trace/simple.h
Daniel P. Berrange ef4c9fc854 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>
2016-10-12 09:35:54 +02:00

56 lines
1.3 KiB
C

/*
* Simple trace backend
*
* Copyright IBM, Corp. 2010
*
* This work is licensed under the terms of the GNU GPL, version 2. See
* the COPYING file in the top-level directory.
*
*/
#ifndef TRACE_SIMPLE_H
#define TRACE_SIMPLE_H
#include "trace/generated-events.h"
void st_print_trace_file_status(FILE *stream, fprintf_function stream_printf);
void st_set_trace_file_enabled(bool enable);
void st_set_trace_file(const char *file);
bool st_init(void);
void st_flush_trace_buffer(void);
typedef struct {
unsigned int tbuf_idx;
unsigned int rec_off;
} TraceBufferRecord;
/* Note for hackers: Make sure MAX_TRACE_LEN < sizeof(uint32_t) */
#define MAX_TRACE_STRLEN 512
/**
* Initialize a trace record and claim space for it in the buffer
*
* @arglen number of bytes required for arguments
*/
int trace_record_start(TraceBufferRecord *rec, uint32_t id, size_t arglen);
/**
* Append a 64-bit argument to a trace record
*/
void trace_record_write_u64(TraceBufferRecord *rec, uint64_t val);
/**
* Append a string argument to a trace record
*/
void trace_record_write_str(TraceBufferRecord *rec, const char *s, uint32_t slen);
/**
* Mark a trace record completed
*
* Don't append any more arguments to the trace record after calling this.
*/
void trace_record_finish(TraceBufferRecord *rec);
#endif /* TRACE_SIMPLE_H */