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