qemu/trace/simple.h
<<
>>
Prefs
   1/*
   2 * Simple trace backend
   3 *
   4 * Copyright IBM, Corp. 2010
   5 *
   6 * This work is licensed under the terms of the GNU GPL, version 2.  See
   7 * the COPYING file in the top-level directory.
   8 *
   9 */
  10
  11#ifndef TRACE_SIMPLE_H
  12#define TRACE_SIMPLE_H
  13
  14void st_print_trace_file_status(FILE *stream, fprintf_function stream_printf);
  15void st_set_trace_file_enabled(bool enable);
  16void st_set_trace_file(const char *file);
  17bool st_init(void);
  18void st_flush_trace_buffer(void);
  19
  20typedef struct {
  21    unsigned int tbuf_idx;
  22    unsigned int rec_off;
  23} TraceBufferRecord;
  24
  25/* Note for hackers: Make sure MAX_TRACE_LEN < sizeof(uint32_t) */
  26#define MAX_TRACE_STRLEN 512
  27/**
  28 * Initialize a trace record and claim space for it in the buffer
  29 *
  30 * @arglen  number of bytes required for arguments
  31 */
  32int trace_record_start(TraceBufferRecord *rec, uint32_t id, size_t arglen);
  33
  34/**
  35 * Append a 64-bit argument to a trace record
  36 */
  37void trace_record_write_u64(TraceBufferRecord *rec, uint64_t val);
  38
  39/**
  40 * Append a string argument to a trace record
  41 */
  42void trace_record_write_str(TraceBufferRecord *rec, const char *s, uint32_t slen);
  43
  44/**
  45 * Mark a trace record completed
  46 *
  47 * Don't append any more arguments to the trace record after calling this.
  48 */
  49void trace_record_finish(TraceBufferRecord *rec);
  50
  51#endif /* TRACE_SIMPLE_H */
  52