#include "qemu/timer.h"
#include "trace/control.h"
#include "trace/simple.h"
+#include "qemu/error-report.h"
+#include "qemu/qemu-print.h"
/** Trace file header event ID, picked to avoid conflict with real event IDs */
#define HEADER_EVENT_ID (~(uint64_t)0)
* Trace records are written out by a dedicated thread. The thread waits for
* records to become available, writes them out, and then waits again.
*/
-static CompatGMutex trace_lock;
-static CompatGCond trace_available_cond;
-static CompatGCond trace_empty_cond;
+static GMutex trace_lock;
+static GCond trace_available_cond;
+static GCond trace_empty_cond;
static bool trace_available;
static bool trace_writeout_enabled;
wait_for_trace_records_available();
if (g_atomic_int_get(&dropped_events)) {
- dropped.rec.event = DROPPED_EVENT_ID,
+ dropped.rec.event = DROPPED_EVENT_ID;
dropped.rec.timestamp_ns = get_clock();
- dropped.rec.length = sizeof(TraceRecord) + sizeof(uint64_t),
+ dropped.rec.length = sizeof(TraceRecord) + sizeof(uint64_t);
dropped.rec.pid = trace_pid;
do {
dropped_count = g_atomic_int_get(&dropped_events);
st_set_trace_file_enabled(true);
}
-void st_print_trace_file_status(FILE *stream, int (*stream_printf)(FILE *stream, const char *fmt, ...))
+void st_print_trace_file_status(void)
{
- stream_printf(stream, "Trace file \"%s\" %s.\n",
- trace_file_name, trace_fp ? "on" : "off");
+ qemu_printf("Trace file \"%s\" %s.\n",
+ trace_file_name, trace_fp ? "on" : "off");
}
void st_flush_trace_buffer(void)
thread = trace_thread_create(writeout_thread);
if (!thread) {
- fprintf(stderr, "warning: unable to initialize simple trace backend\n");
+ warn_report("unable to initialize simple trace backend");
return false;
}