qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

simple.h (1304B)


      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 void st_print_trace_file_status(void);
     15 bool st_set_trace_file_enabled(bool enable);
     16 void st_set_trace_file(const char *file);
     17 bool st_init(void);
     18 void st_init_group(size_t group);
     19 void st_flush_trace_buffer(void);
     20 
     21 typedef 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  */
     33 int trace_record_start(TraceBufferRecord *rec, uint32_t id, size_t arglen);
     34 
     35 /**
     36  * Append a 64-bit argument to a trace record
     37  */
     38 void trace_record_write_u64(TraceBufferRecord *rec, uint64_t val);
     39 
     40 /**
     41  * Append a string argument to a trace record
     42  */
     43 void 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  */
     50 void trace_record_finish(TraceBufferRecord *rec);
     51 
     52 #endif /* TRACE_SIMPLE_H */