cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

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
     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 */