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(void);
  15bool st_set_trace_file_enabled(bool enable);
  16void st_set_trace_file(const char *file);
  17bool st_init(void);
  18void st_init_group(size_t group);
  19void st_flush_trace_buffer(void);
  20
  21typedef struct {
  22    unsigned int tbuf_idx;
  23    unsigned int rec_off;
  24} TraceBufferRecord;
  25
  26/* Note for hackers: Make sure MAX_TRACE_LEN < sizeof(uint32_t) */
  27#define MAX_TRACE_STRLEN 512
  28/**
  29 * Initialize a trace record and claim space for it in the buffer
  30 *
  31 * @arglen  number of bytes required for arguments
  32 */
  33int trace_record_start(TraceBufferRecord *rec, uint32_t id, size_t arglen);
  34
  35/**
  36 * Append a 64-bit argument to a trace record
  37 */
  38void trace_record_write_u64(TraceBufferRecord *rec, uint64_t val);
  39
  40/**
  41 * Append a string argument to a trace record
  42 */
  43void trace_record_write_str(TraceBufferRecord *rec, const char *s, uint32_t slen);
  44
  45/**
  46 * Mark a trace record completed
  47 *
  48 * Don't append any more arguments to the trace record after calling this.
  49 */
  50void trace_record_finish(TraceBufferRecord *rec);
  51
  52#endif /* TRACE_SIMPLE_H */
  53